Linux中设置vim自动在运算符号两边加上空格

来源:互联网 发布:一维数组定义ppt课件 编辑:程序博客网 时间:2024/05/18 17:56

vim中设置自动在=+-之类的运算符号左右两边加上空格。原版的vim不带这个功能,写出的代码例如z=x+y,不美观,很多编译器(如VS)能够自动在符号两边加上空格,如z = x + y,看起来比较美观。

只要在.vimrc里面加入如下代码:


"设置= + - * 前后自动空格"设置,后面自动添加空格if exists("g:equ"):inoremap = <c-r>=EqualSign('=')<CR>:inoremap + <c-r>=EqualSign('+')<CR>:inoremap - <c-r>=EqualSign('-')<CR>:inoremap * <c-r>=EqualSign('*')<CR>:inoremap / <c-r>=EqualSign('/')<CR>:inoremap > <c-r>=EqualSign('>')<CR>:inoremap < <c-r>=EqualSign('<')<CR>:inoremap , ,<space>endiffunction! EqualSign(char)if a:char  =~ '='  && getline('.') =~ ".*("return a:charendif let ex1 = getline('.')[col('.') - 3]let ex2 = getline('.')[col('.') - 2]if ex1 =~ "[-=+><>\/\*]"if ex2 !~ "\s"return "\<ESC>i".a:char."\<SPACE>"elsereturn "\<ESC>xa".a:char."\<SPACE>"endif elseif ex2 !~ "\s"return "\<SPACE>".a:char."\<SPACE>\<ESC>a"elsereturn a:char."\<SPACE>\<ESC>a"endif endifendif
就可以了。另外还可以加入如下代码,增加vim的便利性:

"预防手误的杀招nnoremap : :cnoremap Q! q!command Wq wqcommand Q qcommand WQ wqset nu "代码显示行号syntax on "关键词高亮显示set cindent "c语法自动缩进set autoindent "新行自动缩进set shiftwidth=4 "缩进宽度4set tabstop=4 "tab键宽度4set softtabstop=4 "制表符宽度4


0 0
原创粉丝点击