分页: 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
应该有插件支持这种功能的吧