vim
一、三种基本模式
Normal Mode、Insert Mode和Command-line Mode
从Normal Mode进入Insert Mode,可以按i、I、a、A、o、O、r、R即可。其中i和I表示插入(Insert),r和R表示替换(replace)。
从Insert Mode进入Normal Mode,只需要按ESC键即可。
从Normal Mode进入Command-line Mode,可以按“:”、“/”、“?”。其中“:”表示输入vim命令,“/”表示后面输入要向下搜索的字符串,“?”表示后面输入要向上搜索字符串。
从Command-line Mode进入Normal Mode,只需要按ESC键即可了。
把Normal Mode理解为常态,进入其他任何一种模式,需要某种特殊方式,而从其他特殊模式回到Normal Mode,就按ESC键即可。
二、退出方式
:q 退出 quit
:q! 不保存退出 quit!
:wq 写入文件并退出 writequit
*:wq! 退出时写入与否取决于文件的权限,有写权限写入并退出,没有写权限就强制退出
:x 等同于:wq 写入与否取决于文件是否变动
:qa 退出全部 quitall
三、快捷键
删除
dd: 删除光标所在行
ndd: 删除从光标所在行开始,向下的n行
d1G :删除从光标所在行开始,到第一行的所有行
dG:删除从光标所在行开始,到最后一行的所有行
d$ :删除从光标所在位置,到行尾的所有字符
d0 :删除从光标所在位置,到行首的所有字符
复制
yy 复制光标所在行
nyy 复制从光标所在行开始,向下的n行
y1G 复制从光标所在行开始,到第一行的所有行
yG 复制从光标所在行开始,到最后一行的所有行
y$ 复制从光标所在位置,到行尾的所有字符
y0 复制从光标所在位置,到行首的所有字符
粘贴
p 小写字母p,粘贴剪贴板中的数据,从光标所在行的下一行开始
P 大写字母P,粘贴剪贴板中的数据,从光标所在行的上一行开始
撤销与重做
u (Undo)撤销上一个操作
Ctrl+r (Redo)重做上一个操作
搜索字符串
/string 向下搜索字符串“string”
?string 向上搜索字符串“string”
如果已经用 / 找到了一个词,那么 n N 就分别就是向后,向前再找这个词。
相反,如果用的是 ? 找到的词,则 n 是向前找,N 是向后找。
即是说 n 总是按着当前的搜索方向往下找同一个词(术语叫搜索字串)
比较两个文件的不同
vimdiff file1 file2
显示行号
显示行号, :set nu
取消行号,:set nonu
四、快速移动光标
j 向下
k 向上
h 向左
l 向右
$ 光标移动到行尾(End),注意要按Shift键
0 光标移动到行首(Home)
^ 光标移动到行首第一个非空白字符(Home),注意要按Shift键
移动到文本开头:gg
移动到文本结尾:G
向下移动100行:100j
移动到100行: :100