Vim 笔记

基本操作¶
- 使用
vimtutor命令进行交互式的学习,过一遍即可理解基础的 VIM 操作。 - 在默认状态(命令模式),用来移动光标的
hjkl四个键分别代表左下上右。 - 按
i进入「插入」模式,按esc退出模式。 -
按
esc进入「命令」模式,此时可以输入一些命令,例如: -
:q直接退出,如果有没保存的内容,会有提示 :q!强制退出,不保存修改:wq保存修改并退出
模式切换¶

- Normal 模式(命令模式):可以输入vim命令
- Insert 模式(插入模式):可以输入文字
- Visual 模式(可视模式):可以选择文本
编辑¶
iIaAoO都可进入插入模式x删除当前光标文字并放入暂存器d删除选取的文字,效果同x;D删除光标后面的内容;dd删除整行;dG删除从光标到文件末尾;dgg删除从光标到文件头c删除选取内容并进入插入模式,效果同xr取代光标所在的文字>><<在当前行增加/删除缩进=让选中行自动排版
选择、复制粘贴¶
- 在命令模式,按
v进入「可视」模式,此时可以移动光标进行选择,或按V选择一整行 - 选择以后,使用
d来剪切(delete),y来复制(yank),yy可以复制整行 - 移动光标到你想粘贴的地方,按
p来进行粘贴(paste)(光标的后面),或者用P来粘贴到光标前面 - 量词+p可以粘贴多次,如
5p将复制的内容粘贴5次。 - 量词+y同样可以复制多行,
y$复制到行尾;yG从光标位置复制到文件末尾;ygg从光标复制到文件首部 - 暂存器:
"+ 字母 + 操作,可以把操作的文字从暂存器读取或写入,例如:"ay将选中的字符复制到暂存器a - 暂存器和剪贴板共通:
set clipboard=unnamed
撤销与重做¶
在命令模式,u 撤销命令,U 撤销行内命令。ctrl+r 是重做命令。
搜索¶
- 搜索结果高亮
:set hlsearch /+ 字符回车进行搜索;n N搜寻下一个或上一个?和/类似,只不过n N的作用正好相反*向后搜索当前游标所在单词,#为反向f+ 字母:在当前行向后定位字母。如:fx。F+加字母则为反向操作
替换文本¶
语法为::[addr]s/源字符串/目的字符串/[option]
一些示例,参考
- 全局替换:
:%s/源字符串/目的字符串/g
多文件编辑1¶
:e <文件名>打开文件:tabe [文件名]打开新分页(Tab)gt下一个分页;gT上一个分页:new水平分割视窗;:vnew垂直分割视窗ctrl-ww来回切换视窗;ctrl-w-[hjkl]左下上右切换视窗vim -o [FILE1] [FILE2]一键水平开启多个档案(-O垂直开启,-p用标签页开启)
多文件编辑2¶
vim [FILE1] [FILE2]同时打开多个文件,分配在不同的 Buffer 中;vim *打开当前目录所有文件:ls列出所有Buffer:b3切到第3个Buffer;:b FILENAME切换到打开文件的Buffer,文件名可模糊匹配ctrl+^切换到前一个Buffer;:bn下一个;:bp上一个;:bl最后一个;bf第一个:bd关闭当前 Buffer:tab ba将 Buffer 转换成 Tab
其他¶
关闭 vim 鼠标选择自动进入可视模式¶
由于 vim 使用了寄存器,并且在有的系统中寄存器和剪贴板不能互通,导致鼠标选择的内容不能被复制出来。这时就可以关闭鼠标选择自动进入可视模式。
| Text Only | |
|---|---|
vim 清除命令历史记录¶
vim 的命令历史记录都会被放到 ~/.viminfo 之中,直接删除它即可清除历史记录。
vim 转换当前打开的文件为 unix 文件格式¶
| Text Only | |
|---|---|
vi 方向键变成 ABCD 问题¶
命令模式输入::set nocp
或者安装 vim,然后使用 vim 编辑