每日一Vim(21)又谈abbreviation
Vim有一句哲学是这样说的:“if you write a thing once,it it okay,However,if you're writing it twice or more times,then you should find a better way to do it"。这句话估计也是引用软件开发里面的DRP(Don't Repeat Yourself)原则。如果你老是需要重复的写一些相同的东西,此时你就应该使用**abbreviation(缩写)**.
:abbreviate 作用于所有模式 (ab)
:iabbrev 仅作用于插入模式 (iab)
:cabbrev 仅作用于命令行模式(cab)
abbreviation可以用在很多有意思的地方,比如:
- 纠正错误的拼写:
:iabbr teh the
- 程序中你能想到的模版语句:
:iabbr forx for(x=0;x<100;x++){<cr><cr>}
- 简化命令的输入:
cabbr cse colorscheme evening
-
如果你是Java程序员,如下命令毫不逊色于Eclipse
abbr psvm public static void main(String[] args){<CR>}<esc>O abbr sysout System.out.println("");<esc>2hi abbr sop System.out.println("");<esc>2hi abbr syserr System.err.println("");<esc>2hi abbr sep System.err.println("");<esc>2hi abbr forl for (int i = 0; i < ; i++) {<esc>7hi abbr tryb try {<CR>} catch (Exception ex) {<CR> ex.printStackTrace();<CR>}<esc>hx3ko abbr const public static final int abbr ctm System.currentTimeMillis() abbr slept try {<CR> Thread.sleep();<CR>}<esc>hxA catch(Exception ex) {<CR> ex.printStackTrace();<CR>}<esc>hx3k$hi
可以说只有你想不到了,没有做不到的。
写程序追求的高内聚,低耦合,同样,毫无疑问,Vim也遵循同样的原则,如果我们有上十条百条这样的缩写命令,如果都挤在vimrc配置文件中,这样过显得很难管理,因此我们可以把专门用于缩写的命令放置在单独的文件中,然后在vimrc文件中引用就ok,:source $VIM/abbreviation.vim
你有没有想过一个问题,如果把forx
设置成了缩写格式,那么有时候我本意是输入'forx'呢?
- 方法一:就是把它的映射取消掉
una forx
,这样有个缺点是下次我又需要这个缩写了,这时又不得不重新捡回来。 -
方法二:写一个函数,在每次输入'forx'的时候询问是作为普通字符串还是作为缩写呢?函数如下:
function! s:forxAsk(abbr,expansion) let answer = confirm("使用缩写'" . a:abbr ."'?", "&Yes\n&No",1) return answer ==1 ? a:expansion : a:abbr endfunction iabbrev <expr> forx <SID>forxAsk('forx','for(x=0;x<100;x++)')
函数中
abbr
是缩写,expansion
就是全写,这样一来,每次输入forx
时,就会弹出一对话框询问你是使用缩写还写不使用。当然这种方式显得比较笨拙,另外一个目的也是告诉大家如果写函数。 -
方法三:使出杀手锏,输入
forx
完成后,按Ctrl-v
(windows系统按Ctrl-q
)就能避免尴尬了。
更多参考:
:help abbr
- wikia
转载请注明出处,谢谢合作!作者---zhijun
相关推荐
同时,学习和熟练使用vim又有一定的难度。 《vim实用技巧》为那些想要提升自己的程序员编写,阅读本书是熟练地掌握高超的vim技巧的必由之路。全书共21章,包括121个技巧。每一章都是关于某一相关主题的技巧集合。每...
使用 Vim 更多的是一种技能而 不是一种知识,Vim 的学习更需要的不是头脑而是双手,经常按书中的指示 进行示例性的操作,在学习 Vim 众多精致的技巧时,不要贪图一下子全都 掌握,最好是看一条技巧后,马上在编辑器...
VIM快捷键 VIM快捷键 VIM插件 VIM快捷键 VIM插件
vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册vim中文手册vim中文手册
add wintagexplorer.vim , echofunc.vim , vimrc
cp molokai.vim /usr/share/vim/vim73/colors cp /etc/vim/vimrc /etc/vim/vimrc.bak cp vimrc /etc/vim/vimrc
vim配置 vim 配置 整理出来大家一起学习
Vim编辑器
"vimshell.vim, vim中使用shell, 最好一款 source ~/.vim/bundle/vimshell/conf.vim "omnicppcomplete.vim source ~/.vim/bundle/omnicppcomplete/conf.vim "code_complete.vim source ~/.vim/bundle/code_...
VIM工具命令的使用。VIM工具命令的使用。VIM工具命令的使用。
讲述 vim 编辑器的几十个实用上手技巧
同时,学习和熟练使用Vim又有一定的难度。 《Vim实用技巧》为那些想要提升自己的程序员编写,阅读本书是熟练地掌握高超的Vim技巧的必由之路。全书共21章,包括121个技巧。每一章都是关于某一相关主题的技巧集合。每...
vim自动提示等多种功能 先安装ctags 然后进入./vim文件中执行 sh vim_config_ctags-v2.0.sh 再进入./vimconfig中执行 解压缩压缩报 tar jxvf vimconfig.tar.bz2 然后执行 ./config.sh 脚本会自动更新 用户根目录下...
同时,学习和熟练使用vim又有一定的难度。, 《vim实用技巧》为那些想要提升自己的程序员编写,阅读本书是熟练地掌握高超的vim技巧的必由之路。全书共21章,包括121个技巧。每一章都是关于某一相关主题的技巧集合。每...
VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结
vim配置文件vim配置文件vim配置文件
vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令
vim
good tutor for learning vim.keep it.
vim的vimwiki入门,自己写wiki网页