- 关闭(Exiting)
:w
保存
:wq, :x
保存并关闭
:q
关闭(已保存)
:q!
强制关闭
1.上下左右
h
左,j
下,k
上,l
右
2.上一个词 下一个词
w
下一个词(word),b
上一个词(backword),所以按一下 w
相当于按多下l
.
3.下一屏 上一屏
ctrl + f
下一屏 (f=forword),ctrl + b
上一屏 (b=backword)
4.选择多行
shift + v
,然后上下移动(箭头)。(你也可以 直接 v然后上下左右移动, 这也是选择多行,只是不是整行整行的选择。动手试一下吧!)
5.搜索
搜索/some_thing
继续搜索下一个:n
搜索前一个:shift + n
6.在当前整个文件中,全局替换
-:%s/old/new/g
用old替换new,替换整个文件的所有匹配
-
:%s/old/new/
用old替换new,替换所有行的第一个匹配
7.局部替换
-
:s/old/new/
用old替换new,替换当前行的第一个匹配
-:s/old/new/g
用old替换new,替换当前行的所有匹配 - 先
shift + v
选中若干行,:s/old/new
-:10,20 s/^/ /g
在第10行知第20行每行前面加四个空格,用于缩进
8.快速打开历史文件
ctrl + e
即可。
9.跳到行首, 行末
跳到当前行的末尾:shift + 4
(意为 $ , 这是正则表达式中 末尾的意思)
跳到当前行的行首: 0
(数字0)
10.快速跳到文件首行 , 尾行。
“跳到尾行” 这个功能很多时候很有用。例如, vim 进入到文件夹后,最新的文件(特别是以日期命名的文件)往往排在最下面。shift + g
然后按回车可以直接打开。 想象不到吧~
gg
第一行 shift + g
末行。
11.快速跳到 上一次 / 下一次编辑的地方:
- 跳到 上一次编辑的地方:
g+;
- 跳到 下一次编辑的地方:
g+,
12.返回上一次/下一次编辑的文件或位置
- 快速返回上一次编辑的文件:
ctrl + o
( o 意为 outer ) - 快速返回下一次编辑的文件:
ctrl + i
( i 意为 inner )
13.输入模式
输入文本
从导航模式到编辑模式,有下面几种方法:
- 在光标前输入
i
( insert ) - 在光标后输入
a
(append / after ) - 在行首增加内容
shift + i
- 在行末增加内容
shift + a
- 在光标下行增加内容: o
- 在光标上行增加内容:
shift + o
(这个操作往往会有500毫秒的延迟)
14.删除
以下删除都以当前光标作为起始位置
- 删掉一个字母:
x
- 删掉一个单词:
dw
- 删掉(剪切)一行:
dd
- 删掉多行:
shift +v
, 然后 x 或者 d - 行数n+dd 剪切n行,使用p对剪切的行进行粘
15.复制与粘贴
复制,或者删除(vim认为删除就是剪切,所有被删掉的内容,都会被放到复制缓冲区中)后,就可以粘贴了。
- 复制一个单词:
yw
- 复制当前行:
yy
- 粘贴:
p
`
16.多重复制与粘贴
现在在 Windows, Mac 和 Linux下的复制操作,都不支持多种复制。
Vim中支持使用YRShow 插件。在个人配置中 , + a 即可。原始命令: :YRShow ,在弹出的“复制历史列表”中, 上下移动, 找到合适的后直接按回车即可。
17.分割屏幕
- 竖屏分割:
:vs
(vertical split缩写) - 横屏分割:
:sp
(split缩写) - 来回跳换:
ctrl + w + w
(跳到下一个小窗口), 或者ctrl + w + <j/k/h/l>
(跳到某个方向的小窗口) - 关闭窗口:
:close
18.注释多行
这里使用了插件: nerd-commentor. 我为它配置了自己的快捷键。
- 选中多行
shift + v
,cb
(, c b
三个键要快速按)取消注释: 使用传统的替换即可。
19.为多行代码格式化
多行选中后, 按 = 即可。 (注意:不是100%好用。 因为有的代码本身就是不完整的)
20.快速跳到当前光标所属文件(如果可能的话)
在 Rails的 路由或者 视图文件中,很好用。gf 即可。 (gf = go to file)
在 View 中, 快速跳到一个 partial.
在 config/routes.rb 中跳到controller
21.显示/隐藏行数
:set number
显示行数
:set nonumber
取消行数
22.折叠/取消折叠过长的行
:set wrap
折叠
:set nowrap
取消折叠
网友评论