.vimrc配置为Python

时间:2009-10-06 03:45:55

标签: python vim

我当前的.vimrc配置如下:

set nohlsearch
set ai
set bg=dark
set showmatch
highlight SpecialKey ctermfg=DarkGray
set listchars=tab:>-,trail:~
set list
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
syntax on
set listchars=tab:>-
set listchars+=trail:.
set ignorecase
set smartcase
map <C-t><up> :tabr<cr>
map <C-t><down> :tabl<cr>
map <C-t><left> :tabp<cr>
map <C-t><right> :tabn<cr>

然而,当我编写python脚本时,当我按下“ENTER”时,它将转到下一行的BEGINNING。我该添加什么以便它会自动为我标记?

6 个答案:

答案 0 :(得分:14)

试试这个:

filetype indent on
filetype on
filetype plugin on

我主要做Python编程,这是我的vimrc

的首要任务
set nobackup
set nowritebackup
set noswapfile
set lines=40
set columns=80
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set smarttab
filetype indent on
filetype on
filetype plugin on

答案 1 :(得分:12)

简短的回答是您的autocmd缺少BufEnter触发器,因此在创建新文件时不会触发它。试试这个:

 au BufEnter,BufRead *.py setlocal smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class

请注意,我还将set更改为setlocal。这将阻止这些选项踩踏你的其他缓冲区选项。

执行您尝试执行的操作的“正确”方法是将filetype indent on添加到.vimrc。这将打开基于内置文件类型的缩进。 Vim附带了Python缩进支持。有关详细信息,请参阅:help filetype-indent-on

答案 2 :(得分:5)

考虑一下官方的.vimrc来关注PEP 7&amp; 8个公约。出现在这里

http://svn.python.org/projects/python/trunk/Misc/Vim/vimrc

答案 3 :(得分:4)

您不必显式缩进python关键字。 $ VIM / indent / python.vim文件负责处理。你只需要打开filetype indent和autoindent。

答案 4 :(得分:3)

我(简单地)使用它:

set shiftwidth=4
set tabstop=4
set expandtab
filetype plugin on
filetype indent on
syntax on

答案 5 :(得分:0)

我想说的是,此配置提供了一些东西,而不会引起冲突(/etc/vim/vimrc):

" Python Setup
autocmd Filetype python setlocal ts=2 sw=2 expandtab
autocmd Filetype python set number
autocmd Filetype python set autoindent
autocmd Filetype python set expandtab
autocmd Filetype python set shiftwidth=4
autocmd Filetype python set cursorline
autocmd Filetype python set showmatch
autocmd Filetype python let python_highlight_all = 1
autocmd Filetype python set colorcolumn=80