研发效能实用贴士 - Vim篇
文章目录
如果你需要经常在命令行下操作,尤其是需要在服务器上直接进行编辑的环境下,一个趁手的编辑器就是高效开发的关键了。
关于编辑器的争端,在圈内一直都是一个经久不衰的话题,这里我无意去为Vim争辩,只是将平时开发中经常使用到的高效Vim操作做一个总结和记录,下文的内容组织方式会按照典型的开发编辑场景来进行。
通用的编辑操作
命令模式
命令模式下的常见通用操作
保存退出
1
shift + zz
进入编辑模式
1
i
将光标移至当前行末尾并进入编辑模式
1
shift + A
移到首行/尾行
首行
1
gg
尾行
1
shift + G
撤销(undo)/重做(redo) 距离上次存盘间的编辑操作
撤销
1
u
重做
1
ctrl + r
重复上次的操作
1
.
命令模式下的光标移动操作
基本的方向-字符粒度(左下上右)
1
hjkl
按照单词粒度
向左移动一个单词
1
b
向右移动一个单词至单词首字母
1
w
向右移动一个单词至单词尾字母
1
e
按照行粒度
行首
1
0(数字0不是字母o)
行首第一个不是空格的字母
1
^
行尾
1
$
按照页粒度
下一页
1
ctrl + F
上一页
1
ctrl + B
跳转到第N行
第一种方式
1
:N
第二种方式
1
NG
以N = 5为例:
1
:5
1
5G
命令模式下的编辑操作
拷贝
1
y
粘贴
1
p
可视模式
可视模式下的3种选择
命令 | 按键 |
---|---|
基于字符的可视模式 | v |
基于行的可视模式 | V |
基于列的可视模式 | ctrl + v |
典型应用
- 注释多行(基于列的可视模式)- 多行行首插入注释符
以注释以下这些代码为例子:
1 | private void loadDeviceIdentity() { |
具体操作:
将光标移动到需要编辑的首行的行首(本例子种是“private” 前)
移动到首行
1
gg
移动到首行行首
0
ctrl + v 进入基于列的可视模式
ctrl + v
选中多行
重复向下移动18行
18j
编辑插入注释字符
进入编辑插入模式
c
输入注释字符
\\
ESC退出
打完收工
以下是操作的录屏
更新:
还有一种操作选择是:
^
移动光标到行首ctrl + v
进入基于列的可视模式ctrl + d
移动方向键进行选择I
进入编辑模式- 输入需要插入的字符
- ESC退出
更多参考操作:
coolshell - 简明 VIM 练级攻略
10X Efficiency - 命令模式中的基础命令
Vim 配置
~/.vimrc
1 | set tabstop=4 " number of visual spaces per TAB |