当我从文本文件中复制某些内容时,Vim总是设法剪掉至少几个字符,例如public rsa key。
通常,我在计算机中打开一个文本文件,突出显示文本,将其复制到剪贴板。我进入我的终端(Vim已经打开)然后:
i (for insert)
ctrl+shift+v
我做错了吗?
我已经进行了双重检查,并对其进行了三重检查,我绝对相信我会突出显示我需要复制的所有文本。其他时候它工作正常。关于它何时发生似乎没有任何一致性。
有人经历过这个吗?
答案 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