获取vim以提供CSS类和ID名称的制表符完成

时间:2012-02-17 22:06:11

标签: vim

我总是错过并且总是插入vim的一个IDE功能是标签完成。

我是SuperTab的忠实粉丝,但我不能忍受的一件事是,它将带有破折号的CSS类名和ID的部分视为单个单词。

我为camelCase和underscore_completion找到了几个可能的解决方案,但我似乎无法找到任何支持普通旧破折号的解决方案。

3 个答案:

答案 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文件以获取更改。