2014-01-15 43 views
2

'iskeyword'的文件沒有提到這一點。我認爲這是可能的,因爲'isfname'允許包括一個空間(儘管不推薦)。是否允許在Vim的'iskeyword'選項中包含空格?

但是,在set [email protected],48-57,_,32之後,空間仍然不被識別爲關鍵字字符。我想念什麼?

+1

我不能說是否可能,但這樣做會破壞很多文本對象和動作的功能,聽起來很愚蠢。 – romainl

+0

我同意romainl,你能告訴我們爲什麼你可能想這樣做嗎? –

+0

我試圖爲同義詞庫文件設置「iskeyword」選項,該文件可能包含我希望它成爲關鍵字的短語。否則,我只會在其中包含文字。 – Bohr

回答

2

是的,這是可能的(但你只應該暫時做這個,例如詞庫查找,因爲這樣的設置是意想不到的,並且必然會破壞Vim中的許多插件和其他東西)。

我能夠通過

:set iskeyword+=32 

導致[email protected],48-57,_,192-255,32包括一個空間。我得到正確的hlsearch突出顯示和matchstr(..., '\k\+')匹配。

注意,它仍然是相當難以得到詞庫完成i_CTRL-X_CTRL-T)得到多個單詞,因爲完成基礎現在還包括光標之前的所有(修改)的關鍵字,那現在可以多話,太!

+0

我認爲選項'iskeyword'可以從敘詞表文件的'modeline'中設置。但改變當前緩衝區的'iskeyword'選項肯定是不合適的。另外,像'w' /'b'這樣的動作從不會將空間看作關鍵字。所以我只是放棄,很高興。 – Bohr

+0

只有在加載同義詞庫文件以進行正常編輯時纔會考慮該模式行。如果您想將其用於同義詞庫完成,則需要通過不同的代碼路徑;它不會作爲Vim緩衝區加載,甚至不會隱藏在後臺。 –

+1

我實際上已經實現了多詞詞典完成,但它充滿了黑客,我沒有考慮發佈它。相反,我很想看到這個功能在覈心Vim中實現(當前的開發情況不太可能)。 –

相關問題