粘贴到vi时丢失文本

时间:2013-10-23 14:34:28

标签: macos vim copy-paste vi

我在OSX中使用Vim遇到了一些麻烦:无论何时我在Vim和COMMAND + P之外复制粘贴文本,复制文本的几个字符都会被删除。

COPY:Function(){...... + 20行

PASTE n(){..... + 20行)

我知道Vim有很多细节......我在Ubuntu设置上毫无困难地使用它。但我还不是很专业,我觉得这是mac用户会遇到的一个基本问题。但是,我正在浏览论坛并搜索它,我似乎无法找到答案。

非常感谢任何帮助。

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

在考虑插入模式如何工作的基础知识之前,我肯定会浪费很多时间,所以真的非常感谢你的真棒,及时的回复!我希望这个帖子对其他一些人来说很有用,他们可能不太可能从互联网上取下一些“样板”.vimrc,或者已经习惯了其他人配置的Vim ......因为Stack Overflow的意思不是向人们解释他们应该在10秒钟内从手册或其他内容中选择的东西。

1 个答案:

答案 0 :(得分:7)

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

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

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

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


[1] Vim将这个例子理解为:

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