Vim是从vi发展出来的一个高级文本编辑器,在编写程序时非常有用,经常被认为“程序员的编辑器”,支持Linux、Mac OS、Windows系统,它具有以下附加功能:语法突出显示,全面的帮助系统,本地脚本(vim script),文本选择的可视模式和文件比较(vim diff)。在终端中输入vim [filename]
命令即可进入Vim编辑器对该文件进行编辑,若文件不存在,则会在当前目录下以这个文件名新建一个文件。
vim 拥有** 插入模式 ** 、正常模式、命令模式,进入vim后会直接进入编辑模式,按下i
进入插入模式,按Esc
退出插入模式,在编辑模式下输入:
即可进入命令模式,进行保存、退出等操作。在这里总结一下vim入门的按键功能:
移动光标
要确保按Esc
退出插入模式,回到正常模式当中
| 按键 | 功能 |
|: --- :| : --- : |
|h
或←
|光标左移|
|l
或→
| 光标右移
|k
或↑
| 光标上移
|j
或↓
|光标下移
|Ctrl
+f
|向下翻一页
|Ctrl
+b
|向上翻一页
|Ctrl
+d
|向下翻半页
|Ctrl
+u
|向上翻半页
|0
|数字键0表示移动光标到行首
|$
|从当前光标当前位置直到当前行末
|w
|从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
|e
|从当前光标当前位置直到单词末尾,包括最后一个字符
VIM的进入和退出
| 按键 | 功能 |
|: --- :| : --- : |
|:w
|保存数据
|:w filename
|保存数据到文件中
|:w!
|保存时强制写入数据,不管文件是否为只读文件
|:q
|关闭Vim,对所做的修改不做保存
|:wq
|强制保存数据并关闭Vim
|:q!
| 强制关闭vim
文本编辑之插入
| 按键 | 功能 |
|: --- :| : --- : |
|i
|在光标前插入文本
|a
|在光标后插入文本
|A
|在一行后插入文本
|o
(小写)|在光标下方打开新一行并进入插入模式
|O
(大写)|在光标上方打开新一行并进入插入模式
|y
|(复制)高亮的文本
|p
|将最后一次删除或者复制的内容放置在当前行的下一行
|r filename
| 向当前文件插入另外的文件(filename)内容
文本编辑之删除
| 按键 | 功能 |
|: --- :| : --- : |
|x
|删除光标所在位置的字符
|dw
|从光标处删除至一个单词的末尾,包括后面的空格(个人理解的意思)
|de
|从当前光标处删除至单词的末尾,不包括后面的空格(个人理解的意思)
|d$
| 从当前光标删除到行末
|dd
| 删除一整个当前行
撤销类命令
| 按键 | 功能 |
|: --- :| : --- : |
|u
|撤销最后执行的(一次)命令
|U
|恢复该行的原始状态
|Ctrl+R
|重做(恢复)被撤销的命令
|d$
| 从当前光标删除到行末
|dd
| 删除一整个当前行
替换类命令
| 按键 | 功能 |
|: --- :| : --- : |
|r
|替换光标所在位置的字符
|R
|可连续替换多个字符
|ce
|改变文本直到一个单词的末尾
|cw
|改变文本直到一个单词的末尾
|:s/a/b/
|可以把a替换为 b(只改变第一个匹配串)
|:s/a/b/g
|可以把a替换为 b(全局改变)
|:#,#s/a/b/g
| #,# 代表的是替换操作的若干行中 首尾两行的行号
|:%s/a/b/g
|替换整个文件中的每个匹配串
|:%s/a/b/gc
|会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。
定位及搜索命令
| 按键 | 功能 |
|: --- :| : --- : |
|v
|进入可视模式进行选取
|ctrl+G
|显示当前编辑文件中当前光标所在行位置以及文件状态信息
|G
|跳转到文件最后一行
|gg
|跳转到文件第一行
|行号+G
| 返回到您第一次按下CTRL-G 时所在的行
|/+字符串
| 在当前文件中查找该字符串
|?+字符串
| 在当前文件逆向查找该字符串
|n
| 查找同上一次的字符串
|N
| 反向查找同上一次的字符串
|%
| 可以查找配对的括号 )、]、}
关于命令和对象
许多改变文本的命令都由一个操作符和一个动作构成,还可以加上数字表示计数
operator number motion
例如:d2w
d - 删除操作符。
2 -删除2次。
motion - 操作符的操作对象(在下面列出)。
一个简短的动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
只要明白这个格式,许多命令都是如此组合而来的,大家可以试试。
本文只是为了简明地介绍一下 Vim 编辑器,vim还有很多很多的命令,本文所介绍的距离完整的差得很远。路漫漫其修远兮,吾将上下而求索~