vim下编程时怎样设置起其自动在“<<”“>>”“+”等符号前后加上空格,vs2013就有这个功能
2个回答
展开全部
一个比较有素养的程序员在写代码的时候普遍是习惯自己手打空格的。这就像习惯打英语的人,总会记得在一个单词前后加个空格一样。
不同的人有不同的代码风格的一个方面就体现的不同的空格使用上。这样代码的视觉效果会不同,在美观,紧凑性,可读性上都会有区别。楼主如果想培养自己的书写风格,最好从刚开始学习编程开始。
vim 应该没有自带这个功能。如果对自动加空格极为执着,我个人倾向于以为这个问题不是很好解决。就像楼主所言,至少要判断添加的地方是不是注释,或者字符串。那个热心网友提供的回答是个不错的开始。但看来还不够“智能”。
不同的人有不同的代码风格的一个方面就体现的不同的空格使用上。这样代码的视觉效果会不同,在美观,紧凑性,可读性上都会有区别。楼主如果想培养自己的书写风格,最好从刚开始学习编程开始。
vim 应该没有自带这个功能。如果对自动加空格极为执着,我个人倾向于以为这个问题不是很好解决。就像楼主所言,至少要判断添加的地方是不是注释,或者字符串。那个热心网友提供的回答是个不错的开始。但看来还不够“智能”。
2014-10-03
展开全部
添加到/etc/vimrc里面----------------------------
let g:equ=1
if exists("g:equ")
:inoremap << <c-r>=EqualSign('<<')<CR>
:inoremap >> <c-r>=EqualSign('>>')<CR>
:inoremap + <c-r>=EqualSign('+')<CR>
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
endf
let g:equ=1
if exists("g:equ")
:inoremap << <c-r>=EqualSign('<<')<CR>
:inoremap >> <c-r>=EqualSign('>>')<CR>
:inoremap + <c-r>=EqualSign('+')<CR>
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
endf
更多追问追答
追问
谢谢,可是还有许多运算符符仍没有空格,逗号后面也应该有个空格的,
追答
自己动手添加。。。
:inoremap , =EqualSign(',')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询