【问题标题】:losing text while pasting into vi粘贴到 vi 时丢失文本
【发布时间】:2013-11-01 21:44:36
【问题描述】:

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

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

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

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

非常感谢任何帮助。

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

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

【问题讨论】:

  • 您确定粘贴时处于插入模式吗?
  • 你用什么命令粘贴?正如 Turix 所问的,Vim 在什么模式下(插入、正常、可视等)?

标签: macos vim copy-paste vi


【解决方案1】:

当您粘贴时,您似乎没有处于插入模式,因此 Vim 将文本解释为命令,直到一个字母(例如 io)意外切换到插入模式。 [1]

您需要先进入插入模式(i,也可以考虑:set paste,以及'pastetoggle' 选项;:help 'paste' 有一些背景信息)。

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

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


[1] Vim 将示例理解为:

  1. Fu:向后查找字符u
  2. n: 下一个搜索匹配
  3. cti:更改到下一个字符之前i(当没有这样的字符时会中止插入模式)
  4. o:光标下方换行并插入文本

【讨论】:

  • 很好的解释... OP也可以考虑使用vim -y的“简单模式”
  • 非常感谢。昨天我读到这篇文章时,我的头撞到了我的桌子上。这完全有道理。
  • 太棒了!不要忘记接受答案以完全关闭问题。
猜你喜欢
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
相关资源
最近更新 更多