我正在为一种新语言开发一个小vim插件。我目前正在处理一些很酷的效果,将某些字符和单词更改为badass unicode字符,例如Move function definition to source file
变为\
。
我现在想让λ
变成not
,但由于我不能在¬
上匹配,这会导致一些复杂化,因为这会导致像not
这样的字词转向进入nottingham
所以我创建了imap:
¬tingham
但是每次按下空格都会导致恼人的延迟。无论如何要解决这个问题吗?
注意:
我没有使用inoremap <space>not<space> ¬
,因为它会导致角色向后翻转,第四次变亮,而且它会突出显示。
答案 0 :(得分:2)
使用缩写:
:abbrev not ¬
对于&#34;之前的空间&#39;不是&#39;部分&#34 ;:
来自:help abbreviations
(&#39; not&#39;是full-id
缩写,请参阅所有缩写类型的帮助):
The characters before the cursor must match the abbreviation. Each type has
an additional rule:
full-id In front of the match is a non-keyword character, or this is where
the line or insertion starts. Exception: When the abbreviation is
only one character, it is not recognized if there is a non-keyword
character in front of it, other than a space or a tab.
对于&#39;之后的&#34;空间&#39;部分&#34;:
An abbreviation is only recognized when you type a non-keyword character.
This can also be the <Esc> that ends insert mode or the <CR> that ends a
command.
答案 1 :(得分:0)
您可以使用
iabbrev not ¬
这使用内置的缩写系统,速度更快 而不是inoremap with spaces。
答案 2 :(得分:0)
简化和默认行为是当timeoutlen=1000
为timeout
时,超时延迟由on
控制,默认值为on
。
因此,要减少当前超时值的一半:set timeoutlen=500
。
更多:h timeout
。
不确定,如果这是你正在寻找的,但比abbr
方法更灵活。