我想添加让VIM自动在括号和"
/ '
之间添加空格以匹配jquery样式指南:http://contribute.jquery.org/style-guide/js/。这可以是保存或触发自定义命令。
理想情况下,它还会在变量名称之前添加空格,但不会在函数或对象文字中添加空格。
最好的方法是什么?
答案 0 :(得分:2)
要在保存时插入空格,请使用autocommand
:
au BufWrite *.js silent! %s/\m(\@<=["']/ \0/g | silent! %s/\m["'])\@=/\0 /g
只要保存了具有au BufWrite *.js
扩展名的文件(例如js
), jquery.js
就会触发,而命令的其余部分将在 all 之间插入空格单引号/双引号的出现在空格之后/之后(例如,在注释和字符串内部)。要仅在变量名称前执行插入,您需要解析javascript文件并识别其变量,之后才能知道要修改的位置(否则,对于Vim,所有你的代码只是文字。)
或者,您可以将所有内容绑定到命令:
com InsertSpaces silent! %s/\m(\@<=["']/ \0/g | silent! %s/\m["'])\@=/\0 /g
此时:InsertSpace
将执行替换。
最好的解决方案是@romainl建议:训练自己被动地遵循风格指南。自动化空间插入是一个丑陋的黑客。