常用配置
:set number 显示行号
:set nonumber 取消行号
:set numberwidth=3 设置行号列宽
:set hlsearch 高亮显示搜索内容
:set incsearch 输入关键字的时候高亮显示
:set ignorecase 搜索时忽略大小写
:set wrapscan 循环搜索(默认值)
:set nowrapscan 只搜索一次
:set showmatch 在输入右括号时,短暂地跳到对应括号处
:set matchtime=10 跳转时间,单位:十分之一秒
:set cursorcolumn 高亮光标所在列
:set nocursorcolumn 取消高亮光标所在列
:set cursorline 高亮光标所在行
:set nocursorline 取消高亮光标所在行
:set wrap 自动换行
:set nowrap 取消自动换行
:set autoindent 保持上一行的缩进
:set shiftwidth=4 设置缩进单位
:set ruler 在右下角显示光标位置
:set noruler 不显示光标位置
:set scrolloff=3 使光标始终和上下边缘相距3行
:set list 设置制表符可见
:set autochdir 将当前目录自动切换为文件所在目录
:set scrollbind 设置多窗口同步滚动
:set noscrollbind 取消多窗口同步滚动
:set autoread 如果文件被修改,自动读入,该项可能会不起作用
:set backspace=indent,eol,start 在Insert模式可以删除行首的空格、断行、进入Insert模式之前的位置
:set readonly 设置只读,该项写在配置文件中可能不起作用,在编辑时有效
:set fileformat? 显示当前的文件格式
:set nomodifiable 设置不可修改
:syntax on 打开语法高亮
:syntax off 取消语法高亮
:filetype on 自动识别文件类型
:colorscheme desert 选择颜色方案
常用命令
Command mode
gf 打开以当前字符的文件
ga 显示当前字符的ascii、十进制、十六进制
{ 移动到上一个空行
} 移动到下一个空行
gd 转到定义该变量处
!!{filter} 2 通过 {filter} 命令过滤 N 行
# 1 反向搜索第 N 次出现的光标所在的标识符
$ 1 光标移动到往下第 N 行的行尾之后
% 1 查找本行下一个 (花/方) 括号,并转到其匹配的 括号上,或者转到匹配的注释配对上,或者转到 匹配的预处理命令上。
{count}% 1 转到文件的百分之 N 的位置上
& 2 重复上次 :s
( 1 光标回退 N 个句子
) 1 光标前进 N 个句子
* 转到与当前单词相处的下一个单词处
. 2 重复最近的改变,其计数被 N 取代
0 光标移动到本行的第一个字符上
>> 右缩进
<< 左缩进
@: 重复上次的 ":" 命令 N 次
A 2 在行尾附加文本 N 次
B 1 光标反向移动 N 个 WORD (字串)
E 1 光标正向移动到第 N 个 WORD 的结束处
G 1 光标移动到第 N 行,缺省是最后一行
H 1 光标移动到屏幕顶部开始算的第 N 行
I 1 在本行第一个 CHAR 之前插入文本 N 次
J 2 连接 (Join) N 行;缺省为 2
L 1 光标移动到屏幕底部开始算的第 N 行
M 光标移动到屏幕的中间一行
N 1 反方向重复最近的 '/' 或 '?' N 次
O 2 在光标上方开始一个新行,并插入文本,重复 N次
Q 切换到 "Ex" 模式
R 2 进入替换模式: 覆盖存在的字符,重复输入文本N-1 次
U 撤消一行内所有最近的改变
V 进入面向行的可视 (Visual) 模式
W 1 光标前移 N 个 WORD
ZZ 如果修改过,保存当前文件,然后退出
ZQ 无论如何退出当前文件
^ 光标移动到本行的第一个 CHAR 上
a 2 在光标处附加文本 N 次
b 1 光标反向移动 N 个单词
do 2 等同于 ":diffget"
dp 2 等同于 ":diffput"
e 1 光标正向移动到第 N 个单词的结束处
h 1 光标左移 N 个字符
i 2 在光标前插入文本 N 次
j 1 光标下移 N 行
k 1 光标上移 N 行
l 1 光标右移 N 个字符
m{A-Za-z} 在光标位置处设置位置标记 {A-Za-z}
n 1 重复最近的 '/' 或 '?' N 次
o 1 在光标下方开始一个新行,并插入文本,重复 N次
q: 在命令行窗口里编辑 : 命令行
q/ 在命令行窗口里编辑 / 命令行
q? 在命令行窗口里编辑 ? 命令行
r{char} 1 用 {char} 替换 N 个字符
u 撤消改变
v 开始面向字符的可视 (Visual) 模式
w 1 光标前移 N 个单词
~ 2 'tildeop' 关闭时: 切换光标所在处开始的 N 个字符的大小写,并右移光标 N 个字符
~{motion} 'tildeop' 打开时: 切换 Nmove 文本的大小写
ctrl+A 2 把 N 加到光标所在/之后的数值上
ctrl+B 1 反向 (Back) 滚动 N 屏
ctrl+d 文档向上移动半屏
ctrl+e 文档向上滚动一行
ctrl+f 文档向上移动一屏
ctrl+g 显示当前文件名和位置
ctrl+L 重画屏幕
ctrl+R 2 重做 'u' 撤消的改变
ctrl+U 上滚 (Upwards) N 行 (缺省: 半屏)
ctrl+V 开始面向列块的可视 (Visual) 模式
ctrl+X 2 从光标所在/之后的数值上减去 N
ctrl+Y 下滚 N 行
ctrl+Z 暂停程序 (或者启动新的外壳)
Ctrl+^ 编辑第 N 个轮换文件 (等价于 ":e #N")
Last line mode
:! 过滤行,或可通过外部命令执行之
:!! 重复上次的 ":!" 命令
:# 等同于 ":number"
:& 重复上次的 ":substitute"
:* 重复上次的 ":substitute"
:= 显示光标所在的行号
:> 将行右移一个 'shiftwidth'
:@ 执行寄存器的内容
:@@ 重复上次的 ":@"
:N[ext] 转到参数列表的上一个文件
:P[rint] 显示行
:X 请求加密密钥
:a[ppend] 附加文本
:ar[gs] 显示参数列表
:bd[elete] 从缓冲区列表删除缓冲区
:bn[ext] 转到缓冲区列表里的下一个缓冲区
:bp[revious] 转到缓冲区列表里的上一个缓冲区
:bro[wse] 使用文件选择对话框
:buffers 列出缓冲区列表里的所有文件
:cal[l] 调用函数
:cd 改变目录
:ce[nter] 排版行,使其居中对齐
:cha[nges] 显示修改的列表
:chd[ir] 改变当前目录
:clo[se] 关闭当前窗口
:diffs[plit] 显示和另外一个文件的差异
:diffthis 使得当前窗口成为 diff 窗口
:dig[raphs] 显示或者输入二合字母
:dif[fupdate] 更新 'diff' 缓冲区
:di[splay] 显示寄存器
:e[dit] 编辑文件
:ec[ho] 回显表达式结果
:files 列出缓冲区列表的所有文件
:filet[ype] 切换文件类型检测的打开/关闭
:fir[st] 转到参数列表的第一个文件
:ha[rdcopy] 发送文本到打印机
:hi[ghlight] 指定高亮方法
:his[tory] 显示历史列表
:hid[e] 为一个命令隐藏当前缓冲区
:int[ro] 显示介绍文字
:la[st] 转到参数列表的最后一个文件
:lan[guage] 设置语言 (locale)
:le[ft] 左对齐行
:m[ove] 移动行
:map 显示或者输入映射
:marks 列出所有的位置标记
:mat[ch] 定义要高亮显示的匹配的模式
:mes[sages] 显示以前显示的消息
:mk[exrc] 写入当前映射和设置到文件
:mks[ession] 写入会话信息到文件
:mkvie[w] 写入当前窗口的视图到文件
:new 创建一个新的空白窗口
:n[ext] 跳转到参数列表的下一个文件
:nu[mber] 显示文本行时给出行号
:on[ly] 关闭当前窗口,除了当前的窗口以外
:opt[ions] 打开选项窗口
:prev[ious] 跳转到参数列表里的上一个文件
:pro[mptfind] 打开 GUI 对话框进行搜索
:promptr[epl] 打开 GUI 对话框进行搜索/替代
:pc[lose] 关闭预览窗口
:ped[it] 在预览窗口编辑文件
:perld[o] 对每行都执行 Perl 命令
:pw[d] 显示当前目录
:q[uit] 退出当前窗口 (如果只有一窗口,则退出 Vim)
:quita[ll] 退出 Vim
:qa[ll] 退出 Vim
:r[ead] 读入文件到文本
:rec[over] 从交换文件里恢复文件
:red[o] 重做一次撤销的改变
:redi[r] 重定向消息到文件或者寄存器
:redr[aw] 强迫显示的重画
:redraws[tatus] 强迫状态行的重画
:reg[isters] 显示寄存器的内容
:res[ize] 改变当前窗口的高度
:ri[ght] 右对齐文本
:sav[eas] 用别的名字保存文件
:scrip[tnames] 列出所有执行过的 Vim 脚本的名字
:sh[ell] 退到外壳程序
:sl[eep] 几秒内不作任何事
:sor[t] 给行排序
:so[urce] 从文件里读取 Vim 或 Ex 命令
:sp[lit] 分割当前窗口
:tabe[dit] 在新标签页里编辑文件
:tabnew 在新标签页里编辑文件
:tabs 列出标签页以及里面包含的内容
:up[date] 如果有修改,写回缓冲区
:vne[w] 建立新的空白窗口,垂直分割
:ve[rsion] 显示版本号和其它信息
:vs[plit] 垂直分割当前窗口
:wa[ll] 写回所有 (改变的) 缓冲区
:wn[ext] 写回文件,然后跳转到参数列表的下一个文件
:wp[revious] 写回文件,然后跳转到参数列表的前一个文件
:w[rite] 写回文件
:wq 写回文件,然后退出窗口或者 Vim
:wqa[ll] 写回所有 (改变的) 缓冲区然后退出 Vim
:~ 重复上次 ":substitute"
Insert mode
ctrl+@ 插入最近插入的文本并停止插入
ctrl+A 插入最近插入的文本
ctrl+C 退出插入模式
ctrl+D 在当前行删除一个shiftwidth的缩进
ctrl+I 等同于<Tab>
ctrl+J 等同于<CR>
ctrl+k {char1} {char2} 输入二合字母
ctrl+M 等同于<CR>
ctrl+N 查找光标前的关键字的下一个匹配
ctrl+P 查找光标前面的关键字的前一个匹配
ctrl+R 插入寄存器内容
ctrl+T 在当前行插入一个 shiftwidth 的缩进
ctrl+U 删除当前行的所有输入字符
ctrl+W 删除光标前的单词
ctrl+N 根据已输入部分向后查找匹配
ctrl+X ctrl+F 弹出当前目录中的文件列表
ctrl+x ctrl+I 弹出所有行列表
ctrl+x ctrl+v 弹出vim命令列表
ctrl+x ctrl+d 弹出宏定义列表
ctrl+x ctrl+i 弹出当前文件和被当前文件include单词列表
ctrl+x ctrl+k 弹出一个字典文件的单词列表
ctrl+x ctrl+t 弹出一个thesaurus的单词列表
Else
vim –R file 以只读的形式打开文件
vim –o file file1 为每个文件打开一个窗口,水平排列
vim –O file file1 为每个文件打开一个窗口,垂直排列
vimdiff file file 文件比较
用Secure Shell连接Linux时,vim不显示语法高亮的解决办法:在/etc/profile里加上export TERM=dtterm
vim -o suren suren1 #分割窗口的形式打开
:set number 显示行号
:set nonumber 取消行号
:set numberwidth=3 设置行号列宽
:set hlsearch 高亮显示搜索内容
:set incsearch 输入关键字的时候高亮显示
:set ignorecase 搜索时忽略大小写
:set wrapscan 循环搜索(默认值)
:set nowrapscan 只搜索一次
:set showmatch 在输入右括号时,短暂地跳到对应括号处
:set matchtime=10 跳转时间,单位:十分之一秒
:set cursorcolumn 高亮光标所在列
:set nocursorcolumn 取消高亮光标所在列
:set cursorline 高亮光标所在行
:set nocursorline 取消高亮光标所在行
:set wrap 自动换行
:set nowrap 取消自动换行
:set autoindent 保持上一行的缩进
:set shiftwidth=4 设置缩进单位
:set ruler 在右下角显示光标位置
:set noruler 不显示光标位置
:set scrolloff=3 使光标始终和上下边缘相距3行
:set list 设置制表符可见
:set autochdir 将当前目录自动切换为文件所在目录
:set scrollbind 设置多窗口同步滚动
:set noscrollbind 取消多窗口同步滚动
:set autoread 如果文件被修改,自动读入,该项可能会不起作用
:set backspace=indent,eol,start 在Insert模式可以删除行首的空格、断行、进入Insert模式之前的位置
:set readonly 设置只读,该项写在配置文件中可能不起作用,在编辑时有效
:set fileformat? 显示当前的文件格式
:set nomodifiable 设置不可修改
:syntax on 打开语法高亮
:syntax off 取消语法高亮
:filetype on 自动识别文件类型
:colorscheme desert 选择颜色方案
常用命令
Command mode
gf 打开以当前字符的文件
ga 显示当前字符的ascii、十进制、十六进制
{ 移动到上一个空行
} 移动到下一个空行
gd 转到定义该变量处
!!{filter} 2 通过 {filter} 命令过滤 N 行
# 1 反向搜索第 N 次出现的光标所在的标识符
$ 1 光标移动到往下第 N 行的行尾之后
% 1 查找本行下一个 (花/方) 括号,并转到其匹配的 括号上,或者转到匹配的注释配对上,或者转到 匹配的预处理命令上。
{count}% 1 转到文件的百分之 N 的位置上
& 2 重复上次 :s
( 1 光标回退 N 个句子
) 1 光标前进 N 个句子
* 转到与当前单词相处的下一个单词处
. 2 重复最近的改变,其计数被 N 取代
0 光标移动到本行的第一个字符上
>> 右缩进
<< 左缩进
@: 重复上次的 ":" 命令 N 次
A 2 在行尾附加文本 N 次
B 1 光标反向移动 N 个 WORD (字串)
E 1 光标正向移动到第 N 个 WORD 的结束处
G 1 光标移动到第 N 行,缺省是最后一行
H 1 光标移动到屏幕顶部开始算的第 N 行
I 1 在本行第一个 CHAR 之前插入文本 N 次
J 2 连接 (Join) N 行;缺省为 2
L 1 光标移动到屏幕底部开始算的第 N 行
M 光标移动到屏幕的中间一行
N 1 反方向重复最近的 '/' 或 '?' N 次
O 2 在光标上方开始一个新行,并插入文本,重复 N次
Q 切换到 "Ex" 模式
R 2 进入替换模式: 覆盖存在的字符,重复输入文本N-1 次
U 撤消一行内所有最近的改变
V 进入面向行的可视 (Visual) 模式
W 1 光标前移 N 个 WORD
ZZ 如果修改过,保存当前文件,然后退出
ZQ 无论如何退出当前文件
^ 光标移动到本行的第一个 CHAR 上
a 2 在光标处附加文本 N 次
b 1 光标反向移动 N 个单词
do 2 等同于 ":diffget"
dp 2 等同于 ":diffput"
e 1 光标正向移动到第 N 个单词的结束处
h 1 光标左移 N 个字符
i 2 在光标前插入文本 N 次
j 1 光标下移 N 行
k 1 光标上移 N 行
l 1 光标右移 N 个字符
m{A-Za-z} 在光标位置处设置位置标记 {A-Za-z}
n 1 重复最近的 '/' 或 '?' N 次
o 1 在光标下方开始一个新行,并插入文本,重复 N次
q: 在命令行窗口里编辑 : 命令行
q/ 在命令行窗口里编辑 / 命令行
q? 在命令行窗口里编辑 ? 命令行
r{char} 1 用 {char} 替换 N 个字符
u 撤消改变
v 开始面向字符的可视 (Visual) 模式
w 1 光标前移 N 个单词
~ 2 'tildeop' 关闭时: 切换光标所在处开始的 N 个字符的大小写,并右移光标 N 个字符
~{motion} 'tildeop' 打开时: 切换 Nmove 文本的大小写
ctrl+A 2 把 N 加到光标所在/之后的数值上
ctrl+B 1 反向 (Back) 滚动 N 屏
ctrl+d 文档向上移动半屏
ctrl+e 文档向上滚动一行
ctrl+f 文档向上移动一屏
ctrl+g 显示当前文件名和位置
ctrl+L 重画屏幕
ctrl+R 2 重做 'u' 撤消的改变
ctrl+U 上滚 (Upwards) N 行 (缺省: 半屏)
ctrl+V 开始面向列块的可视 (Visual) 模式
ctrl+X 2 从光标所在/之后的数值上减去 N
ctrl+Y 下滚 N 行
ctrl+Z 暂停程序 (或者启动新的外壳)
Ctrl+^ 编辑第 N 个轮换文件 (等价于 ":e #N")
Last line mode
:! 过滤行,或可通过外部命令执行之
:!! 重复上次的 ":!" 命令
:# 等同于 ":number"
:& 重复上次的 ":substitute"
:* 重复上次的 ":substitute"
:= 显示光标所在的行号
:> 将行右移一个 'shiftwidth'
:@ 执行寄存器的内容
:@@ 重复上次的 ":@"
:N[ext] 转到参数列表的上一个文件
:P[rint] 显示行
:X 请求加密密钥
:a[ppend] 附加文本
:ar[gs] 显示参数列表
:bd[elete] 从缓冲区列表删除缓冲区
:bn[ext] 转到缓冲区列表里的下一个缓冲区
:bp[revious] 转到缓冲区列表里的上一个缓冲区
:bro[wse] 使用文件选择对话框
:buffers 列出缓冲区列表里的所有文件
:cal[l] 调用函数
:cd 改变目录
:ce[nter] 排版行,使其居中对齐
:cha[nges] 显示修改的列表
:chd[ir] 改变当前目录
:clo[se] 关闭当前窗口
:diffs[plit] 显示和另外一个文件的差异
:diffthis 使得当前窗口成为 diff 窗口
:dig[raphs] 显示或者输入二合字母
:dif[fupdate] 更新 'diff' 缓冲区
:di[splay] 显示寄存器
:e[dit] 编辑文件
:ec[ho] 回显表达式结果
:files 列出缓冲区列表的所有文件
:filet[ype] 切换文件类型检测的打开/关闭
:fir[st] 转到参数列表的第一个文件
:ha[rdcopy] 发送文本到打印机
:hi[ghlight] 指定高亮方法
:his[tory] 显示历史列表
:hid[e] 为一个命令隐藏当前缓冲区
:int[ro] 显示介绍文字
:la[st] 转到参数列表的最后一个文件
:lan[guage] 设置语言 (locale)
:le[ft] 左对齐行
:m[ove] 移动行
:map 显示或者输入映射
:marks 列出所有的位置标记
:mat[ch] 定义要高亮显示的匹配的模式
:mes[sages] 显示以前显示的消息
:mk[exrc] 写入当前映射和设置到文件
:mks[ession] 写入会话信息到文件
:mkvie[w] 写入当前窗口的视图到文件
:new 创建一个新的空白窗口
:n[ext] 跳转到参数列表的下一个文件
:nu[mber] 显示文本行时给出行号
:on[ly] 关闭当前窗口,除了当前的窗口以外
:opt[ions] 打开选项窗口
:prev[ious] 跳转到参数列表里的上一个文件
:pro[mptfind] 打开 GUI 对话框进行搜索
:promptr[epl] 打开 GUI 对话框进行搜索/替代
:pc[lose] 关闭预览窗口
:ped[it] 在预览窗口编辑文件
:perld[o] 对每行都执行 Perl 命令
:pw[d] 显示当前目录
:q[uit] 退出当前窗口 (如果只有一窗口,则退出 Vim)
:quita[ll] 退出 Vim
:qa[ll] 退出 Vim
:r[ead] 读入文件到文本
:rec[over] 从交换文件里恢复文件
:red[o] 重做一次撤销的改变
:redi[r] 重定向消息到文件或者寄存器
:redr[aw] 强迫显示的重画
:redraws[tatus] 强迫状态行的重画
:reg[isters] 显示寄存器的内容
:res[ize] 改变当前窗口的高度
:ri[ght] 右对齐文本
:sav[eas] 用别的名字保存文件
:scrip[tnames] 列出所有执行过的 Vim 脚本的名字
:sh[ell] 退到外壳程序
:sl[eep] 几秒内不作任何事
:sor[t] 给行排序
:so[urce] 从文件里读取 Vim 或 Ex 命令
:sp[lit] 分割当前窗口
:tabe[dit] 在新标签页里编辑文件
:tabnew 在新标签页里编辑文件
:tabs 列出标签页以及里面包含的内容
:up[date] 如果有修改,写回缓冲区
:vne[w] 建立新的空白窗口,垂直分割
:ve[rsion] 显示版本号和其它信息
:vs[plit] 垂直分割当前窗口
:wa[ll] 写回所有 (改变的) 缓冲区
:wn[ext] 写回文件,然后跳转到参数列表的下一个文件
:wp[revious] 写回文件,然后跳转到参数列表的前一个文件
:w[rite] 写回文件
:wq 写回文件,然后退出窗口或者 Vim
:wqa[ll] 写回所有 (改变的) 缓冲区然后退出 Vim
:~ 重复上次 ":substitute"
Insert mode
ctrl+@ 插入最近插入的文本并停止插入
ctrl+A 插入最近插入的文本
ctrl+C 退出插入模式
ctrl+D 在当前行删除一个shiftwidth的缩进
ctrl+I 等同于<Tab>
ctrl+J 等同于<CR>
ctrl+k {char1} {char2} 输入二合字母
ctrl+M 等同于<CR>
ctrl+N 查找光标前的关键字的下一个匹配
ctrl+P 查找光标前面的关键字的前一个匹配
ctrl+R 插入寄存器内容
ctrl+T 在当前行插入一个 shiftwidth 的缩进
ctrl+U 删除当前行的所有输入字符
ctrl+W 删除光标前的单词
ctrl+N 根据已输入部分向后查找匹配
ctrl+X ctrl+F 弹出当前目录中的文件列表
ctrl+x ctrl+I 弹出所有行列表
ctrl+x ctrl+v 弹出vim命令列表
ctrl+x ctrl+d 弹出宏定义列表
ctrl+x ctrl+i 弹出当前文件和被当前文件include单词列表
ctrl+x ctrl+k 弹出一个字典文件的单词列表
ctrl+x ctrl+t 弹出一个thesaurus的单词列表
Else
vim –R file 以只读的形式打开文件
vim –o file file1 为每个文件打开一个窗口,水平排列
vim –O file file1 为每个文件打开一个窗口,垂直排列
vimdiff file file 文件比较
用Secure Shell连接Linux时,vim不显示语法高亮的解决办法:在/etc/profile里加上export TERM=dtterm
vim -o suren suren1 #分割窗口的形式打开