vim 粘贴到 python 文件中而不自动缩进

vim 粘贴到 python 文件中而不自动缩进

可能重复:
当我将代码粘贴到 vim 中时,如何保持代码格式为原始源?

这是我的.vimrc 文件的一部分。

" when opening a Python file, use spaces instead of tabs (et, expandtabs),
" use 4 spaces as tabulation (ts=4, tabstop), use 4 spaces when adding
" a tabulation automatically (sw=4, shiftwidth) and thread 4 spaces as
" a tabulation when deleting (softtabstop=4)
au FileType python set et ts=4 sw=4 softtabstop=4

autocmd BufRead *.py set makeprg=python\ -c\ \"import\ py_compile,sys;\ sys.stderr=sys.stdout;\ py_compile.compile(r'%')\"
autocmd BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
autocmd BufRead *.py nmap <F5> :!python %<CR>

它非常适合编辑 Python。但是,当我需要将预缩进的 Python 代码从剪贴板缓冲区粘贴到 Python 文件中时,我最终得到的结果是这样的:

class GlobalOptions:
        def __init__(self):
                                self.DebugLevel = 0

def __repr__(self):
                    return "<GO>"

即使我使用 ':set noautoindent' 也会发生这种情况。

有没有一种简单的方法可以在 python 文件的智能自动缩进和可用于粘贴代码的原始输入模式之间切换?

如果可以避免这个问题,我很乐意尝试其他人的 .vimrc 文件。

我在分别运行于 Debian、RedHat 和 Ubuntu 上的 vim 6.3、7.0、7.1 上都遇到了这个问题。

答案1

您需要:set paste!在将系统剪贴板中的内容粘贴到 vim 之前和之后进行。

相关内容