我当前的.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。我该添加什么以便它会自动为我标记?
答案 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个公约。出现在这里
答案 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