常用的vim命令


翻译整理:codepiano  css样式来自typo.css,作者为sofish Lin,github地址:typo.css  演示地址:中文网页重设与排版:TYPO.CSS 

翻译自100 Vim commands every programmer should know
  1. 基 本
  2. 搜 索
  3. 替 换
  4. 大小写
  5. 读写文件
  6. 文件浏览
  7. 与Unix系统交互
  8. 对 齐
  9. 标 签
  10. 分割窗口
  11. 自动补全
  12. 标 记
  13. 缩 写
  14. 文本缩进
  15. 语法高亮
类 型 序 号 命 令 释 义
基 本 1 :e 文件名 打开文件进行编辑
2 :w 保存文件
3 :q 退出vim
4 :q! 不保存文件退出vim
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 强制打开语法高亮