来点新鲜的,部分我收集整理的:
-
永远不要用
CTRL
-
C
代替
<
ESC
>
完全不同的含义
,容易错误中断当前脚本
-
很多人使用
CTRL
-
[ 代替
<
ESC
>
,左手小指
CTRL
,右手小指
[ 熟练后很方便
-
SecureCRT
中使用
Vim
8
内嵌终端如看到奇怪字符
,使用
:set
t_RS
=
t_SH
=
解决
-
SecureCRT
中使用
NeoVim
如看到奇怪字符
,使用
:set
guicursor
=
解决
-
* 和
# (以及
g
*/g
#)是十分重要的查找命令
-
多使用
ciw
,
ci
[,
ci
", ci( 以及 diw, di[, di"
,
di
(
命令来快速改写
/删除文本
-
使用
@: 重复执行上一次
Ex
命令
,比如
:nohl
<
cr
>,
@:,
@:,
@:
-
SHIFT
相当于移动加速键
, w
b
e
移动光标很慢
,但是
W
B
E
走的很快
-
自己要善于总结新技巧
,比如移动到行首非空字符时用
0
w 命令比
^ 命令更容易输入
-
在空白行使用
dip
命令可以删除所有临近的空白行
-
在空白区使用
viw
可以选择所有空白字符
-
缩进时使用
>
8
j >
} <
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
^@ 分别代表什么意思么
?
更多技巧见:
https:// github.com/skywind3000/ awesome-cheatsheets/blob/master/editors/vim.txt
全网最全的 Vim 速查表