Skip to content

vim常用命令/快捷键

我在CentOS系统下是直接敲vi的,如果敲vim会提示:

default
-bash: vim: command not found

所以,一直我都以为我用的是vi,是不同于vim的。今天突然发现这个系统里的vi就是vim。因为如果我直接敲vi,会得到下面这样的结果:

default
~                              VIM - Vi IMproved
~
~                               version 7.4.160
~                           by Bram Moolenaar et al.
~                      Modified by <bugzilla@redhat.com>
~                 Vim is open source and freely distributable
~
~                        Help poor children in Uganda!
~                type  :help iccf<Enter>       for information
~
~                type  :q<Enter>               to exit
~                type  :help<Enter>  or  <F1>  for on-line help
~                type  :help version7<Enter>   for version info

所以,这个操作系统里vi应该是做成vim的软连接了。 vim有两种模式,插入模式(insert mode)和命令模式(command mode)。按i键进入插入模式,按ESC键进入命令模式。 命令模式下有以下比较常用的操作: j:光标下移一行; k:光标上移一行; h:光标左移一行; l:光标右移一行; x:删除不想要的字符(删除光标所在处的字符); u:撤销上一操作(undo the last operation); U:删除整行?; Ctrl+r:恢复最近撤销的操作; i:在光标前插入字符; I:在行首插入; A:将光标置于行末,并进入插入模式,可以直接开始输入文本了(换句话说就是在行末插入字符); a:将光标置于当前位置的后面一个位置,并进入插入模式(换句话说就是在当前光标所在位置的后面插入字符); O:在当前行的上面另起一行,并进入插入模式; o:在当前行的下面另起一行,并进入插入模式; :q!:退出编辑器,不保留任何修改; :e!:放弃更改,然后相当于重新打开; :wq:保存修改并退出编辑器; 0(数字0):移动到一行的开头; ^:移动到行首(跟数字0效果一样); 3:移动到3行后的行末; -:移动到上一行的行首; dd:删除当前行; D:删除从当前光标所在位置(包括当前光标所在位置)到行末的所有内容; p:将上一次删除的文本置于当前光标所在处的后面; r:替换当前字符(比如re,会将光标所在处的字符替换为字母e); ce:删除当前光标所在单词的位置开始(包含光标所在处的字符)到单词的末尾(包括单词末尾的字符)间的所有字符(比如,如果你将光标置于“this is a very good day”中的单词very中的字母e上,然后敲ce,会删掉ery,句子会变成“this is a v good day”),然后会自动进入插入模式; G:将光标移动到文件末尾; 数字+G:将光标移动到指定行第一个非空(空格、tab锁进等)字符上; gg:将光标移动到文件开头;

参考:

天上的神明与星辰,人间的艺术和真纯,我们所敬畏和热爱的,莫过于此。