update vim cheatsheet

pull/2/head
skywind3000 7 years ago
parent 399dc6c076
commit e6b04934ba

@ -2,8 +2,8 @@
#
# VIM CHEATSHEET (http://www.vim.org)
#
# Version: 2
# Last Modified: 2018/02/22 23:09
# Version: 3
# Last Modified: 2018/02/23 00:56
#
# 项目地址https://github.com/vim/vim
# 中文文档http://vimcdoc.sourceforge.net/doc/help.html
@ -17,19 +17,19 @@
# 光标移动
##############################################################################
h 光标左移,同 Left 键
j 光标下移,同 Down 键
k 光标上移,同 Up 键
l 光标右移,同 Right 键
h 光标左移,同 <Left>
j 光标下移,同 <Down>
k 光标上移,同 <Up>
l 光标右移,同 <Right>
CTRL-f 下一页
CTRL-b 上一页
CTRL-u 上移半屏
CTRL-d 下移半屏
0 跳到行首是数字零不是字母O效用等同于 Home 键
0 跳到行首是数字零不是字母O效用等同于 <Home>
^ 跳到从行首开始第一个非空白字符
$ 跳到行尾,效用等同于 End 键
gg 跳到第一行,效用等同于 CTRL+Home
G 跳到最后一行,效用等同于 CTRL+End
$ 跳到行尾,效用等同于 <End>
gg 跳到第一行,效用等同于 CTRL+<Home>
G 跳到最后一行,效用等同于 CTRL+<End>
nG 跳到第n行比如 10G 是移动到第十行
:n 跳到第n行比如 :10<回车> 是移动到第十行
w 跳到下一个单词开头 (word: 标点或空格分隔的单词)
@ -49,10 +49,20 @@ ge 上一个单词尾
H 移动到屏幕上部
M 移动到屏幕中部
L 移动到屏幕下部
fx 跳转到下一个为 x 的字符
Fx 跳转到上一个为 x 的字符
tx 跳转到下一个为 x 的字符前
Tx 跳转到上一个为 x 的字符前
; 跳到下一个 f/t 搜索的结果
, 跳到上一个 f/t 搜索的结果
<S-Left> 按住 SHIFT 按左键,向左移动一个单词
<S-Right> 按住 SHIFT 按右键,向右移动一个单词
<S-Up> 按住 SHIFT 按上键,向上翻页
<S-Down> 按住 SHIFT 按下键,向下翻页
##############################################################################
# 插入模式
# 插入模式:进入退出
##############################################################################
i 在光标处进入插入模式
@ -66,14 +76,43 @@ gi 进入到上一次插入模式的位置
CTRL-[ 退出插入模式(同 ESC 等价,但更顺手)
##############################################################################
# INSERT MODE - 由 i, I, a, A, o, O 等命令进入插入模式后
##############################################################################
<Up> 光标向上移动
<Down> 光标向下移动
<Left> 光标向左移动
<Right> 光标向右移动
<S-Left> 按住 SHIFT 按左键,向左移动一个单词
<S-Right> 按住 SHIFT 按右键,向右移动一个单词
<S-Up> 按住 SHIFT 按上键,向上翻页
<S-Down> 按住 SHIFT 按下键,向下翻页
<PageUp> 上翻页
<PageDown> 下翻页
<Delete> 删除光标处字符
<BS> Backspace 向后删除字符
<Home> 光标跳转行首
<End> 光标跳转行尾
CTRL-w 向后删除单词
CTRL-o 临时退出插入模式,执行单条命令又返回插入模式
CTRL-\ CTRL-o 临时退出插入模式(光标保持),执行单条命令又返回插入模式
CTRL-r 插入寄存器(内部剪贴板编号)内容
CTRL-r = 插入表达式计算结果
CTRL-f 自动缩进
CTRL-v {char} 插入非数字的字面量
CTRL-v {number} 插入三个数字代表的 ascii 字节
CTRL-k {ch1} {ch2} 插入 digraph见 :h digraph快速输入日文或符号等
##############################################################################
# 文本编辑
##############################################################################
r 替换当前字符
R 进入替换模式,直至 ESC 离开
s 删除光标处字符,并进入插入模式(前可接数量表示删几个字符)
S 删除光标所在行,并进入插入模式(前可接数量表示删多少行)
s 替换字符(删除光标处字符,并进入插入模式,前可接数量
S 替换行(删除当前行,并进入插入模式,前可接数量
cc 改写当前行(删除当前行并进入插入模式),同 S
cw 改写光标开始处的当前单词
ciw 改写光标所处的单词
@ -81,6 +120,13 @@ caw 改写光标所处的单词,并且包括前后空格(如
c0 改写到行首
c^ 改写到行首(第一个非零字符)
c$ 改写到行末
ci" 改写双引号中的内容
ci' 改写单引号中的内容
ci) 改写小括号中的内容
ci] 改写中括号中内容
ci} 改写大括号中内容
cit 改写 xml tag 中的内容
c2w 改写下两个单词
x 删除当前字符,前面可以接数字
X 向前删除字符
dd 删除当前行
@ -91,6 +137,17 @@ D 删除到行末(同 d$
dw 删除当前单词
diw 删除光标所处的单词
daw 删除光标所处的单词,并包含前后空格(如果有的话)
di" 删除双引号中的内容
di' 删除单引号中的内容
di) 删除小括号中的内容
di] 删除中括号中内容
di} 删除大括号中内容
dit 删除 xml tag 中的内容
d2w 删除下两个单词
dgg 删除到文件头部
dG 删除到文件尾部
d} 删除下一段
d{ 删除上一段
u 撤销
CTRL-R 重复
J 链接多行为一行
@ -102,6 +159,8 @@ guiw 将当前单词转成小写
<< 减少缩进
>> 增加缩进
== 自动缩进
CTRL-a 增加数字
CTRL-x 减少数字
##############################################################################
@ -149,13 +208,10 @@ N 向相反方向执行上一次搜索
# 位置跳转
##############################################################################
fx 跳转到下一个为 x 的字符
Fx 跳转到上一个为 x 的字符
tx 跳转到下一个为 x 的字符前
Tx 跳转到上一个为 x 的字符前
; 跳到下一个 f/t 搜索的结果
, 跳到上一个 f/t 搜索的结果
CTRL-o 跳转到上一个位置
CTRL-i 跳转到下一个位置
CTRL-^ 跳转到 alternate file (当前窗口的上一个文件)
% 跳转到 {} () [] 的匹配
gd 跳转到定义
[[ 跳转到上一个顶层函数比如C语言以大括号分隔
]] 跳转到下一个顶层函数比如C语言以大括号分隔
@ -165,14 +221,29 @@ gd 跳转到定义
]} 跳转到下一处未匹配的 }
[( 跳转到上一处未匹配的 (
]) 跳转到下一处未匹配的 )
[s 跳转到上一处拼写错误
]s 跳转到下一处拼写错误
[c 上一个不同处diff时
]c 下一个不同处diff时
[/ 跳转到 C注释开头
]/ 跳转到 C注释结尾
##############################################################################
# VISUAL MODE - 由 v, V, CTRL-v 进入的可视模式
##############################################################################
> 增加缩进
< 减少缩进
d 删除文字
c 改写文字
y 拷贝文字
~ 转换大小写
o 跳转到标记区的另外一端
O 跳转到标记块的另外一端
u 标记区转换为小写
U 标记区转换为大写
<Esc> 退出可视模式
##############################################################################
# 文件操作
##############################################################################
@ -190,6 +261,10 @@ gd 跳转到定义
:cd <path> 切换 Vim 当前路径
:pwd 显示 Vim 当前路径
gf 打开名称为光标下文件名的文件
:new 打开一个新的窗口编辑新文件
:enew 在当前窗口创建新文件
:vnew 在左右切分的新窗口中编辑新文件
:tabnew 在新的标签页中编辑新文件
##############################################################################
@ -232,6 +307,8 @@ CTRL-w H 将当前窗口移动到最左边
CTRL-w J 将当前窗口移动到最下边
CTRL-w K 将当前窗口移动到最上边
CTRL-w L 将当前窗口移动到最右边
CTRL-w x 交换窗口
CTRL-w f 在新窗口中打开名为光标下文件名的文件
CTRL-w gf 在新窗口中打开名为光标下文件名的文件
CTRL-w R 旋转窗口
CTRL-w T 将当前窗口移到新的标签页中
@ -249,6 +326,8 @@ CTRL-w z 关闭预览窗口
:tabc 关闭当前标签页
:tabn n 切换到第n个标签页比如 :tabn 3 切换到第三个标签页
ngt 切换到第n个标签页比如 2gt 将会切换到第二个标签页
gt 下一个标签页
gT 上一个标签页
##############################################################################
@ -267,8 +346,16 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z 26
# 常用设置
##############################################################################
:set all 列出所有选项设置情况
:set nocompatible 设置不兼容原始 vi 模式(必须设置在最开头)
:set bs=? 设置BS键模式现代编辑器为 :set bs=eol,start,indent
:set sw=4 设置缩进宽度为 4
:set ts=4 设置制表符宽度为 4
:set noet 设置不展开 tab 成空格
:set et 设置展开 tab 成空格
:set winaltkeys=no 设置 GVim 下正常捕获 ALT 键
:set nowrap 关闭自动换行
:set ttimeout 允许终端按键检测超时终端下功能键为一串ESC开头的扫描码
:set ttm=100 设置终端按键检测超时为100毫秒
:set term 设置终端类型
:set ignorecase 设置搜索是否忽略大小写
:set list 设置显示制表符和换行符
@ -276,6 +363,9 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z 26
:set paste 进入粘贴模式(粘贴时禁用缩进等影响格式的东西)
:set nopaste 结束粘贴模式
:set spell 允许拼写检查
:set hlsearch 设置高亮查找
:set insertmode Vim 始终处于插入模式下,使用 ctrl-o 临时执行命令
:set all 列出所有选项设置情况
##############################################################################
@ -308,7 +398,42 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z 26
:call system('ls') 调用 ls 命令,但是不显示返回内容
:!start notepad Windows 下启动 notepad最前面可以加 silent
:sil !start cmd Windows 下当前目录打开 cmd
:%!prog 运行文字过滤程序,如 :%!tidy -q -i --show-errors 0
:%!prog 运行文字过滤程序,如整理 json格式 :%!python -m json.tool
##############################################################################
# Quickfix 窗口
##############################################################################
:copen 打开 quickfix 窗口查看编译grep等信息
:copen 10 打开 quickfix 窗口,并且设置高度为 10
:cclose 关闭 quickfix 窗口
:cfirst 跳到 quickfix 中第一个错误信息
:clast 跳到 quickfix 中最后一条错误信息
:cnext 跳到 quickfix 中下一个错误信息
:cprev 跳到 quickfix 中上一个错误信息
##############################################################################
# 拼写检查
##############################################################################
:set spell 打开拼写检查
:set nospell 关闭拼写检查
]s 下一处错误拼写的单词
[s 上一处错误拼写的单词
zg 加入单词到拼写词表中
zug 撤销上一次加入的单词
z= 拼写建议
##############################################################################
# 其他命令
##############################################################################
CTRL-E 向上卷屏
CTRL-Y 向下卷屏
zz 将光标所在行滚屏到屏幕中央
ga 显示光标下字符的 ascii 码或者 unicode 编码
# vim: set ts=4 sw=4 tw=0 noet noautoindent :

Loading…
Cancel
Save