其实Linux系统下的 VIM 已经自带了入门教程,现把常用命令摘记如下:
打开入门教程方法
在命令行下输入:
$ vimtutor
1.1 移动光标
通过 h、j、k、l
分别向 左、上、下、右 移动。
1.2 退出VIM
- 按
Esc键来确保进入Normal模式 - 输入
:q!,然后按下Enter键,就会退出vim编辑器,并且不保存更改 - 在命令行界面后重新输入
vimtutor命令进入到vim教程
1.3 文本编辑:删除
通过 x 来删除光标所在的字符(未说明的情况都是在Normal模式下)
1.4 文本编辑:插入
- 输入
i进入Insert模式,可以在光标前输入字符 - 按
Esc来回到Normal模式
1.5 文本编辑:附加
- 输入
A光标移动到行末并且进入Insert模式,可以在行末输入字符 - 按
Esc来回到Normal模式
1.6 编辑文件
- 输入
:q!,然后按下Enter键,就会退出VIM编辑器,并且不保存更改 - 然后执行下面命令:
$ vim tutor
会使用 vim 打开 tutor 文件,如果没有该文件便新建一个 tutor 文件
- 输入
:wq,然后按下Enter键,便退出并保存更改到改文件
2.1 & 2.2 删除命令
- 在
Normal模式下,按下dw命令(先按下d再按下w)就可以删除一个单词 - 按下
d$命令,删除当前光标位置到行尾的内容
2.3 命令加动作
d 表示执行一个删除操作(可以理解为准备删除),加上一个动作完成对不同对象的删除操作。下面的w e $ 都是动作,例如:
- 加
w表示,从当前光标删除到下一个单词(word)的开头位置,不包括下一个单词的首字符 - 加
e表示,从当前光标删除到本单词的尾字符,包括本单词的尾字符 - 加
$表示,从当前光标删除到位置到行尾,包括尾字符
可以通过这种操作加动作去理解 VIM 的巧妙的设计思想,达到举一反三的效果
2.4 对一个动作进行重复
在一个动作前面加一个数字N,可以重复该操作N遍
Normal 模式下,w 表示光标跳到下一个单词的开头
2w表示光标移动到后面第二个单词的开头3e表示光标移动到后面第三个单词的末尾0表示移动光标到本行的开始
补充:^ 表示移动光标到本行的首字符,^ 和 $ 和正则中的用法可以是对应上的
2.5 对删除操作进行重复
d [number] motion 可以进行多次删除操作,例如:
d5w可以删除5个单词(word)d3ed3$等其他删除操作同理
补充:3dw 和 d3w, 3de 和 d3e 效果是一样的
2.6 行操作
dd命令可删除一行3dd或d3d可以删除三行
2.7 撤销操作
- 使用
u去撤销上一个命令(也就是undo) - 使用
U去修复一整行 - 可以使用
u去撤销U命令 - 当使用了撤销操作,可以按下
Ctrl-R去取消撤销(也就是redo)
按住 Ctrl 键再按 r 写成 Ctrl-R
3.1 PUT命令
- 在
Normal模式下,按p可以把删除的文本添加到光标的后一个位置
3.2 置换命令
r为置换命令,rx表示用x代替当前字符
3.3 & 3.4 更改操作
ce命令,会从光标删除到单词(word)末尾,并且进入Insert模式,所以ce来更改某个错误的词会很方便- 和删除命令一样,
ce也可以重复多次操作,c [number] motion,同理不赘述 - 常见的还有
c$c0c^等更改操作,结合动作,应该很好理解
c 命令和 d 命令一个比较大的区别就是 c 命令执行之后会进入 Insert 模式
4.1 光标定位与文件状态
Ctrl-G会显示光标在文件中的位置,以及文件的状态G命令会移动光标到文件底部gg命令会移动光标到文件顶部[number] G光标会移动到number行,485G会移动到485行,也就是vimtutor中Lesson 4.1的标题处
4.2 搜索命令
- 在
Normal模式下按/键,底部会出现/字符,可以输入字符进行搜索,然后按下<ENTER>搜索 n跳到下一个搜索结果,N跳到上一个搜索结果Ctrl+O和Ctrl+I分别跳转到更前面和更后面的光标位置
4.3 括号匹配搜索
%去寻找一个匹配的) ] }括号- 可以在括号中很方便地定位括号,以及在左右两边括号中跳转
4.4 替代命令
:s/old/new命令表示用new替代本行的第一个old:s/old/new/g命令表示本行的全部old都用 new` 替代:#,#s/old/new/g命令和上面的类似,#来限定行的范围,:1,10s/old/new/g表示1-10行:%s/old/new/g命令表示应用与整个文件,:%s/old/new/gc也是整个文件,只是每一个都需要你去决定是否替换
5.1 & 5.2 执行命令,行命令
- 在按下
:!后再输入命令行命令,按下<ENTER>就可以执行了 :w FILENAME可以保存更改到FILENAME文件中- 可以尝试
:!ls等常用命令行命令
5.3 选择文本去写入
- 按
v会进入Visual模式,这时候可以移动光标去选择文本 - 选择好文本后,输入
:后,屏幕底部会出现:'<,'>,继续输入w FILENAME就可以把选择的文本存入FILENAME文件中 - 选择好文本也可以进行其它操作,例如
d可以删除所选择的文本
5.4 获取、合并文件
:r FILENAME命令可以把FILENAME文件的内容插入到光标的下一行中:r !ls命令可以把命令行ls命令中的输出插入到光标下一行中
6.1 打开命令
o命令在光标下面一行新开一行,并进入Insert模式,O在光标上面
6.2 附加命令
a命令在光标后面进入Insert,与之对比,i是在光标之前插入A命令在行末添加字符,这三个命令都会进入Insert模式
6.3 另一种替代的方法
R命令会进入Replace模式,在该模式下,每个按键都会替代原来的字符,也可以不用把它理解成Replace模式,而是类似于r命令的高级方法- 同样,按
Esc退出Replace模式
6.4 复制和粘贴文本
y命令复制文本,p命令粘贴文本v进入Visual模式,选择文本,y进行复制,p进行粘贴- 也可以在
Normal下使用y命令,yw复制一个单词(word),y$等 p在光标后粘贴
6.5 设置选项
对搜索或替代等方法进行一些设置
:set ic意味着忽略大小写,ic是Ignore case的缩写:set hls is,hls是highlight search的缩写,is是increase search的缩写。开启hls搜索结果会出现高光,is加强版搜索,开启后会在输入的时候开始匹配结果,而不是在按下键后 - 要取消以上功能只要加个
no,例如::set noic,:set nohls和:set nois
7.1 获取帮助
使用在线帮助系统
:help进入帮助文件,出现一个新的窗口Ctrl-WCtrl-W(按两次)会从一个窗口跳到另一个窗口:q可以退出帮助文件窗口
你可以在帮助文件中找到各种建议:
:help w关于w命令的:help c_Ctrl-D:help insert-index:help user-manual等
7.2 创建一个启动脚本文件
比起 VI,VIM有许多新的特性,但是默认是关闭的,为了使用这些特性,需要新建一个启动脚本文件:
:e ~/.vimrc命令,在当前目录下新建一个.vimrc文件:r $VIMRUNTIME/vimrc_example.vim命令,载入的设置文件模版:w写入文件,大功告成,下次载入编启动了很多新的特性- 如果想了解更多
.vimrc的相关信息,可以使用:help vimrc-intro命令