将文本粘贴到vim时关闭自动缩进

我正在努力学习Vim。

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

line
  line
    line

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

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

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

要粘贴代码时关闭autoindent,有一个特殊的“粘贴”模式。

类型

:set paste

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

粘贴代码后,关闭粘贴模式,以便在再次正确输入时自动缩进。

:set nopaste

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

set pastetoggle=<F3>

为了避免粘贴时产生不良影响,需要设置一个选项:

set paste

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


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

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

链接地址: http://www.djcxy.com/p/1379.html

上一篇: Turning off auto indent when pasting text into vim

下一篇: How to do case insensitive search in Vim