标签 Programmer 下的文章

重新定制VIM

这周五工作状态实在不好,也许是工作得有些疲劳的缘故。没有了心思工作,那莫不如利用这些时间读读书。在存储电子书的目录中左翻翻右看看,发现了那本久违了的中文版VIM手册,我决定索性打开温习一下,拣一拣那些已经生疏了的但却极其实用的命令。

下班前400多页的手册居然被我走马观花的浏览完了,其间将遇到的觉得实用的且以前不知道的或不常用的命令记录了下来,一共有50多项,其中不乏令我大呼过瘾的能显著提升工作效率的命令^_^。

VIM自从使用以来一直也未曾系统的挖掘过,之前在plugin上下过一些工夫,比如taglist,cscope等。特别是VIM的定制文件vimrc没有系统的整理过,这次重温VIM手册,让我有了重新定制VIM的想法。

定制VIM,即编制适合你自己的.vimrc文件,这个文件不需要你一切都从头开始,网上流传着很多极具参考价值的资料,比如说比较出名的被网友戏称为"史上最强vim配置文件"的amix vimrc,你完全可以照猫画虎的全部搬过来直接使用,但最好是认真读一读其中的内容,了解每一项配置背后的原理,不懂的就对比一下manual,这样印象也深刻些。

我重新定制的vimrc基本上就是对amix vimrc的裁剪,所以这里也没什么值得列出来的内容。不过对其中的一些配置我倒想在这里说道说道:

1、的使用
在定义映射时,可使用标识,这类似一个trick,在映射转换时被变量mapleader的值替换掉。mapleader是一个特殊变量,如果mapleader没有被显示赋值,其值默认为'\';

如: nmap w :w!这个键映射,如果之前没有显式给mapleader变量赋值,那么在normal模式下,敲入'\w'即是执行将当前更新写入文件。如果之前设定let mapleader = ",",那保存文件的命令就变成了',w'。

2、vimrc更新自动生效
autocmd bufwritepost *vimrc* source ~/.vimrc
这是一个比较实用的配置,可让你即时看到修改配置后的效果,比如修改colorscheme。

3、编码选项的设定
公司的服务器环境设定的内码都是GBK,这样我们的代码源文件的内码也就都是GBK;但是Ubuntu默认内码是UTF-8,如果不做任何设置用VIM打开这些文件,势必会导致文件中的中文字符显示为乱码。关于VIM字符编码的问题曾经在一篇文章中分析过,这里不再细说。用下面的设置可以解决上面提到的问题:
" 自动识别文件的编码格式, 打开已有文件时起作用
set fileencodings=GBK,UTF-8,gb18030,ucs-bom,cp936
" 标识源文件中的数据的内码格式
set fileencoding=GBK
" 标识vim buffer中的数据编码格式
set encoding=UTF-8
这样配置有一个小问题就是对于新建的文件强制设定了采用GBK的内码。

4、比较实用的设置
map / "NORMAL模式下这个命令用起来很舒服

以下是在visual模式下自动对块文字区域加(),{},[]等的命令
vnoremap $1 `>a)`<i(
vnoremap $2 `>a]`<i[
vnoremap $3 `>a}`<i{
vnoremap $$ `>a"`<i"
vnoremap $q `>a'`<i'
vnoremap $e `>a"`<i"

source $VIMRUNTIME/ftplugin/man.vim "将光标停留在你想查Manual的Word上,normal模式下敲入'\K'即可自动查找这个word的Manual。

VIM太强大,里面存在太多的技巧和奇妙的命令,VIM manual也是常看常新,Ubuntu里的其他编辑器已经都让我卸载了,以让自己更加专注于VIM^_^。

一周琐事

刚刚在China-pub下了订单,买了三本口碑都不错的技术类书籍。之所以在China-pub买,这得益于豆瓣购书单功能,经过购书单的比价发现China-pub的总价格最实惠。另外这笔交易成交后,我在China-pub的会员级别也将升到三星,到时候就有资格“淘二手书”了。

三本书中名气最大的应属Andrew Hunt和David Thomas于十年前合著的《程序员修炼之道》了,这本书的电子书我看过多遍,今天把它放入订单都因我有收藏经典图书之癖好(很多爱读书的程序员都有此癖好^_^)。《高效程序员的45个习惯》是Andrew Hunt参与编写的又一新作,豆瓣口碑不错,想必内容应该不赖,这次顺便也收来瞧瞧!最后一本是《软件架构师应该知道的97件事》,这是一本关于架构技术和最佳实践的小品文合集,由世界各地的知名架构师在网络上共同创作完成,并由Oreilly编撰出版。由于今年想在软件架构方面投入一些精力,这本书应该算是一本不错的参考资料。

这一周甚是忙碌。上个产品版本的系统测试已接近尾声,而新版本也正在做发布前的最后准备工作,进度和质量都要保证,遂不能放松。除了新版本外,这周还发现了一个遗留系统的BUG,这个BUG潜伏时间之长是前所未有的。BUG的成因是因为当初某位同事在编写校验逻辑时忘记做字节序转换了,导致那么一行校验逻辑会按“时间随机”过滤掉一些记录。为了找出这个BUG,着实花掉我们不少时间;由此可见维护遗留系统时真要带上十二分小心,里面可能深藏着许多意想不到的“陷阱”。

再说说果果,这周果果过了百天,体重达14.5斤,身长达65厘米,发育水平处于中上等。另外果果持续两周多的腹泻症状也消失了(思密达和调节肠胃的活性菌片都不管用,后来干脆停药,停药后三天果果居然就不拉稀了)。小家伙这几天恢复了体力,也恢复了活力,不过晚上可是累坏了我和LP。

已经定好下周一带着宝宝去拍百日照,留个纪念。到时候再顺便拍个“全家福”,这可是第一次哦!

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats