好的,这可能是一个非常基本的问题,但是我刚刚学习了如何进行自定义键映射。
我试图在输入“ class”时使vim自动“结束”两行,所以我在以下代码中写道.vimrc
:
:imap class class<CR><CR>end
这样就可以正常工作,除非现在我开始输入“ class”时,vim会覆盖“ class”的每个字母,直到我完成输入,或者我输入的内容不再与“ class”匹配。
有没有一种方法可以避免这种行为,即使它与映射的键序列匹配,我也希望能够看到正在键入的内容?
不知道我是否正确解释了。
感谢帮助
您正在寻找
:inoreab class class<cr><cr>end
相同的(nore
)也可以用于映射,但是映射不适合此类摘要。
顺便说一句,缩写应声明为特定于您将在其中使用的文件类型(Ruby吗?)->
" in ~/.vim/ftplugin/ruby/my_snippets.vim
:inoreab <buffer> class class<cr><cr>end
请注意,您将无法在字符串或注释中输入“类”,而不会看到其展开。您要么不得不依赖将要处理上下文的功能,要么不得不依赖片段(它们将更易于维护)
例如,使用lh-bracket,您可以定义:
:Inoreab <buffer> class <c-r>=InsertSeq('class', 'class !cursorhere!\<cr\>!mark!\<cr\>end!mark!')<cr>
但我真的建议您使用摘要引擎(mu-template,utilsnip,snipmate等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句