Jos*_*der 3 vim keymapping keymaps
如何在 vim 中编辑现有映射?我使用标准映射命令之一在我的 .vim 文件中设置映射:
map ^A o]]></code>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<code><![CDATA[0kkkkkk5ehi
Run Code Online (Sandbox Code Playgroud)
我想编辑这个长命令以使用“matlab”而不是代码,例如:
map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi
Run Code Online (Sandbox Code Playgroud)
但是,我不想编辑 .vim 文件——我将再次使用原始映射。我只想更改当前会话的映射。我试过 :map ^A,但这仅显示当前映射,我无法复制显示的文本。
PS 注意 ^M 和 ^A 字符是用 Ctrl-Q Ctrl-M 等插入的。
只为当前会话调整映射是不寻常的;可能这就是它支持不佳的原因。我猜您实际上并不关心session,而是关心Matlab文件类型。为此,有极好的支持。如果'filetype'检测为matlab,则可以将缓冲区本地映射变体放入~/.vim/after/ftplugin/matlab.vim:
map <buffer> ^A ...
Run Code Online (Sandbox Code Playgroud)
如果你更愿意坚持你原来的计划,我会这样做:
:split ~/.vimrcyy:@":bdelete!对于更通用的解决方案,您还可以通过 捕获原始:map ^A命令的输出:redir,然后将:put其放入:new暂存缓冲区,最后:source是。这是更多的手动步骤和打字,但可以通过自定义命令自动化。如果您经常需要它,那么值得。