研发线上使用最多的编辑器,就是 vi 。无论是最快查看某个文件内容,还是快速编辑某个文件, vi 都能帮上忙。

软件世界貌似有一些非常长寿的东西, vi 算是一个。本篇文章聚焦的是研发线上最常用的一些功能。至于安装插件,写一些脚本,那一般是在开发机上玩的,生产环境没有条件、也没有时间忍受你做这些增强。希望看完本文,能够对这款神器有一个大体印象。当然,熟练的使用还需要日常有意识的培养。

vimvi 的增强版,一般现代 linux 都不缺那几兆空间,所以预装的都是增强版,本文默认使用 vim

养成习惯

vim 最大的贡献就是它的 按键系统 。这也是为什么 chromeideaatom 等编辑器都会提供一个 vim mode 。 笔者见过很多资深的程序员,包括架构师,习惯使用方向键去控制光标的移动。 这不能说不对,但这也抛弃了 vim 最大的精华所在,效率上低了一大截。坚持使用 hjkl ,你会感谢你今天的纠正。大脑和手指真的是有记忆,当你用的足够多,这也就成了你约定俗成的设定。

vim 另外一个特点就是 带模式的 。一共四种模式,我们不需要记忆,只需要使用例子去理解即可。

不要添乱

不要使用 vim 打开大文件, vim 会一次性读取所有内容到内存,容易造成宿主机内存溢出。

打开文件前,可以使用 du -h 命令查看文件大小。一般, 100MB 以下为宜。

常用操作

以下操作在普通模式下执行,连续按键

漫游

j 向下

30j向下移动30行

k向上

h向左

l向右

0到行首

^到行首第一个字符,如果前面有空格的话

$到行尾

gg快速到文件头

G快速到文件尾

100G跳转到第100行

不建议在插入模式下进行光标移动,这很低效

复制:y

yy复制一行

10yy向下复制10行

yw复制光标开始的一个单词

y$复制光标到行尾

yfB复制光标到第一个大写B中间的内容

y2fB复制光标到第二个大写B中间的内容

剪切: x

x向剪切一个一个字符,如果是在行尾,则为向前剪切

3x剪切三个

xp非行尾交换两个字符,如从 bs 变成 sb

删除:d

删除的内容会放到剪贴板,按 p 即可粘贴到其他地方

dd删除一行

200dd删除200行

dw删除一个单词 (最喜欢啦)

df”删除到出现的第一个双引号

粘贴: p

p粘贴复制或剪切的内容

3p将复制或剪切的内容粘贴三次

可视化模式

v 行模式,选择一些内容

可视化模式是非常有用的一种模式,在普通模式下按 v 即可进入。

使用 hjkl 进行漫游,选中相应的内容。

例子,选中一部分想要的内容,并删除。

ctrl+v 块模式

演示:将文件中的每一行添加到 ArrayList 中:

1)在命令模式下,执行 %s/$/");/g ,在行尾追加数据

2)按 ESC 进入普通模式,并使用 gg 回到行首

3)按 ctrl+v 进入可视化模式,然后按 G 到文件尾

4) 不要理会编辑器反应,按 I 进入插入模式,输入 list.add("
5)按 ESC 回到普通模式,可以发现以上输入已经在每一行生效了

块模式还可以完成列的呼唤,貌似在 UE 里见过此神技。

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注