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

 我来答
hqxz556
2014-10-08 · TA获得超过2831个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:573万
展开全部
一个比较有素养的程序员在写代码的时候普遍是习惯自己手打空格的。这就像习惯打英语的人,总会记得在一个单词前后加个空格一样。

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

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
更多追问追答
追问
谢谢,可是还有许多运算符符仍没有空格,逗号后面也应该有个空格的,
追答
自己动手添加。。。
:inoremap , =EqualSign(',')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式