vim配置方案:下载地址
vim ~/.vimrc
我的配置文件:配置文件
标签页命令
命令 |
说明 |
vim -p file1 file2 |
将多个文件使用标签打开 |
:tabn/:tabp |
切换标签 |
:tabnew filename |
新建标签页同时打开文件 |
分屏命令
命令 |
说明 |
vim file1 file2 |
打开多个文件 |
:n/:N |
切换文件 |
vim -o file1 file2 |
水平分割窗口 |
vim -O file1 file2 |
垂直分割窗口 |
:qall/wall |
关闭/保存所有窗口 |
:split/:sp/:vsplit/:vsp |
水平竖直分割当前窗口 |
:nsplit/:nsp |
水平分割出一个n行高的窗口 |
crtl + w + h/j/k/l |
窗口切换 |
保存命令
命令 |
说明 |
:w file |
将编辑的内容写入 file 文件,保持原有文件的内容不变(另存为) |
:a,bw file |
将第 a 行至第 b 行的内容写入 file 文件 |
:r file |
读取 file 文件的内容,插入当前光标所在行的后面 |
:e file |
编辑新文件 file 代替原有内容 |
:f file |
将当前文件重命名为 file |
:f |
打印当前文件名称和状态,如文件的行数、光标所在的行号等 |
:recover |
恢复文件 vim -r file |
移动命令
命令 |
说明 |
:n |
光标移到n行 |
h/j/k/l |
左/下/上/右 |
ctrl+f/b |
前后翻页 |
H/M/L |
将光标移到屏幕上的起始行/屏幕中间/屏幕最后一行;2H前两行,3L倒数第三行 |
0/$ |
数字0,左移光标到本行的开始;/右移光标,到本行的末尾 |
gg |
将光标定位到文件第一行起始位置 |
G |
将光标定位到文件最后一行起始位置 |
NG或Ngg |
将光标定位到第 N 行的起始位置 |
搜索命令
命令 |
说明 |
* |
当光标停留在一个单词上,*键会在文件内搜索该单词,并跳转到下一处 |
# |
当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处 |
/str1 |
正向搜索字符串 str1 |
n |
继续搜索,找出 str1 字符串下次出现的位置 |
N |
继续搜索,找出 str1 字符串上一次出现的位置 |
?str2 |
反向搜索字符串 str2 |
删除命令
命令 |
说明 |
d/x |
删除行/删除单个字符 |
dd |
删除光标所在行,并去除空隙 |
ndd |
删除(剪切) n 行内容,并去除空隙 |
nx |
删除光标所指向的往后 n 个字符(含当前) |
d$ |
从当前光标起删除字符直到行的结束 |
d0 |
从当前光标起删除字符直到行的开始 |
J |
删除本行的回车符(CR),并和下一行合并 |
复制粘贴命令
命令 |
说明 |
p/P |
将缓冲区的内容粘贴到光标的后面/前面 |
yy |
复制当前行到内存缓冲区 |
nyy |
复制 n 行(往后)内容到内存缓冲区 |
撤销命令
命令 |
说明 |
u |
撤消前一条命令的结果 |
. |
重复最后一条修改正文的命令(执行一下是对u的撤销) |
Ctrl+r |
恢复上一步被撤销的操作 |
正则表达式命令
| ^ | 放在字符串前面,匹配行首的字 |
| $ | 放在字符串后面,匹配行尾的字 |
| \< | 匹配一个字的字头 |
| \> | 匹配一个字的字尾 |
| . | 匹配任何单个正文字符 |
| [str] | 匹配 str 中的任何单个字符 |
| [^str] | 匹配任何不在 str 中的单个字符 |
| [a-b] | 匹配 a 到 b 之间的任一字符 |
| * | 匹配前一个字符的 0 次或多次出现 |
| & | 匹配所有 |
| \r | 换行 |
| \ | 转义后面的字符 |
| /str1/ | 正则搜索 |
| :%s/str1/&/gn | 正则统计 |
| :%s/str1/str2/g | 带g表示所有字符串都替换,不带g只替换首次出现,带%表示全部文本 |
| :m,n s/str1/str2/g | 将从m行到n行的str1替换成str2 m,$ 从m行到最后一行 |
| :3d | 删除 3 行 |
| :/str1/,/str2/d | 删除从字符串 str1 到 str2 的所有行 |
| :g/^\(.*\)$\n\1$/d | 删除连续相同的行,保留最后一行 |
| :g/\%(^\1$\n\)\@<=\(.*\)$/d | 删除连续相同的行,保留最开始一行 |
| :g/^\s*$\n\s*$/d | 删除连续多个空行,只保留一行空行 |
| :5,20s/^#//g | 删除5到20行开头的 # 注释 通过替换达到删除的目的 |
全局设置
命令 |
说明 |
:set option |
设置选项 option |
autoindent |
设置该选项,则正文自动缩进 |
ignorecase |
设置该选项,则忽略规则表达式中大小写字母的区别 |
number |
设置该选项,则显示正文行号 |
ruler |
设置该选项,则在屏幕底部显示光标所在行、列的位置 |
tabstop |
设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为8 |
mk |
将选项保存在当前目录的 .exrc 文件中 |