我在vim中有以下键盘映射:
inoremap { { }<Esc><BS>i<CR><CR><Esc>ki<Space><Space>
如果我想在没有其他字符的情况下输入文字{
,我该怎么办?
答案 0 :(得分:3)
在vim中输入文字字符的方法是使用Ctrl-V
。
在您的情况下,在插入模式下,您需要输入Ctrl-V
,然后输入{
答案 1 :(得分:2)
另请注意,存在多个面向括号的插件,用于检测上下文,以便不在注释或字符串上下文中展开{
之类的内容。我保持的lh-brackets也有一个启用/禁用功能,在触发键上切换。
否则,对于与可识别的上下文不匹配的准时禁用,ffledgling告诉您CTRL-V
。
注意:上下文检测背后的想法是将synIDattr(synID(line('.'),col('.')-1,1),'name')
的结果与'comment\|string\|character\|doxygen'
相匹配(请参阅lh括号中的lh#map#*context*()
函数),并让您的map-<expr>
扩展{
或{}
+光标移动,不会破坏重做+其他可能的事情。