2014-01-15 40 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中实现(当前的开发情况不太可能)。 –

相关问题