VIM常用小窍门收集
vim应该是现在世界上最流行的编辑器,没有之一。就算你千般百般地不喜欢它,掌握它也成了一件必须的事情了。因为日后你如果做程序员,在非Win系列的服务器上搞开发,vim绝对是无法避免的。你日常能接触到的server,emacs可能没装,但是vi不可能没装,就这样。
特意开辟这个文章,用于收藏一些工作中常用的操作,主要有这么几个原则:
非常有用
不常用
每次用都想不起来应该怎么用
不知道大家是不是经常跟我一样有这种感受呢,我会把我遇到的这类操作,都详细写在这里。
简单的列编辑
比如:将配置文件中的指定列前面加上注释符号
如上代码是一个很常见的配置文件,我现在要给第2-12行前面都加上一个#号,注释掉他们,在EmEditor里面这个事情无敌简单的,但是到了vi里面,你是不是总也想不起来应该怎么弄?
解释一下,【2,12】在vi中叫range,看帮助的时候,如果看到range,这就是一种写法,表明第2行到12行。
还有一种写法:
将光标移动到第二行,然后执行上面的命令,后面的【11】代表,执行这个命令,重复11次。这里一直没解释里面那个至关重要的乱码串,那个就是替换的命令了。下次再说。
删除的时候使用f和t
删除是vim里面非常常用的功能,一个一个字幕删除,用x,可以代替del用。整行删除,dd,应该都会了。删除一个单词,用dw。这些都是简单提一下,我主要想两个很好用的功能,就是f和t。
f的本意是行查找,fa,就是从光标当前位置开始,在本行中,找到第一个字母a,和d结合起来以后,就非常方便了,比如:
在这个代码里,你想删掉第一个参数,可以把光标放在(后面的第一个$上,然后按”df,”,就可以把$a连同后面的逗号都删掉,非常方便。当然了,你可以发挥一下,”d2f,”这个按键序列就是把$a和$b都删掉了,但是呢,用数字这种东西,在实际操作中,我感觉大脑经常反应不过来,需要思考,不实用。
在来说一下t,t这个东西,跟f非常像,区别就是t把找光标放到找到的那个字符前面一个位子,比如上面那个例子,我把光标放在第一个$上,然后按下”dt)”这个序列,可以把函数的3个参数都删掉,但是却不会删掉括号,非常舒服,在括号里删东西,我经常用这个功能。
惹人烦恼的^M
久用Vim的人,可能会遇到这样的情况,打开一个从别的环境拷贝过来的文件,发现每一行的末尾都有一个^M,非常恼人。
这个问题产生的原因,是因为三种系统的换行符定义不一样造成的。在Dos系统下,行结束符为\r\n,在linux下,行结束符为\n,在Mac下,行结束符为\r,当一个文件在一个系统上编辑,然后拷贝到另一个系统打开的时候,就会出现^M,事实上,还会出现别的恼人情况,比如一打开,发现没有任何断行,这在理论上完全可行,但是估计在Google搜索,这会是另一个问题,其实都是同一个起因。
Vim下面有两个变量fileformat和fileformats,简写为ff和ffs。当你发现文件没有断行或者有^M的时候,你有几种选择。
在Linux上,看到^M可以执行dos2unix,然后将Windows文件的\r\n转换成\n,然后发现^M消失了。
还可以,:set ff=win,让linux下的Vim按照Windows格式来解析文件。当然也可以查找替换把^M给替换掉。
除此之外,还可以用ffs添加到配置文件来告诉Vim按照怎样的顺序来尝试适配。
比如我在Mac系统下,set ffs=mac,unix,dos,这样,一般情况下我打开任何系统过来的文件,都能按照正确的格式显示。
最好看的配色方案
常用Vim的人,经常会为了配色方案而纠结,仿佛每一种都不是特别好看。其实我也这么觉得的,我分析下来,原因可能是,为Vim贡献配色方案的,大都是西方人,他们的眼睛是蓝色的,感受到的对比度,饱和度,亮度,和东方人的黑眼睛看起来是不一样的。所以他们配出来的配色方案,我们东方人,怎么着都觉得不太好看。
当然,还是能找出来一些能够勉强一看的。我个人比较熟比较习惯的是自带的evening和desert,感觉多不错,而且对我用到的好几种语言,都有不错的表现。
最近,还发现了一套非常强大,经过精心设计的配色方案,叫solarized,在圈子里影响也很大,http://ethanschoonover.com/solarized 特此推荐给大家,因为,我觉得它配色还算是相当舒服的,对比略低,但是不影响美观。
编码相关Encoding
使用:set fileencoding可以显示文件的编码格式,简写形式是:set fenc,使用:set fenc=utf-8可以转换文件的编码格式为utf-8
使用:set encoding可以显示编辑器当前使用什么编码方案来展示文档,简写为enc,如果utf-8文档使用非utf-8显示,汉字会出现乱码,使用:set enc=utf-8可以将vim使用的编码方案切换的utf-8
Tab view
用一个vi编辑器,打开多个代码文件,vim从7.0版本开始,支持文件标签页,使用方法也非常简单,使用:tabnew filename来打开一个新文件,就会自动出现在新tab里面,并且在打开文件超过两个的时候,顶部出现标签控制行。
#在vim中,用新tab打开文件
:tabnew filename
#在命令行中,用标签页一次打开多个文件
$ vim -p filename1 filename2 filename3
#在vim中,各个标签页的切换
:tabn #下一个tab
或者 gt
:tabp #上一个tab
或者 gT
#搜索已经打开的tab
#tabf keyword
建议继续学习:
- vim几个小技巧(批量替换,列编辑) (阅读:35919)
- 简明Vim练级攻略 (阅读:20720)
- Vim下的代码自动补全和代码跳转阅读 (阅读:14357)
- 为什么要用 Emacs/Vim,而不是任何其他编辑器 (阅读:12143)
- 在vim(gvim)中运行终端(对,你没有看错,我也没有写反) (阅读:9344)
- vim入门,进阶与折腾 (阅读:9175)
- 让vim在终端下的配色亮起来! (阅读:8566)
- 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读:7048)
- vim的复制粘贴小结 (阅读:6480)
- Vim 中截取部分内容保存到其他文件 (阅读:6324)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Charles 来源: Becomin' Charles
- 标签: VIM
- 发布时间:2012-12-07 13:58:53
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [53] 如何拿下简短的域名
- [53] Oracle MTS模式下 进程地址与会话信
- [53] Go Reflect 性能
- [51] android 开发入门
- [49] 图书馆的世界纪录
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [46] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑