4

我在 OSX 中使用 Vim 时遇到了一些麻烦,那就是:每当我在 Vim 外部复制并在其中粘贴文本时使用 COMMAND + P,复制文本的一些字符会被删除。

复制:Function(){......+ 20 行

粘贴n(){.....+ 20 行)

我知道 Vim 有很多来龙去脉......我在 Ubuntu 设置上使用它没有任何问题。但我还不是真正的专家,我觉得这是 mac 用户会遇到的基本问题。但是,我正在浏览论坛并在谷歌上搜索它,但似乎找不到答案。

非常感谢任何帮助。

编辑:我知道这是一个非常基本的问题,有人可能会问他们是否不了解 Vi 插入模式的基础知识并且不喜欢运行 Vimtutor。对我来说,这不是问题。我实际上已经使用 Vim 有一段时间了,但是这个默认行为很早就被改变了(所以我从来没有注意到它)。

在考虑插入模式如何工作的基础知识之前,我肯定会浪费很多时间,所以非常感谢您及时的回复!我希望这个帖子对其他一些人有用向人们解释他们应该在 10 秒内从手册页或其他内容中挑选的内容。

4

1 回答 1

10

当您粘贴时,看起来您并未处于插入模式i,因此 Vim 将文本解释为命令,直到一个字母(例如或o)意外切换到插入模式。[1]

您需要先进入插入模式(i,还要考虑:set paste,和'pastetoggle'option;:help 'paste'有一些背景信息)。

或者(如果支持),从 Vim 中访问剪贴板,例如通过"+p(正常模式)或<C-R><C-R>+(插入模式)。

由于只有基于终端的 Vim 版本存在区分键入和粘贴键的问题,因此切换到 GUI GVIM(我认为那里称为MacVim)也可以避免这个问题。


[1] Vim 将示例理解为:

  1. Fu: 向后查找字符u
  2. n: 下一个搜索匹配
  3. cti: 更改直到下一个字符之前i(当没有这样的字符时中止插入模式)
  4. o:光标下方的新行并插入文本
于 2013-10-23T14:48:25.533 回答