我知道这个问题很可能已经被问过很多次了,我一直在寻找解决方案,但我发现相互矛盾的答案并没有完全解决我的问题。
我使用 vim 进行所有文本编辑,最近我开始使用 Python,但我遇到了缩进问题。每当我正确地 tab 并且在 vim 中看起来一切都很好时,我会得到编译错误,我将不得不去像 emacs 这样的编辑器来检查错误的实际位置。
我已经看到一些 .vimrc 文件具有防止此问题的配置,但对我没有任何帮助。
谁能给我一些指导?
我使用的是基于 unix 构建的 mac,这是我的 .vimrc:
set nocompatible "cannot remember, but necessary for something
syntax on "syntax highlighting
filetype plugin indent on
au FileType htm setlocal expandtab shiftwidth=2 softtabstop=2
au FileType html setlocal expandtab shiftwidth=2 softtabstop=2
au FileType css setlocal expandtab shiftwidth=2 softtabstop=2
au FileType javascript setlocal expandtab shiftwidth=2 softtabstop=2
au FileType xml setlocal expandtab shiftwidth=2 softtabstop=2
au FileType ruby setlocal expandtab shiftwidth=2 softtabstop=2
au BufNewFile,BufRead *.ru set filetype=ruby
au BufNewFile,BufRead *.slim set filetype=ruby
au FileType cgi setlocal expandtab shiftwidth=2 softtabstop=2
au FileType python setlocal expandtab shiftwidth=4 softtabstop=4
au FileType perl setlocal expandtab shiftwidth=4 softtabstop=4
au FileType php setlocal expandtab shiftwidth=4 softtabstop=4
au FileType java setlocal expandtab shiftwidth=4 softtabstop=4
au FileType cpp setlocal expandtab shiftwidth=4 softtabstop=4
au BufNewFile,BufRead *.coffee set filetype=ruby
au BufNewFile,BufRead *.jsp set filetype=html
set textwidth=78
python相关的东西归结为:
set nocompatible "cannot remember, but necessary for something
syntax on "syntax highlighting
filetype plugin indent on
au FileType python setlocal expandtab shiftwidth=4 softtabstop=4
set textwidth=78
我会得到编译错误,我将不得不去像 emacs 这样的编辑器来检查错误的实际位置。
怎么了?
尝试将以下代码段添加到您的.vimrc
:
autocmd FILETYPE python setlocal expandtab | setlocal shiftwidth=4 |
\setlocal softtabstop=4 | setlocal textwidth=78 | setlocal tabstop=4
\set smarttab | set smartindent
另一种快速的方法是通过Maximum Awesuome或spf13-vim设置你的 Vim 环境 ,它不仅可以帮助你正确设置缩进、制表符和空格,还可以为你安装几个必要的插件。