Vim

移动

以字(符)为单位

功能 按键
k
j
h
l

以单词为单位

功能 按键
前一个单词尾 ge
后一个单词首 w
本单词首(已在本词首则跳到前一单词首) b
本单词尾(已在本词尾则跳到后一单词尾) e

以屏幕为单位

功能 按键
向下翻页 CTRL-f
向上翻页 CTRL-b
向下翻半页 CTRL-d
向上翻半页 CTRL-u
向上一行 CTRL-y
向下一行 CTRL-e
光标移到屏幕上方 H
光标移到屏幕中间 M
光标移到屏幕下方 L
光标所在位置移到屏幕上方 zt
光标所在位置移到屏幕中间 zz
光标所在位置移到屏幕下方 zb

行号

功能 按键
跳到第 num 行 :numnumGnumgg

文件

功能 按键
跳到文件头 gg
跳到文件尾 G

编辑

复制

功能 按键
复制光标所在单词 yiw
复制光标所在行 yy

粘贴

功能 按键
在光标之后粘贴 p
在光标之前粘贴 P

剪切

功能 按键
剪切选中区域 d
剪切光标所在行 dd

替换

功能 按键
将全文中的 str1 替换为 str2 :%s/str1/str2/g
将 1 到 5 行中的 str1 替换为 str2 :1,5s/str1/str2/g

大小写

功能 按键
将选中内容大小写互换 ~
将选中内容全转为小写 gu
将选中内容全转为大写 gU
将当前行变成小写 guu
将当前行变成大写 gUU

选择

功能 按键
选中上一次选择的区域 gv
选中括号内区域 vi{vi[vi(

搜索

功能 按键
向下查找字符串 /str
向上查找字符串 ?str
查找下一个 n
查找上一个 N
向下查找光标所在单词 *
向下查找光标所在单词 #

正则表达式

功能 按键
匹配单词左边界 \<
匹配单词右边界 \>
去重 :g/^\(.*\)$\n\1/d

常用

功能 按键
删除空行 :g/^$/d
撤销/UNDO u
重做/REDO C-r
统计行/单词/字符/字节数 g C-g
去掉 UTF-8 BOM :set nobomb
保留 UTF-8 BOM :set bomb

全局

功能 按键
退出 :q
强制执行 !
执行外部命令 :!

文件操作

功能 按键
打开 :e
打开文件对话框 :bro e
保存 :w
另存为对话框 :bro w
查看历史文件列表 :ol
查看并打开历史文件 :bro ol
重命名当前文件 :f filename

vimdiff

功能 按键
移动到上一个不同处 [c
移动到下一个不同处 ]c
该差异点使用当前文件的 dp
该差异点使用其它文件的 do
手动刷新重新比较 :diffupdate

Buffer

功能 按键
查看 Buffer 列表 :ls
转到 Buffer 列表中的下一个 Buffer :bn
转到 Buffer 列表中的上一个 Buffer :bp
转到 Buffer 列表中的 num 号 Buffer :bnum
你之前待过的一个 Buffer :b#
从 Buffer 列表中删除 num 号 Buffer :bdnum

组合命令

可以使用 | 来组合命令,比如 cmd1 | cmd2

代码

功能 按键
格式化代码 gg=G
去除 1-20 行首的行号 :1,20s/^\\s\*[0-9]\*\\s\*//g
展开全部折叠 zR
展开当前层级折叠 zr
全部折叠 zM
当前层级折叠 zm
切换折叠/展开 za
递归折叠/展开当前大区块 zA
折叠当前区块 zc
递归折叠当前大区块 zC
展开当前区块 zo
递归展开当前大区块 zO
格式化 json 数据 :%!python -m json.tool
缩进当前行 >>
反缩进当前行 <<

插件

CtrlP

基础按键 C-p

功能 按键
刷新列表 F5
切换文件/缓冲区/MRU C-f/b
切换全路径搜索/文件名搜索 C-d
切换正则表达式模式 C-r
上/下一个选项 C-k/j
在新标签/垂直分割/水平分割打开文件 C-t/v/x
历史选择记录的上/下一条 C-p/n
创建文件和它的父路径 C-y
标记并打开多个文件 C-z C-o
退出 CtrlP C-c

LeaderF

功能 按键
打开文件 Leader-f
打开缓冲区 Leader-b
打开 MRU Leader-m(自定义的)
退出 C-c
切换模糊查找和正则查找 C-r
粘贴 C-v
清空输入 C-u
上/下一个选项 C-k/j
在新标签/垂直分割/水平分割打开文件 C-t/]/v
刷新列表 F5

vim-table-mode

功能 按键
删除列 Leader-tdc
删除行 Leader-tdd
重新格式化表格 Leader-tr

Search

    Table of Contents