我总是错过并且总是插入vim的一个IDE功能是标签完成。
我是SuperTab的忠实粉丝,但我不能忍受的一件事是,它将带有破折号的CSS类名和ID的部分视为单个单词。
我为camelCase和underscore_completion找到了几个可能的解决方案,但我似乎无法找到任何支持普通旧破折号的解决方案。
答案 0 :(得分:8)
这不是特定于CSS的问题:Vim使用iskeyword
的值来执行完成。
键入:set iskeyword?
以查看哪些字符被视为关键字的一部分。 Mac上的默认值应为@,48-57,_,192-255
。
您可以使用以下命令将短划线添加到列表中:
:set iskeyword+=-
将此行添加到~/.vimrc
以设置此设置:
set iskeyword+=-
答案 1 :(得分:2)
这似乎对我有用:
autocmd FileType css,scss set iskeyword=@,48-57,_,-,?,!,192-255
从这里采取:VIM: How to autocomplete in a CSS file with tag ids and class names declared in HTML file
答案 2 :(得分:0)
对于未来的读者:如果您想要破折号的优势用于编辑/移动命令,但想要完整属性自动完成,请尝试将其添加到.vimrc
:
augroup css_dash_autocompletion
autocmd FileType scss,css autocmd! css_dash_autocompletion InsertEnter <buffer> set isk+=-
autocmd FileType scss,css autocmd css_dash_autocompletion InsertLeave <buffer> set isk-=-
augroup END
第一个!
可防止重复事件触发。感谢ZyX的结构。如果您重新source
.vimrc
,则需要:e
已打开的任何(S)CSS文件以获取更改。