关掉在复制文本到vim时的自动缩进

2024-04-20 00:48:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习维姆。

当我从剪贴板将代码粘贴到文档中时,每行新行的开头都会有额外的空格:

line
  line
    line

我知道你可以关闭自动缩进,但我不能让它工作,因为我有一些其他设置冲突或其他东西(这在我的.vimrc中看起来很明显,但似乎不重要,当我取出它们)。

如何在粘贴代码时关闭自动缩进,但在编写代码时仍有vim自动缩进?这是我的.vimrc文件:

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

Tags: 文件代码文档粘贴linevimvimrc空格
3条回答

更新:更好的答案是:https://stackoverflow.com/a/38258720/62202

要在粘贴代码时关闭自动缩进,有一种特殊的“粘贴”模式。

类型

:set paste

然后粘贴代码。注意,工具提示中的文本现在显示为-- INSERT (paste) --

粘贴代码后,请关闭粘贴模式,以便键入时自动缩进再次正常工作。

:set nopaste

但是,我总是觉得很麻烦。这就是为什么我映射<F3>以便它可以在编辑文本时在粘贴和非粘贴模式之间切换!我将此添加到.vimrc

set pastetoggle=<F3>

为了避免粘贴时出现不希望出现的效果,需要设置一个选项:

set paste

vimrc中的一个有用命令是set pastetoggle=<F10>或其他一些按钮,可以轻松地在粘贴和不粘贴之间切换。

我通常使用:r! cat,然后粘贴( shift + insert )内容,然后CTRL+D

无需启用和禁用,直接使用。

相关问题 更多 >