|
|
@ -1,6 +1,6 @@
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
|
# VIM CHEATSHEET (中文速查表) - by skywind (created on 2017/10/12)
|
|
|
|
# VIM CHEATSHEET (中文速查表) - by skywind (created on 2017/10/12)
|
|
|
|
# Version: 26, Last Modified: 2018/03/09 15:50
|
|
|
|
# Version: 29, Last Modified: 2018/03/11 23:49
|
|
|
|
# https://github.com/skywind3000/awesome-cheatsheets
|
|
|
|
# https://github.com/skywind3000/awesome-cheatsheets
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
|
@ -43,7 +43,7 @@ ge 上一个单词尾
|
|
|
|
H 移动到屏幕上部
|
|
|
|
H 移动到屏幕上部
|
|
|
|
M 移动到屏幕中部
|
|
|
|
M 移动到屏幕中部
|
|
|
|
L 移动到屏幕下部
|
|
|
|
L 移动到屏幕下部
|
|
|
|
fx 跳转到下一个为 x 的字符
|
|
|
|
fx 跳转到下一个为 x 的字符,2f/ 可以找到第二个斜杆
|
|
|
|
Fx 跳转到上一个为 x 的字符
|
|
|
|
Fx 跳转到上一个为 x 的字符
|
|
|
|
tx 跳转到下一个为 x 的字符前
|
|
|
|
tx 跳转到下一个为 x 的字符前
|
|
|
|
Tx 跳转到上一个为 x 的字符前
|
|
|
|
Tx 跳转到上一个为 x 的字符前
|
|
|
@ -94,8 +94,11 @@ CTRL-[ 退出插入模式(同 ESC 等价,但更顺手)
|
|
|
|
CTRL-W 向后删除单词
|
|
|
|
CTRL-W 向后删除单词
|
|
|
|
CTRL-O 临时退出插入模式,执行单条命令又返回插入模式
|
|
|
|
CTRL-O 临时退出插入模式,执行单条命令又返回插入模式
|
|
|
|
CTRL-\ CTRL-O 临时退出插入模式(光标保持),执行单条命令又返回插入模式
|
|
|
|
CTRL-\ CTRL-O 临时退出插入模式(光标保持),执行单条命令又返回插入模式
|
|
|
|
CTRL-R 插入寄存器(内部剪贴板编号)内容
|
|
|
|
CTRL-R 0 插入寄存器(内部 0号剪贴板)内容,CTRL-R 后可跟寄存器名
|
|
|
|
CTRL-R = 插入表达式计算结果
|
|
|
|
CTRL-R " 插入匿名寄存器内容,相当于插入模式下 p粘贴
|
|
|
|
|
|
|
|
CTRL-R = 插入表达式计算结果,等号后面跟表达式
|
|
|
|
|
|
|
|
CTRL-R : 插入上一次命令行命令
|
|
|
|
|
|
|
|
CTRL-R / 插入上一次搜索的关键字
|
|
|
|
CTRL-F 自动缩进
|
|
|
|
CTRL-F 自动缩进
|
|
|
|
CTRL-U 删除当前行所有字符
|
|
|
|
CTRL-U 删除当前行所有字符
|
|
|
|
CTRL-V {char} 插入非数字的字面量
|
|
|
|
CTRL-V {char} 插入非数字的字面量
|
|
|
@ -164,6 +167,8 @@ J 链接多行为一行
|
|
|
|
g~iw 替换当前单词的大小写
|
|
|
|
g~iw 替换当前单词的大小写
|
|
|
|
gUiw 将单词转成大写
|
|
|
|
gUiw 将单词转成大写
|
|
|
|
guiw 将当前单词转成小写
|
|
|
|
guiw 将当前单词转成小写
|
|
|
|
|
|
|
|
guu 全行转为小写
|
|
|
|
|
|
|
|
gUU 全行转为大写
|
|
|
|
<< 减少缩进
|
|
|
|
<< 减少缩进
|
|
|
|
>> 增加缩进
|
|
|
|
>> 增加缩进
|
|
|
|
== 自动缩进
|
|
|
|
== 自动缩进
|
|
|
@ -245,6 +250,27 @@ N 向相反方向执行上一次搜索
|
|
|
|
:%s/p1/p2/gc 将当前文件中全替换p1为p2,并且每处询问你是否替换
|
|
|
|
:%s/p1/p2/gc 将当前文件中全替换p1为p2,并且每处询问你是否替换
|
|
|
|
:10,20s/p1/p2/g 将第10到20行中所有p1替换为p2
|
|
|
|
:10,20s/p1/p2/g 将第10到20行中所有p1替换为p2
|
|
|
|
:%s/1\\2\/3/123/g 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
|
|
|
|
:%s/1\\2\/3/123/g 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
|
|
|
|
|
|
|
|
:%s/\r//g 删除 DOS 换行符 ^M
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
# VISUAL MODE - 由 v, V, CTRL-V 进入的可视模式
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> 增加缩进
|
|
|
|
|
|
|
|
< 减少缩进
|
|
|
|
|
|
|
|
d 删除高亮选中的文字
|
|
|
|
|
|
|
|
x 删除高亮选中的文字
|
|
|
|
|
|
|
|
c 改写文字,即删除高亮选中的文字并进入插入模式
|
|
|
|
|
|
|
|
s 改写文字,即删除高亮选中的文字并进入插入模式
|
|
|
|
|
|
|
|
y 拷贝文字
|
|
|
|
|
|
|
|
~ 转换大小写
|
|
|
|
|
|
|
|
o 跳转到标记区的另外一端
|
|
|
|
|
|
|
|
O 跳转到标记块的另外一端
|
|
|
|
|
|
|
|
u 标记区转换为小写
|
|
|
|
|
|
|
|
U 标记区转换为大写
|
|
|
|
|
|
|
|
g CTRL-G 显示所选择区域的统计信息
|
|
|
|
|
|
|
|
<Esc> 退出可视模式
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
@ -255,7 +281,9 @@ CTRL-O 跳转到上一个位置
|
|
|
|
CTRL-I 跳转到下一个位置
|
|
|
|
CTRL-I 跳转到下一个位置
|
|
|
|
CTRL-^ 跳转到 alternate file (当前窗口的上一个文件)
|
|
|
|
CTRL-^ 跳转到 alternate file (当前窗口的上一个文件)
|
|
|
|
% 跳转到 {} () [] 的匹配
|
|
|
|
% 跳转到 {} () [] 的匹配
|
|
|
|
gd 跳转到定义
|
|
|
|
gd 跳转到局部定义(光标下的单词的定义)
|
|
|
|
|
|
|
|
gD 跳转到全局定义(光标下的单词的定义)
|
|
|
|
|
|
|
|
gf 打开名称为光标下文件名的文件
|
|
|
|
[[ 跳转到上一个顶层函数(比如C语言以大括号分隔)
|
|
|
|
[[ 跳转到上一个顶层函数(比如C语言以大括号分隔)
|
|
|
|
]] 跳转到下一个顶层函数(比如C语言以大括号分隔)
|
|
|
|
]] 跳转到下一个顶层函数(比如C语言以大括号分隔)
|
|
|
|
[m 跳转到上一个成员函数
|
|
|
|
[m 跳转到上一个成员函数
|
|
|
@ -270,23 +298,6 @@ gd 跳转到定义
|
|
|
|
]/ 跳转到 C注释结尾
|
|
|
|
]/ 跳转到 C注释结尾
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
# VISUAL MODE - 由 v, V, CTRL-V 进入的可视模式
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> 增加缩进
|
|
|
|
|
|
|
|
< 减少缩进
|
|
|
|
|
|
|
|
d 删除文字
|
|
|
|
|
|
|
|
c 改写文字
|
|
|
|
|
|
|
|
y 拷贝文字
|
|
|
|
|
|
|
|
~ 转换大小写
|
|
|
|
|
|
|
|
o 跳转到标记区的另外一端
|
|
|
|
|
|
|
|
O 跳转到标记块的另外一端
|
|
|
|
|
|
|
|
u 标记区转换为小写
|
|
|
|
|
|
|
|
U 标记区转换为大写
|
|
|
|
|
|
|
|
<Esc> 退出可视模式
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
|
# 文件操作
|
|
|
|
# 文件操作
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
@ -303,7 +314,6 @@ U 标记区转换为大写
|
|
|
|
:wa 保存所有文件
|
|
|
|
:wa 保存所有文件
|
|
|
|
:cd <path> 切换 Vim 当前路径
|
|
|
|
:cd <path> 切换 Vim 当前路径
|
|
|
|
:pwd 显示 Vim 当前路径
|
|
|
|
:pwd 显示 Vim 当前路径
|
|
|
|
gf 打开名称为光标下文件名的文件
|
|
|
|
|
|
|
|
:new 打开一个新的窗口编辑新文件
|
|
|
|
:new 打开一个新的窗口编辑新文件
|
|
|
|
:enew 在当前窗口创建新文件
|
|
|
|
:enew 在当前窗口创建新文件
|
|
|
|
:vnew 在左右切分的新窗口中编辑新文件
|
|
|
|
:vnew 在左右切分的新窗口中编辑新文件
|
|
|
@ -359,6 +369,8 @@ CTRL-W R 旋转窗口
|
|
|
|
CTRL-W T 将当前窗口移到新的标签页中
|
|
|
|
CTRL-W T 将当前窗口移到新的标签页中
|
|
|
|
CTRL-W P 跳转到预览窗口
|
|
|
|
CTRL-W P 跳转到预览窗口
|
|
|
|
CTRL-W z 关闭预览窗口
|
|
|
|
CTRL-W z 关闭预览窗口
|
|
|
|
|
|
|
|
CTRL-W _ 纵向最大化当前窗口
|
|
|
|
|
|
|
|
CTRL-W | 横向最大化当前窗口
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
@ -373,6 +385,12 @@ CTRL-W z 关闭预览窗口
|
|
|
|
:tabo 关闭其他标签页
|
|
|
|
:tabo 关闭其他标签页
|
|
|
|
:tabn n 切换到第n个标签页,比如 :tabn 3 切换到第三个标签页
|
|
|
|
:tabn n 切换到第n个标签页,比如 :tabn 3 切换到第三个标签页
|
|
|
|
:tabm n 标签移动
|
|
|
|
:tabm n 标签移动
|
|
|
|
|
|
|
|
:tabfirst 切换到第一个标签页
|
|
|
|
|
|
|
|
:tablast 切换到最后一个标签页
|
|
|
|
|
|
|
|
:tab help 在标签页打开帮助
|
|
|
|
|
|
|
|
:tab drop <file> 如果文件已被其他标签页和窗口打开则跳过去,否则新标签打开
|
|
|
|
|
|
|
|
:tab split 在新的标签页中打开当前窗口里的文件
|
|
|
|
|
|
|
|
:tab ball 将缓存中所有文件用标签页打开
|
|
|
|
ngt 切换到第n个标签页,比如 2gt 将会切换到第二个标签页
|
|
|
|
ngt 切换到第n个标签页,比如 2gt 将会切换到第二个标签页
|
|
|
|
gt 下一个标签页
|
|
|
|
gt 下一个标签页
|
|
|
|
gT 上一个标签页
|
|
|
|
gT 上一个标签页
|
|
|
@ -388,6 +406,10 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z(
|
|
|
|
`a 跳转到书签 a所在位置
|
|
|
|
`a 跳转到书签 a所在位置
|
|
|
|
`. 跳转到上一次编辑的行
|
|
|
|
`. 跳转到上一次编辑的行
|
|
|
|
'A 跳转到全文书签 A
|
|
|
|
'A 跳转到全文书签 A
|
|
|
|
|
|
|
|
[' 跳转到上一个书签
|
|
|
|
|
|
|
|
]' 跳转到下一个书签
|
|
|
|
|
|
|
|
'< 跳到上次可视模式选择区域的开始
|
|
|
|
|
|
|
|
'> 跳到上次可视模式选择区域的结束
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
@ -406,6 +428,7 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z(
|
|
|
|
:set ttm=100 设置终端按键检测超时为100毫秒
|
|
|
|
:set ttm=100 设置终端按键检测超时为100毫秒
|
|
|
|
:set term=? 设置终端类型,比如常见的 xterm
|
|
|
|
:set term=? 设置终端类型,比如常见的 xterm
|
|
|
|
:set ignorecase 设置搜索是否忽略大小写
|
|
|
|
:set ignorecase 设置搜索是否忽略大小写
|
|
|
|
|
|
|
|
:set smartcase 智能大小写,默认忽略大小写,除非搜索内容里包含大写字母
|
|
|
|
:set list 设置显示制表符和换行符
|
|
|
|
:set list 设置显示制表符和换行符
|
|
|
|
:set number 设置显示行号,禁止显示行号可以用 :set nonumber
|
|
|
|
:set number 设置显示行号,禁止显示行号可以用 :set nonumber
|
|
|
|
:set paste 进入粘贴模式(粘贴时禁用缩进等影响格式的东西)
|
|
|
|
:set paste 进入粘贴模式(粘贴时禁用缩进等影响格式的东西)
|
|
|
@ -427,6 +450,7 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z(
|
|
|
|
:h tutor 入门文档
|
|
|
|
:h tutor 入门文档
|
|
|
|
:h quickref 快速帮助
|
|
|
|
:h quickref 快速帮助
|
|
|
|
:h index 查询 Vim 所有键盘命令定义
|
|
|
|
:h index 查询 Vim 所有键盘命令定义
|
|
|
|
|
|
|
|
:h summary 帮助你更好的使用内置帮助系统
|
|
|
|
:h CTRL-H 查询普通模式下 CTRL-H 是干什么的
|
|
|
|
:h CTRL-H 查询普通模式下 CTRL-H 是干什么的
|
|
|
|
:h i_CTRL-H 查询插入模式下 CTRL-H 是干什么的
|
|
|
|
:h i_CTRL-H 查询插入模式下 CTRL-H 是干什么的
|
|
|
|
:h i_<Up> 查询插入模式下方向键上是干什么的
|
|
|
|
:h i_<Up> 查询插入模式下方向键上是干什么的
|
|
|
@ -437,7 +461,10 @@ ma 保存当前位置到书签 a ,书签名可以用 a-z(
|
|
|
|
:h tabpage.txt 标签页使用帮助
|
|
|
|
:h tabpage.txt 标签页使用帮助
|
|
|
|
:h +timers 显示对 +timers 特性的帮助
|
|
|
|
:h +timers 显示对 +timers 特性的帮助
|
|
|
|
:h :! 查看如何运行外部命令
|
|
|
|
:h :! 查看如何运行外部命令
|
|
|
|
|
|
|
|
:h tips 查看 Vim 内置的常用技巧文档
|
|
|
|
:h set-termcap 查看如何设置按键扫描码
|
|
|
|
:h set-termcap 查看如何设置按键扫描码
|
|
|
|
|
|
|
|
:viusage NORMAL 模式帮助
|
|
|
|
|
|
|
|
:exusage EX 命令帮助
|
|
|
|
:version 显示当前 Vim 的版本号和特性
|
|
|
|
:version 显示当前 Vim 的版本号和特性
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -494,6 +521,8 @@ zE 删除所有折叠
|
|
|
|
zf 创建代码折叠
|
|
|
|
zf 创建代码折叠
|
|
|
|
zF 指定行数创建折叠
|
|
|
|
zF 指定行数创建折叠
|
|
|
|
zi 切换折叠
|
|
|
|
zi 切换折叠
|
|
|
|
|
|
|
|
zm 所有代码折叠一层
|
|
|
|
|
|
|
|
zr 所有代码打开一层
|
|
|
|
zM 折叠所有代码,设置 foldlevel=0,设置 foldenable
|
|
|
|
zM 折叠所有代码,设置 foldlevel=0,设置 foldenable
|
|
|
|
zR 打开所有代码,设置 foldlevel 为最大值
|
|
|
|
zR 打开所有代码,设置 foldlevel 为最大值
|
|
|
|
zn 折叠 none,重置 foldenable 并打开所有代码
|
|
|
|
zn 折叠 none,重置 foldenable 并打开所有代码
|
|
|
@ -519,10 +548,13 @@ q 结束录制宏
|
|
|
|
CTRL-E 向上卷屏
|
|
|
|
CTRL-E 向上卷屏
|
|
|
|
CTRL-Y 向下卷屏
|
|
|
|
CTRL-Y 向下卷屏
|
|
|
|
CTRL-G 显示正在编辑的文件名,以及大小和位置信息
|
|
|
|
CTRL-G 显示正在编辑的文件名,以及大小和位置信息
|
|
|
|
|
|
|
|
g CTRL-G 显示文件的:大小,字符数,单词数和行数,可视模式下也可用
|
|
|
|
zz 调整光标所在行到屏幕中央
|
|
|
|
zz 调整光标所在行到屏幕中央
|
|
|
|
zt 调整光标所在行到屏幕上部
|
|
|
|
zt 调整光标所在行到屏幕上部
|
|
|
|
zb 调整光标所在行到屏幕下部
|
|
|
|
zb 调整光标所在行到屏幕下部
|
|
|
|
ga 显示光标下字符的 ascii 码或者 unicode 编码
|
|
|
|
ga 显示光标下字符的 ascii 码或者 unicode 编码
|
|
|
|
|
|
|
|
g8 显示光标下字符的 utf-8 编码结果
|
|
|
|
|
|
|
|
gi 回到上次进入插入的地方,并切换到插入模式
|
|
|
|
K 查询光标下单词的帮助
|
|
|
|
K 查询光标下单词的帮助
|
|
|
|
CTRL-PgUp 上个标签页,GVim OK,部分终端软件需设置对应键盘码
|
|
|
|
CTRL-PgUp 上个标签页,GVim OK,部分终端软件需设置对应键盘码
|
|
|
|
CTRL-PgDown 下个标签页,GVim OK,部分终端软件需设置对应键盘码
|
|
|
|
CTRL-PgDown 下个标签页,GVim OK,部分终端软件需设置对应键盘码
|
|
|
@ -533,14 +565,19 @@ CTRL-PgDown 下个标签页,GVim OK,部分终端软件需设置对
|
|
|
|
:set termcap 查看会从终端接收什么以及会发送给终端什么命令
|
|
|
|
:set termcap 查看会从终端接收什么以及会发送给终端什么命令
|
|
|
|
:set guicursor= 解决 SecureCRT/PenguiNet 中 NeoVim 局部奇怪字符问题
|
|
|
|
:set guicursor= 解决 SecureCRT/PenguiNet 中 NeoVim 局部奇怪字符问题
|
|
|
|
:set t_RS= t_SH= 解决 SecureCRT/PenguiNet 中 Vim8.0 终端功能奇怪字符
|
|
|
|
:set t_RS= t_SH= 解决 SecureCRT/PenguiNet 中 Vim8.0 终端功能奇怪字符
|
|
|
|
|
|
|
|
:set fo+=a 开启文本段的实时自动格式化
|
|
|
|
:earlier 15m 回退到15分钟前的文件内容
|
|
|
|
:earlier 15m 回退到15分钟前的文件内容
|
|
|
|
:.!date 在当前窗口插入时间
|
|
|
|
:.!date 在当前窗口插入时间
|
|
|
|
:%!xxd 开始二进制编辑
|
|
|
|
:%!xxd 开始二进制编辑
|
|
|
|
:%!xxd -r 保存二进制编辑
|
|
|
|
:%!xxd -r 保存二进制编辑
|
|
|
|
:r !curl -sL {URL} 读取 url 内容添加到光标后
|
|
|
|
:r !curl -sL {URL} 读取 url 内容添加到光标后
|
|
|
|
|
|
|
|
:g/^\s*$/d 删除空行
|
|
|
|
|
|
|
|
:g/green/d 删除所有包含 green 的行
|
|
|
|
|
|
|
|
:v/green/d 删除所有不包含 green 的行
|
|
|
|
:g/gladiolli/# 搜索单词打印结果,并在结果前加上行号
|
|
|
|
:g/gladiolli/# 搜索单词打印结果,并在结果前加上行号
|
|
|
|
:g/ab.*cd.*efg/# 搜索包含 ab,cd 和 efg 的行,打印结果以及行号
|
|
|
|
:g/ab.*cd.*efg/# 搜索包含 ab,cd 和 efg 的行,打印结果以及行号
|
|
|
|
:v/./,/./-j 压缩空行
|
|
|
|
:v/./,/./-j 压缩空行
|
|
|
|
|
|
|
|
:Man bash 在 Vim 中查看 man,先调用 :runtime! ftplugin/man.vim 激活
|
|
|
|
/fred\|joe 搜索 fred 或者 joe
|
|
|
|
/fred\|joe 搜索 fred 或者 joe
|
|
|
|
/\<\d\d\d\d\> 精确搜索四个数字
|
|
|
|
/\<\d\d\d\d\> 精确搜索四个数字
|
|
|
|
/^\n\{3} 搜索连续三个空行
|
|
|
|
/^\n\{3} 搜索连续三个空行
|
|
|
@ -640,6 +677,51 @@ reddit https://www.reddit.com/r/vim/
|
|
|
|
十六使用经验 http://zzapper.co.uk/vimtips.html
|
|
|
|
十六使用经验 http://zzapper.co.uk/vimtips.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
# TIPS
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 永远不要用 CTRL-C 代替 <ESC> 完全不同的含义,容易错误中断正在当前脚本
|
|
|
|
|
|
|
|
- 很多人使用 CTRL-[ 代替 <ESC>,左右小指 CTRL,右手小指 [ 熟练后很方便
|
|
|
|
|
|
|
|
- SecureCRT 中使用 Vim 8 内嵌终端如看到奇怪字符,使用 :set t_RS= t_SH= 解决
|
|
|
|
|
|
|
|
- SecureCRT 中使用 NeoVim 如看到奇怪字符,使用 :set guicursor= 解决
|
|
|
|
|
|
|
|
- * 和 # (以及 g*/g#)是十分重要的查找命令
|
|
|
|
|
|
|
|
- 使用 @: 重复执行上一次 Ex 命令,比如 :nohl<cr>, @:, @:, @:
|
|
|
|
|
|
|
|
- SHIFT 相当于移动加速键, w b e 移动光标很慢,但是 W B E 走的很快
|
|
|
|
|
|
|
|
- 自己要善于总结新技巧,比如移动到行首非空字符时用 0w 命令比 ^ 命令更容易输入
|
|
|
|
|
|
|
|
- 在空白行使用 dip 命令可以删除所有临近的空白行
|
|
|
|
|
|
|
|
- 在空白区使用 viw 可以选择所有空白字符
|
|
|
|
|
|
|
|
- 缩进时使用 >8j >} <ap =i} == 会方便很多
|
|
|
|
|
|
|
|
- 越重复的工作,越需要努力的将其自动化
|
|
|
|
|
|
|
|
- 编程时可以使用 [{ 和 ]} 快速在函数间移动
|
|
|
|
|
|
|
|
- 插入模式下,当你发现一个单词写错了,应该多用 CTRL-W 这比 <BackSpace> 快
|
|
|
|
|
|
|
|
- 插入模式下,CTRL-X CTRL-F 可以方便的补全当前目录的文件名
|
|
|
|
|
|
|
|
- 插入模式下,可用 CTRL-V u 输入 unicode,如 <C-V>u1234 输入16进制 unicoode
|
|
|
|
|
|
|
|
- 插入模式下,CTRL-R = 可以用来简单计算,比如 <C-R>=12*3.5/10<cr> 会插入 4.2
|
|
|
|
|
|
|
|
- 如果在插入模式下移动光标,那么就不能使用 . 来重复之前的插入了
|
|
|
|
|
|
|
|
- y d c 命令可以很好结合 f t 和 /X 比如 dt) 和 y/end<cr>
|
|
|
|
|
|
|
|
- c d x 命令会自动填充寄存器 "1 到 "9 , y 命令会自动填充 "0 寄存器
|
|
|
|
|
|
|
|
- 用 v 命令选择文本时,可以用 o 掉头选择,有时很有用
|
|
|
|
|
|
|
|
- ca) 和 yi} 很容易记忆,但是他们等同于 cab yiB 后者很容易输入
|
|
|
|
|
|
|
|
- 写文章时,可以写一段代码块,然后选中后执行 :!python 代码块就会被替换成结果
|
|
|
|
|
|
|
|
- 搜索后经常使用 :nohl 来消除高亮,使用很频繁,可以 map 到 <BackSpace> 上
|
|
|
|
|
|
|
|
- 搜索时可以用 CTRL-R CTRL-W 插入光标下的单词
|
|
|
|
|
|
|
|
- Vim 有一千零一种移动光标的方法,有时候就连 H M L 也是很有用的
|
|
|
|
|
|
|
|
- 不需要记忆上一次选择区域,'< 和 '> 可以跳到上次选择的开始和结束
|
|
|
|
|
|
|
|
- 如需编辑同一个文件的不同地方,可以用 :vs 或者 :split 将文件分为两个窗口
|
|
|
|
|
|
|
|
- 有六种方法来改变一个布尔设置: :set list nolist list! invlist list? list&
|
|
|
|
|
|
|
|
- 映射按键时,应该默认使用 noremap ,只有特别需要的时候使用 map
|
|
|
|
|
|
|
|
- 当你觉得做某事很低效时,你应该停下来,u u u u 然后思考正确的高效方式来完成
|
|
|
|
|
|
|
|
- 用 y复制文本后,命令模式中 CTRL-R 然后按双引号 " 可以插入之前复制内容
|
|
|
|
|
|
|
|
- 如果你想全屏阅读帮助的话,使用 :tab help <keyword> 命令
|
|
|
|
|
|
|
|
- 粘贴文本时应该思考下前后是否包含空格
|
|
|
|
|
|
|
|
- :x 和 ZZ 命令和 :wq 类似,但是不会写入没有改变的文件,并且更快
|
|
|
|
|
|
|
|
- 多阅读 :h index 学习新的快捷键,让你更加高效
|
|
|
|
|
|
|
|
- Vim 帮助系统里有一个使用技巧集合,使用 :h tips 阅读
|
|
|
|
|
|
|
|
- Windows 下的 GVim 可以用 CTRL-INSERT 和 SHIFT-INSERT 操作系统剪贴板
|
|
|
|
|
|
|
|
- 思考题:知道下面控制代码 ^I ^M ^J ^[ ^H ^@ 分别代表什么意思么?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
|
# References
|
|
|
|
# References
|
|
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
|
@ -653,6 +735,8 @@ http://www.ouyaoxiazai.com/article/24/654.html
|
|
|
|
http://bbs.it-home.org/thread-80794-1-1.html
|
|
|
|
http://bbs.it-home.org/thread-80794-1-1.html
|
|
|
|
http://www.lpfrx.com/wp-content/uploads/2008/09/vi.jpg
|
|
|
|
http://www.lpfrx.com/wp-content/uploads/2008/09/vi.jpg
|
|
|
|
http://michael.peopleofhonoronly.com/vim/
|
|
|
|
http://michael.peopleofhonoronly.com/vim/
|
|
|
|
|
|
|
|
https://github.com/hobbestigrou/vimtips-fortune/blob/master/fortunes/vimtips
|
|
|
|
|
|
|
|
https://github.com/glts/vim-cottidie/blob/master/autoload/cottidie/tips
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# vim: set ts=4 sw=4 tw=0 noet noautoindent :
|
|
|
|
# vim: set ts=4 sw=4 tw=0 noet noautoindent :
|
|
|
|