为什么Vim在复制和粘贴时总是设法剪掉至少几个字符?

时间:2017-01-15 15:18:59

标签: vim text

当我从文本文件中复制某些内容时,Vim总是设法剪掉至少几个字符,例如public rsa key。

通常,我在计算机中打开一个文本文件,突出显示文本,将其复制到剪贴板。我进入我的终端(Vim已经打开)然后:

i (for insert)
ctrl+shift+v

我做错了吗?

我已经进行了双重检查,并对其进行了三重检查,我绝对相信我会突出显示我需要复制的所有文本。其他时候它工作正常。关于它何时发生似乎没有任何一致性。

有人经历过这个吗?

2 个答案:

答案 0 :(得分:2)

这通常会发生,因为粘贴文本中的某些内容会意外触发键映射。这就是粘贴模式的用途。

在粘贴前执行此操作:

:set paste

在以下情况下将其关闭:

:set nopaste

频繁输入可能很烦人,因此有一种方法可以将其映射到组合键。我为此使用,p,并在我的.vimrc中使用它:

set pastetoggle=,p

(是的,我在这里使用了一个实际的逗号,而不是<Leader>。这是因为<Leader>在这里不起作用,因为这在技术上不是映射。)

这是一个切换,因此您可以使用它来打开和关闭模式。它适用于普通模式和插入模式。

您确实希望在粘贴后将其关闭。由于粘贴模式会禁用插入映射,因此您不希望始终保持打开状态。

您可以使用:help 'paste了解有关粘贴选项的更多信息。

答案 1 :(得分:1)

使用“+ p或”* p可以避免切换到和形成粘贴模式的烦恼。 (您正在使用quoteplus注册表。)

通常情况下,我更喜欢“+ P,因为这会将光标留在格式正确的put的末尾。请参阅:help quote以获取详细信息。因此整个工作流程为:

outside of vim: copy to clipboard
inside of vim: "+P  
相关问题