2012-02-17 77 views
3

我總是錯過並總是插入vim的一個IDE功能是製表符完成。獲取vim爲CSS類和ID名稱提供標籤填充

我是SuperTab的忠實粉絲,但我無法忍受的一件事情是,它將CSS類名和ID的部分用破折號當作單獨的單詞處理。

我發現了一些駱駝套和underscore_completion可能的解決方案,但我似乎無法找到任何支持普通舊破折號的東西。

回答

8

這不是一個CSS特定的問題:Vim使用值iskeyword來執行完成。

輸入:set iskeyword?查看哪些字符被認爲是關鍵字的一部分。 Mac上的默認設置應該是@,48-57,_,192-255

您可以使用此命令破折號添加到列表:

:set iskeyword+=- 

此行添加到您的~/.vimrc此設置棒:

set iskeyword+=- 
+0

我已經嘗試過這種路線,但是這有副作用,那麼運動命令會將短劃線作爲單獨的單詞處理。因此,在文件中移動時,我的班級名稱會被視爲5個單詞。 – 2012-02-18 00:27:47

+0

你的意思是'eEwWbB'?關鍵是在Vim認爲一個詞中包含'-'。使用默認值時,您必須按'5e'從'.'到'.social-network-buttons'中的最後一個字符,但使用':set iskeyword + = - ',您只需要敲擊一次'e'。 – romainl 2012-02-18 08:25:46

+0

對不起,我不清楚我的意思是說我喜歡默認動作,其中破折號被視爲分詞,但我想我可以改變我的肌肉記憶以使用f-,因爲我希望比動作更頻繁地完成完成。 – 2012-02-19 00:14:19

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文件才能找到更改。