autocmd vimenter不是由MacVim运行的

时间:2014-12-30 11:15:47

标签: vim indentation macvim autocmd

作为问题Why does vim not obey my expandtab in python files?中描述的问题的解决方案,我已将此添加到我的vimrc中:

let g:use_tabs = 1
let g:indent_width = 4
let g:tab_width = 4

function! SetIndent()
    if g:use_tabs
        set noexpandtab
        set softtabstop=0
        let &shiftwidth = g:indent_width
        let &tabstop = g:tab_width
    else
        set expandtab
        let &softtabstop = g:indent_width
        let &shiftwidth = g:indent_width
        let &tabstop = g:tab_width
    endif
endfunction

autocmd VimEnter * call SetIndent()

这在终端中运行vim时效果很好,但似乎MacVim根本不运行call SetIndent()命令。

这是因为MacVim忽略VimEnter还是在vim之后的另一个时间运行它? 我如何修复我的vimrc,以便它也能在MacVim中运行?


修改:链接到我的完整vimrc:https://ghostbin.com/paste/3xnw7

1 个答案:

答案 0 :(得分:2)

Python的默认设置是:

setlocal tabstop=8
setlocal softtabstop=4
setlocal shiftwidth=4
setlocal expandtab

如果您要更改,请说... 'expandtab',您只需将下面的行放在~/.vim/after/ftplugin/python.vim中:

setlocal noexpandtab

是的,对于您不喜欢默认设置的每种文件类型,都应该这样做。与使用函数相比,它更简单,更快速,更可靠,更易于维护。

KISS。