每当我从Chrome中复制已缩进Vim的文本时,我会得到一个级联缩进而不是一致的缩进,所以:
def fn(x):
"""Takes x as an input and returns y
if x:
return y
变为:
def fn(x):
"""Takes x as an input and returns y
if x:
return y
如何防止这种情况(首选),或者如何使用其他vim命令快速修复间距(可接受)?
CTRL-C
,切换到vim并插入模式,SHIFT-CTRL-V
。答案 0 :(得分:5)
使用任何终端/操作系统的默认方法(菜单,上下文菜单,快捷方式,鼠标...)进行粘贴时,文本不会粘贴:它是插入,就像您键入它一样。因为你已经启用了自动延迟,所以Vim会缩进每一行,你最终会得到那个阶梯(地狱)效果。
你有两个选择......
paste/nopaste
和/或pastetoggle
:
您可以在粘贴前:set paste
禁用自动延迟和格式化,然后再执行:set nopaste
。
如果您决定采用这条路径,我建议您阅读:h pastetoggle
,以使整个流程减轻负担。
Vim自己的命令和剪贴板集成:
如果你的Vim版本附带剪贴板支持,你可以使用"+p
或"*p
从其他程序粘贴而不会产生副作用。
大多数操作系统附带的默认Vim是一个“小”版本,可能缺少许多有用的功能。如果您打算使用Vim作为编程的主编辑器,建议安装一个带有剪贴板支持的更强大的版本。在基于Debian的系统上,最好的选择通常是“vim-gtk”或“vim-gnome”。在Arch上,我认为你必须安装“gvim”软件包。