一、模式转换命令
vim主要有三种模式:命令模式(Normal Mode)、输入模式(Insert Mode)和底线命令模式(Command-Line Mode)。
从命令模式切换到输入模式:i:在当前光标所在位置开始输入文本。a:在当前光标所在位置的下一个字符开始输入文本。o:在当前光标所在行的下方插入一个新行,并进入插入模式。O:在当前光标所在行的上方插入一个新行,并进入插入模式。I:在当前光标所在行的行首开始输入文本。A:在当前光标所在行的行尾开始输入文本。从输入模式切换回命令模式:按下Esc键。从命令模式切换到底线命令模式:在命令模式下按下冒号(:)。
二、光标移动命令
字符间跳转:h:将光标向左移动一个字符。j:将光标向下移动一行。k:将光标向上移动一行。l:将光标向右移动一个字符。单词间跳转:w:移动到下一个单词的开头。e:移动到当前单词或下一个单词的末尾。b:移动到当前单词或上一个单词的开头。行首行尾跳转:^:跳转到当前行的第一个非空白字符。0:跳转到当前行的开头(包括空白字符)。$:跳转到当前行的末尾。行间移动:G:将光标移动到文件的末尾。gg:将光标移动到文件的开头。{行数}G:将光标移动到指定行(例如10G移动到第10行)。
三、编辑命令
删除命令:x:删除当前光标所在处的字符。dd:删除当前行(剪切当前行)。d$:删除从光标当前位置到行尾的内容。d^:删除从光标当前位置到行首的内容(不包括空白字符)。d0:删除从光标当前位置到行首的内容(包括空白字符)。复制命令:yy:复制当前行。p:粘贴剪贴板内容到光标下方。P:粘贴剪贴板内容到光标上方。修改命令(进入输入模式并替换指定内容):c$:从光标当前位置到行尾的内容被删除,并进入输入模式。c^:从光标当前位置到行首的内容(不包括空白字符)被删除,并进入输入模式。c0:从光标当前位置到行首的内容(包括空白字符)被删除,并进入输入模式。cw:删除当前单词并进入输入模式。ce:删除从光标当前位置到当前单词末尾的内容,并进入输入模式。cb:删除从光标当前位置到上一个单词开头的内容,并进入输入模式。cc:删除整行并进入输入模式。撤销和重做:u:撤销上一次操作。Ctrl+r:重做上一个被撤销的操作。
四、底线命令模式命令
在底线命令模式下,可以输入一些特定的命令来执行文件操作、搜索替换等。
文件操作::w:保存文件。:q:退出vim。:wq:保存文件并退出vim。:q!:不保存并强制退出vim。搜索替换:/pattern:从当前光标所在处向文件尾部查找指定的模式(pattern)。?pattern:从当前光标所在处向文件首部查找指定的模式(pattern)。n:查找下一个匹配项。N:查找上一个匹配项。:%s/old/new/g:在整个文件中将old替换为new(全局替换)。其他命令::set nu:显示行号。:set nonu:隐藏行号。:noh:取消搜索后的高亮显示。
五、可视模式命令
可视模式用于选择文本并进行批量操作。
进入可视模式:v:按字符选定。V:按行选定。Ctrl+v:进入可视块模式。操作选定文本:y:复制选定的文本块到缓冲区。d:剪切选定的文本块到缓冲区。
六、其他常用命令
重复上一个命令:.翻屏操作:Ctrl+f:向文件尾部翻一屏。Ctrl+b:向文件首部翻一屏。Ctrl+d:向文件尾部翻半屏。Ctrl+u:向文件首部翻半屏。多文件操作:在vim后同时输入多个文件名,例如vim file1 file2,可以在vim中同时打开多个文件。:next或:n:打开下一个文件。:prev:打开上一个文件。:ls:列出打开的文件。:buffer N:切换到第N个文件。窗口分割:Ctrl+w, s或:split:水平分割窗口。Ctrl+w, v或:vsplit:垂直分割窗口。Ctrl+w, w:切换到下一个窗口。Ctrl+w, j或Ctrl+w, k:在水平分割的窗口中切换。Ctrl+w, h或Ctrl+w, l:在垂直分割的窗口中切换。定制vim的工作特性:可以通过修改配置文件(如全局的/etc/vimrc或个人的~/.vimrc)来永久定制vim的工作特性。在vim中,也可以使用:set命令来临时修改一些设置,例如:set ai启用自动缩进,:set noai禁用自动缩进。