4

如何在 vim 中编辑现有映射?我使用标准映射命令之一在我的 .vim 文件中设置映射:

map ^A o]]></code>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<code><![CDATA[0kkkkkk5ehi

我想编辑这个长命令以使用“matlab”而不是代码,例如:

map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi

但是,我不想编辑 .vim 文件——我将再次使用原始映射。我只想更改当前会话的映射。我试过:map ^A,但这只显示当前映射,我无法复制显示的文本。

PS注意^M和^A字符是用Ctrl-Q Ctrl-M等插入的。

4

2 回答 2

6

只为当前会话调整映射是不寻常的;可能这就是为什么它的支持很差。我猜你实际上并不关心session,而是 Matlab filetype。为此,有很好的支持。如果'filetype'被检测为matlab,您可以将缓冲区本地映射变体放入~/.vim/after/ftplugin/matlab.vim

map <buffer> ^A ...

直接编辑

如果您宁愿坚持原来的计划,我会这样做:

  1. 打开配置::split ~/.vimrc
  2. 就地编辑映射
  3. 拉线:yy
  4. 执行以激活当前会话::@"
  5. 中止编辑而不保存::bdelete!

选择

对于更通用的解决方案,您还可以通过 捕获原始:map ^A命令的输出:redir,然后:put将其捕获到:new暂存缓冲区,最后捕获:source。它更多的是手动步骤和打字,但可以通过自定义命令自动化。如果您经常需要这个,这是值得的。

于 2014-12-31T17:41:44.150 回答
0

要仅为当前会话设置地图,请执行

:map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi
于 2014-12-31T17:12:17.873 回答