翻译自 100 Vim commands every programmer should know
| 类 型 | 序 号 | 命 令 | 释 义 |
|---|---|---|---|
| 基 本 | 1 | :e 文件名 | 打开文件进行编辑 |
| 2 | :w | 保存文件 | |
| 3 | :q | 退出vim | |
| 4 | :q! | 不保存文件退出vim | |
| 搜 索 | 5 | /word | 从开始处到结尾处搜索字符串 |
| 6 | ?word | 从结尾处到开始处搜索字符串 | |
| 7 | /jo[ha]n | 搜索john或者joan | |
| 8 | /\<the | 搜索the、theatre或者then,匹配以the开始的字符串 | |
| 9 | /the\> | 搜索the或者breathe,匹配以the结尾的字符串 | |
| 10 | /\<the\> | 搜索the,只匹配the | |
| 11 | /\<\w\{4}\> | 匹配所有四个字母的单词 | |
| 12 | /\<fred\>/ | 匹配fred但是不匹配alfred或者frederick | |
| 13 | /fred\|joe | 匹配fred或者joe | |
| 14 | /\<\d\d\d\d\> | 匹配四个数字 | |
| 15 | /^\n\{3} | 匹配连续的三个空行 | |
| 16 | :bufdo /正则表达式/ | 在所有打开的文件中搜索 | |
| 替 换 | 17 | :%s/old/new/g | 把文件中所有匹配old的地方替换成new |
| 18 | :%s/old/new/gc | 把文件中所有匹配old的地方替换成new,替换前提示确认 | |
| 19 | :2,35s/old/new/g | 把文件从第2行到第35行中所有匹配old的地方替换成new | |
| 20 | :5,$s/old/new/g | 把文件从第5行到文件结束符中所有匹配old的地方替换成new | |
| 21 | :%s/^/hello/g | 把每一行的开始位置替换为Hello | |
| 22 | :%s/$/Harry/g | 把每一行的结束位置替换为Harry | |
| 23 | :%s/onward/forward/gi | 替换onward为forward,大小写不敏感 | |
| 24 | :%s/ *$//g | 替换所有行末的空格为空字符串 | |
| 25 | :g/string/d | 删除所有匹配正则表达式string的行 | |
| 26 | :v/string/d | 删除所有不匹配正则表达式string的行 | |
| 27 | :s/Bill/Steve/ | 把当前行中的Bill替换为Steve | |
| 28 | :s/Bill/Steve/g | 把所有行中的Bill替换为Steve | |
| 29 | :%s/Bill/Steve/g | 把所有文件中的Bill替换为Steve | |
| 30 | :s/\r//g | 替换dos换行符为空字符串 | |
| 31 | :s/\r/\n/g | 替换dos换行符为回车 | |
| 32 | :%s#<[^>]\+>##g | 删除所有的html标签,保留其中的内容 | |
| 33 | :%s/^\(.*\)\n\1$/\1/ | 替换所有连续出现两次的行为一行 | |
| 34 | Ctrl+a | 把光标下的数字自增1 | |
| 35 | Ctrl+x | 把光标下的数字自减1 | |
| 36 | ggVGg? | 对全文使用ROT13加密,关于ROT13,参考 ROT13_WIKI | |
| 大小写 | 37 | Vu | 选择一行,使其字母变为小写 |
| 38 | VU | 选择一行,使其字母变为大写 | |
| 39 | g~~ | 反转字母的大小写 | |
| 40 | veU | 选择一个单词,将其变为大写 | |
| 41 | ve~ | 选择一个单词,将其变为小写 | |
| 42 | ggguG | 把所有文本变为小写 | |
| 43 | :set ignorecase | 搜索的时候忽略大小写 | |
| 44 | :set smartcase | 如果模式串中没有大写字母,则搜索的时候忽略大小写 | |
| 45 | :%s/\<./\u&/g | 将每个单词的第一个字母转为大写 | |
| 46 | :%s/\<./\l&/g | 将每个单词的第一个字母转为小写 | |
| 47 | :%s/.*/\u& | 将每行的第一个字母转为大写 | |
| 48 | :%s/.*/\l& | 将每行的第一个字母转为小写 | |
| 读写文件 | 49 | :1,10 w outfile | 把1到10行保存到outfile中 |
| 50 | :1,10 w >> outfile | 把1到10行追加到outfile中 | |
| 51 | :r infile | 插入infile的内容 | |
| 52 | :23r infile | 插入infile中23行以后的内容 | |
| 文件浏览 | 53 | e:. | 打开内置的文件浏览器 |
| 54 | :Sex | 分割窗口,并打开内置的文件浏览器 | |
| 55 | :browse e | 打开图形化的文件浏览器 | |
| 56 | :ls | 列出缓冲区的内容 | |
| 57 | :cd.. | 到父目录 | |
| 58 | :args | 列出参数列表,当前文件会用方括号标注 | |
| 59 | :args *.php | 将当前目录下所有后缀是php的文件加入参数列表,并打开其中的第一个 | |
| 60 | :grep expression *.php | 返回所有包含expression的php文件列表 | |
| 61 | gf | 打开当前光标下的文件 | |
| 与Unix系统交互 | 62 | :!pwd | 执行unix命令pwd,然后返回到vi中 |
| 63 | :!!pwd | 执行unix命令pwd,并将结果插入到文件中 | |
| 64 | :sh | 暂时回到unix | |
| 65 | $exit | 返回vi | |
| 对 齐 | 66 | :%!fmt | 对齐所有行 |
| 67 | !}fmt | 对齐当前位置的所有行 | |
| 68 | 5!!fmt | 对齐下面5行 | |
| 标 签 | 69 | :tabnew | 新建标签 |
| 70 | gt | 切换到下一个标签 | |
| 71 | :tabfirst | 切换到第一个标签 | |
| 72 | :tablast | 切换到最后一个标签 | |
| 73 | :tabm n(位置) | 重新排列标签 | |
| 74 | tabdo %s/foo/bar/g | 在每一个标签中执行命令 | |
| 75 | :tab ball | 把所有打开的文件放入标签 | |
| 分割窗口 | 76 | :e filename | 在当前窗口中编辑文件 |
| 77 | :split filename | 分割窗口并打开文件 | |
| 78 | ctrl-w up arrow | 将光标移到顶部的窗口 | |
| 79 | ctrl-w ctrl-w | 将光标移动到下一个窗口 | |
| 80 | ctrl_ | 最大化当前窗口 | |
| 81 | ctrl-w= | 将所有的窗口设置为同样的大小 | |
| 82 | 10ctrl-w+ | 在当前窗口中增加10行 | |
| 83 | :vsplit file | 垂直分割窗口 | |
| 84 | :sview file | 功能与只读模式下的:split命令一样 | |
| 85 | :hide | 关闭当前窗口 | |
| 86 | :nly | 关闭除当前窗口以外的所有窗口 | |
| 87 | :b 2 | 在当前窗口中打开第二个缓冲区的内容,具体描述请见:help b: | |
| 自动补全 | 88 | ctrl-n ctrl-p(插入模式下) | 补全单词 |
| 89 | ctrl-x ctrl-l | 补全整行 | |
| 90 | :set dictionary=dict | 定义dict为dictionary | |
| 91 | ctrl+x ctrl+k | 使用字典进行补全 | |
| 标 记 | 92 | mk | 将当前位置标记为k |
| 93 | ~k | 将光标移动至标记k | |
| 94 | dk | 删除至标记k | |
| 缩 写 | 95 | :ab mail mail@provider.org | 定义mail为mail@provider.org的缩写 |
| 文本缩进 | 96 | :set autoindent | 打开自动缩进 |
| 97 | :set smartindent | 打开智能缩进 | |
| 98 | :set shiftwidth=4 | 定义缩进的宽度为四个空格 | |
| 99 | ctrl-t,ctrl-d | 插入模式下缩进/反向缩进 | |
| 100 | >> | 缩进 | |
| 101 | << | 反向缩进 | |
| 语法高亮 | 102 | :syntax on | 打开语法高亮 |
| 103 | :syntax off | 关闭语法高亮k | |
| 104 | :set syntax=perl | 强制打开语法高亮 |
本文介绍了一百个Vim程序员必备的命令,涵盖了基本操作、搜索替换、大小写转换、文件读写、窗口分割等各个方面,帮助读者快速掌握Vim的高效使用技巧。
5万+

被折叠的 条评论
为什么被折叠?



