Linux生产环境最常用的一套“vim”技能https://mp.weixin.qq.com/s?__...介绍研发线上用得最多的编辑器是vi。无论是查看文件内容的最快方式,还是快速编辑文件,vi都能提供帮助。软件世界似乎有一些非常长寿的东西,vi就是其中之一。本文主要介绍研发线上最常用的一些功能。至于安装插件和写一些脚本,一般都是在开发机上玩,生产环境没有条件也没有时间容忍你做这些增强。希望看完这篇文章后,能够对这款神器有个大概的印象。当然,熟练使用还需要每天有意识地培养。Vim是vi的增强版本。一般现代linux都不缺那几兆的空间,所以预装的都是增强版。本文默认使用vim。习惯vim最大的贡献是它的key系统。这也是为什么chrome、idea、atom等编辑器都会提供vim模式的原因。笔者见过很多高级程序员,包括架构师,都习惯用方向键来控制光标的移动。这不能说不对,但也抛弃了vim最大的精髓,效率大打折扣。坚持使用h、j、k、l,您将感谢您今天的更正。大脑和手指真的有记忆,当你用得够多的时候,它就会成为你的习惯设定。vim的另一个特性是模式。一共有四种模式。我们不需要死记硬背,我们只需要通过例子来理解它们。不要增加混乱,也不要使用vim打开大文件。Vim会将所有内容一次性读入内存,这很容易导致宿主机内存溢出。在打开文件之前,可以使用du-h命令查看文件大小。一般100MB以下比较合适。常用操作以下操作均在普通模式下进行,连续按键漫游jdown30jdown30lineskuphleftlright0到行首^到行首第一个字符,如果有前面一个空格$toEndoflinegg快速到文件开头G快速到文件结尾100G跳到第100行插入模式下不推荐光标移动,效率很低Wordy$复制光标到行尾yfB将光标复制到第一个大写B中间的内容y2fB将光标复制到第二个大写B中间的内容Cut:xx一次剪切一个字符,如果是在行尾,然后Cutforward3x,切三个xp,在行尾交换两个字符,比如从bs变成sbdelete:d删除的内容会放到剪贴板,按p粘贴其他地方dd删除一行200dd删除200行dw删除一个词(收藏夹)df"删除到出现的第一个双引号粘贴:pp粘贴复制或剪切的内容3p粘贴复制或剪切的内容三次视觉模式v行模式,选择内容可视化模式是一个非常有用的模式,在普通模式下按v即可进入。使用h、j、k、l漫游选择相应的内容。例如,选择所需内容的一部分并将其删除。ctrl+v块模式演示:将文件中的每一行添加到ArrayList中:1)命令模式下,执行%s/$/");/g,在行尾追加数据2)按ESC进入普通模式,并使用gg返回到行首3)按ctrl+v进入可视模式,然后按G到文件末尾4)忽略编辑器的响应,按I进入插入模式,输入list.add(》5)按ESC返回普通模式,可以发现每一行上面的输入都生效了。块模式也可以完成列的调用。好像在UE里见过这个神技。上面命令模式的例子已经展示了命令模式的进入模式。在普通模式下,输入:进入。%s/$/sth/在行尾追加sth%s/^M//g替换dos换行符,\^M可以用ctrl+v输入:g/^s*$/d删除空行和只有空格的行%s/#.*//g删除#之后的字符是的,命令模式使用正则表达式,这些经验很常见,你已经发现这可能是用于编辑sed命令在浏览器窗口中。同样的搜索字符串的方法,也可以套用正则知识*在普通模式下,按/直接进入搜索,输入对应的字符串,按OK。n查找下一个匹配n查找上一个匹配2n查找下面第二个匹配如果跳来跳去感觉头晕,可以在命令模式下输入setnu开启行号。宏录制可以说是vim的一个杀手级功能。以上面的例子为例。将文件中的每一行添加到ArrayList。1)按gg到行首2)按qa录制宏,a是我们创建的标签名3)按I进入插入模式,输入list.add("4)按ESC进入普通模式,然后按$跳到行尾5)按j进入下一行,再按^回到行首6)再按q结束宏录制7)输入@a触发宏测试录制效果8)输入100@a将宏重复100次,也就是说后面的100行可以用多个不同的宏录制,从而进行批量操作。其他用得比较少的主要功能有r替换字符ggVG,全选u恢复修改,J合并下一行gU,光标变为大写ggguG整篇文章由大写转小写%跳转到下一个匹配,如在
