Linux中設置vim自動在運算符號兩邊加上空格


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>
endif


function! EqualSign(char)
if a:char  =~ '='  && getline('.') =~ ".*("
return a:char
endif 
let ex1 = getline('.')[col('.') - 3]
let ex2 = getline('.')[col('.') - 2]


if ex1 =~ "[-=+><>\/\*]"
if ex2 !~ "\s"
return "\<ESC>i".a:char."\<SPACE>"
else
return "\<ESC>xa".a:char."\<SPACE>"
endif 
else
if ex2 !~ "\s"
return "\<SPACE>".a:char."\<SPACE>\<ESC>a"
else
return a:char."\<SPACE>\<ESC>a"
endif 
endif
endif

就可以了。另外還可以加入如下代碼,增加vim的便利性:

"預防手誤的殺招
nnoremap : :
cnoremap Q! q!
command Wq wq
command Q q
command WQ wq

set nu 
"代碼顯示行號
syntax on 
"關鍵詞高亮顯示
set cindent 
"c語法自動縮進
set autoindent 
"新行自動縮進
set shiftwidth=4 
"縮進寬度4
set tabstop=4 
"tab鍵寬度4
set softtabstop=4 
"制表符寬度4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM