vim下编程时怎样设置起其自动在“<<”“>>”“+”等符号前后加上空格,vs2013就有这个功能

2025-03-09 23:28:50
推荐回答(2个)
回答1:

一个比较有素养的程序员在写代码的时候普遍是习惯自己手打空格的。这就像习惯打英语的人,总会记得在一个单词前后加个空格一样。

不同的人有不同的代码风格的一个方面就体现的不同的空格使用上。这样代码的视觉效果会不同,在美观,紧凑性,可读性上都会有区别。楼主如果想培养自己的书写风格,最好从刚开始学习编程开始。

vim 应该没有自带这个功能。如果对自动加空格极为执着,我个人倾向于以为这个问题不是很好解决。就像楼主所言,至少要判断添加的地方是不是注释,或者字符串。那个热心网友提供的回答是个不错的开始。但看来还不够“智能”。

回答2:

添加到/etc/vimrc里面----------------------------

let g:equ=1
if exists("g:equ")
:inoremap << =EqualSign('<<')
:inoremap >> =EqualSign('>>')
:inoremap + =EqualSign('+')
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 "\i".a:char."\"
else
return "\xa".a:char."\"
endif
else
if ex2 !~ "\s"
return "\".a:char."\\a"
else
return a:char."\\a"
endif
endif
endf