关于缩进:Vim在复制粘贴时缩进每行代码

Vim indents every line of code when copying-pasting

当我复制并浏览Vim中的一段代码时,每一行都缩进一行。 例如,我有这个来源:

1
2
3
4
    print"Hello"
    print"World"
    print"I'm copying"
    print"and pasting"

粘贴到Vim时会混乱:

1
2
3
4
print"Hello"
        print"World"
            print"I'm copying"
                print"and pasting"

对于复制长行代码,它非常令人沮丧,因为一切都不对齐(对python不好)。

这是我的vimrc。 它目前在换行符上自动缩进,并用标准的4个空格替换制表符。

1
2
3
4
5
6
7
filetype plugin indent on
" show existing tab with 4 spaces width

set tabstop=4
" when indenting with '>', use 4 spaces width

set shiftwidth=4
" On pressing tab, insert 4 spaces

set expandtab

虽然这个配置有效,但是有些东西导致了复制粘贴问题。 如何解决这个问题,但仍保留我定义的行为?


使用:set paste切换到粘贴模式。

本文介绍了粘贴模式

它专门用于将文本粘贴到vim中,因此它不会触发任何输入映射。 完成后,请记住:set nopaste以恢复映射。