这个问题在这里已经有了答案:
Pasting code into terminal window into vim on Mac OS X
(6 个回答)
7年前关闭。
每当我从 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
. 最佳答案
当您使用任何终端/操作系统的默认方法(菜单、上下文菜单、快捷方式、鼠标...)粘贴时,不会粘贴文本:它会像您键入一样插入。因为您启用了自动缩进,所以 Vim 会缩进每一行,您最终会得到阶梯( hell )效果。
你有两个选择……
paste/nopaste
和/或 pastetoggle
:你可以做
:set paste
在粘贴之前禁用自动缩进和格式设置并执行 :set nopaste
之后。如果你决定走那条路,我建议你阅读
:h pastetoggle
让整个过程少一点负担。 如果你的 Vim 版本支持剪贴板,你可以使用
"+p
或 "*p
从其他程序粘贴而没有副作用。大多数操作系统附带的默认 Vim 是一个“小”构建,可能缺少许多有用的功能。如果你打算使用 Vim 作为你的主要编程编辑器,建议安装一个带有剪贴板支持的更强大的构建。在基于 Debian 的系统上,最佳选择通常是“vim-gtk”或“vim-gnome”。在 Arch 上,我认为你必须安装“gvim”包。
关于vim - 从 Chrome 复制和粘贴时 Vim 中的额外间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276118/