1

作为问题为什么 vim 在 python 文件中不服从我的 expandtab 中描述的问题的解决方案?,我已将此添加到我的 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

4

1 回答 1

2

Python 的默认设置是:

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

如果你想改变,比如说…… 'expandtab',你只需要把下面的行放在~/.vim/after/ftplugin/python.vim

setlocal noexpandtab

是的,您应该对您不喜欢默认设置的每个文件类型执行此操作。它比使用函数更简单、更快、更可靠、更易于维护。

吻。

于 2014-12-30T14:06:45.540 回答