Vi--终端中的编辑器

说白了,Vi终端编辑器是Linux/Unix系统下效率极高的文本编辑利器,操作模式分为普通模式、插入模式和命令模式。
先说最重要的,普通模式下的光标移动超实用,比如去年我们跑的那个项目,我经常用h、j、k、l来快速定位。
另外一点,模式切换也是关键,进入插入模式很简单,用i、a、I、A、o、O就可以在光标前后或行首行尾插入内容。
还有个细节挺关键的,比如强制退出不保存就是用:q!,这个点很多人没注意。

我一开始也以为光标移动只限于四个方向,后来发现不对,Vim还能通过motion命令进行范围删除,比如dd可以删除整行,3 dd则删除3 行。
等等,还有个事,搜索与定位功能强大,/关键词可以向前搜索,?关键词则向后搜索。

我觉得值得试试的是,复制粘贴和替换修改,yy复制整行,yw复制单词,而替换则可以用r替换单个字符,或者进入替换模式R进行连续替换。
在搜索与定位上,%可以快速匹配括号,gg和G则可以跳转到文件的首行和末行。

至于高级操作,比如合并文件,可以使用:r文件名命令,或者用多文件编辑功能,垂直分屏用vim-o,水平分屏用vim-O。
还有局部保存功能,这在处理大文件时特别有用。

要注意的是,搜索特殊字符时需要加转义,比如/.来搜索点号。
另外,模式区分也很重要,修改命令c会进入插入模式,而替换命令r/R则不会。

最后,建议通过vimtutor命令来练习基础操作,这个工具能让你更快上手Vim。

Linux vim编辑器基础操作

说实话,用Vim的时候,我刚开始也是懵的,各种模式切换搞得头大。
但后来发现,它确实把文本处理效率拉满了。
我给你讲个我自己的小故事——
去年在服务器上改配置文件,突然系统卡了,命令行又卡,急得要命。
这时候用Vim打开文件,直接按:%s/old/new/g改完保存,比开个IDE还快。
这就是为啥Linux老鸟都离不开它。

模式切换这块,我有个小技巧。
很多人分不清编辑模式和命令模式,我早期也经常混。
后来我给自己定了个死规矩:但凡要输入文字就按i或a,做完按Esc退回来。
你看,按i是插入到光标前,按a是插入到光标后,这就像在键盘上左右开弓一样自然。

光标移动的hjkl其实不难记,你想象一下键盘左下角那四个方向键。
我有个朋友是程序员,他管这个叫"方向键盲盒",因为刚开始总按错方向。
但用着用着就习惯了,现在他连Ctrl+f翻页都懒得用了,直接G跳到文件末尾,gg回开头。

最逗的是缩进操作。
我之前在写Python代码时,经常用>>缩进,结果写完发现缩进太深,手一抖按了<<,全代码缩进变负数了,当时笑死。
所以现在缩进我都用选中文本再加>>,至少看得见。

末行模式我倒是用得多。
比如改完配置文件想保存,直接:w就行,但老手都会加个!,:w!,这样就算文件是只读的也能改。
记得有回我忘了加!,结果把生产环境配置给改了,差点被开除,从此记住:重要操作不加!,小事才用!。

还有个冷知识,用Vim打开文件时按:set number,就能显示行号。
我之前写代码时总漏行,现在打开文件先输入:set nu,强迫自己写完再:set nonu。
这招比用IDE的行号功能还管用。

最后说个狠活——:1 ,1 0s/old/new/g这行命令,替换第1 到1 0行的所有old为new。
我上次改日志文件,1 000行里要改2 0个地方,用这个命令3 秒搞定,比Ctrl+C复制粘贴到IDE改完还快。

现在你问我为啥爱用Vim?说白了,就是习惯了。
你用着用着会发现,它就像你的第二大脑,那些快捷键都长在肌肉里了。
不过话说回来,如果你是新手,建议先练vimtutor,别上来就啃这些操作,否则真的会劝退。

10分钟教你为自己打造一个专属VIM

我记得有一次,在办公室里,一个同事突然问我:“你知道怎么在Vim里快速切换到文件末尾吗?”我笑了笑,心里想:“这还不简单,gg就是文件开头,那末尾不就gg~吗?”结果他摇摇头,说:“不是这样的,我指的是直接跳到行末。
”我这才恍然大悟,原来他说的gg是文件开头,而要跳到行末应该是0。
这让我想起了自己刚开始学Vim的时候,也是这样一步步从最基础的命令学起的。
现在想想,Vim的学习曲线确实有点陡峭,但一旦掌握了,那种高效的感觉真是让人着迷。
等等,我突然想到,如果有人初学Vim,是不是应该先从最实用的快捷键开始呢?