分页: 1 / 1

如何让VIM自动在运算符左右补空格?

发表于 : 2007-12-14 11:48
kobecater000
比如输入s=a+b;,自动补成s = a + b;

发表于 : 2007-12-14 12:18
iblicf
这个不好弄阿, 比如bash和 C语法不一样, bash 里边 =两边空格不空格意义不同, 还是编辑的时候控制比较好

简单的,可以这样实现 :map <F2> i<space><Esc>ea<space><Esc>

这样在 +号上按F2 两边补空格,,没什么意思哦 :)

发表于 : 2007-12-14 12:22
kobecater000
emacs有没有这样的功能?

发表于 : 2007-12-14 18:32
zhangsong023
kobecater000 写了:emacs有没有这样的功能?
不同语言对空格的处理是不同的,在同一各种语言中,也有很复杂的情况要处理,比如*在C中既表指针,又表乘号,自动加空格的话会很麻烦。

无论用vim或是emacs,都可以方便的调用外部程序格式化代码,达到你想要的加空格的目的。
对于C\C++\Java,推荐astyle。

可以配置成每次保存时调用astyle格式化代码,算是一个折衷的办法,当然也可以定义键映射。

Re: 如何让VIM自动在运算符左右补空格?

发表于 : 2007-12-14 18:36
BigSnake.NET
kobecater000 写了:比如输入s=a+b;,自动补成s = a + b;
设置插入模式下运算符键的映射
不同语言的问题, 可以将映射放到autocmd判断里

Re: 如何让VIM自动在运算符左右补空格?

发表于 : 2007-12-14 18:49
zhangsong023
BigSnake.NET 写了:
设置插入模式下运算符键的映射
不同语言的问题, 可以将映射放到autocmd判断里
对C中的*不好处理,类似的,运算符如果有其它语义的都难。

Re: 如何让VIM自动在运算符左右补空格?

发表于 : 2007-12-14 18:50
BigSnake.NET
zhangsong023 写了:
BigSnake.NET 写了:
设置插入模式下运算符键的映射
不同语言的问题, 可以将映射放到autocmd判断里
对C中的*不好处理。
那就没办法了, 要分析语法

Re: 如何让VIM自动在运算符左右补空格?

发表于 : 2007-12-15 11:05
zhangsong023
BigSnake.NET 写了:
那就没办法了, 要分析语法
++ -- += -= /= /* */

太多了,感觉做键映射几乎没有可行性。

发表于 : 2007-12-15 12:21
kobecater000
应该有插件支持这种功能的吧