我遇到以下BufRead命令的问题 - 我得到一个错误,在tabstop =之后需要一个数字(当然那里有一个)。
au BufNewFile,BufRead *.py
\ set tabstop=4|
\ set softtabstop=4|
\ set shiftwidth=4|
\ set textwidth=79|
\ set expandtab|
\ set autoindent|
\ set fileformat=unix
之前在第2行,我有:
\ set tabstop = 4
(注意空格)会导致错误,但改变似乎并没有帮助。我还试过没有吧,但是如果我想将命令分成多行以便于阅读,我说这是必要的。我还尝试将所有设置命令放在一行中:la:
au BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4...
所有人都给我同样的错误。我究竟做错了什么?我已经用尽了研究这个问题的能力。
编辑清晰度
答案 0 :(得分:0)
语法(没有=
周围的空格)是正确的。您未能提供确切的Vim版本,这是一个最小的示例(例如$ vim --clean --cmd "au BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4" -c "new foo.py"
,我也未能在Vim 8.0.1358中重现该问题),也没有提供完整的错误消息。我无法帮助你。如果您非常绝望,可以尝试替代语法let &tabstop = 4 | let &softtabstop = 4 | ...
。
但是,如果您将此代码放入_gvimrc
(如评论中所示),则有更好的方法:利用内置的文件类型检测和 filetype plugins 。将设置(:setlocal
,以便它只影响当前缓冲区)到~/.vim/after/ftplugin/python.vim
。 (或Windows的等效项。这要求您拥有:filetype plugin on
;在目录之后使用可以覆盖$VIMRUNTIME/ftplugin/python.vim
完成的任何默认文件类型设置。)
或者,您可以直接在:autocmd FileType python ...
中定义~/.vimrc
,但是一旦您进行了多次自定义,这往往会变得难以处理。 ~/.gvimrc
仅应用于特定于GUI的初始化;更改缩进设置不是其中之一。即使您专门使用GVIM,仍然会读取.vimrc
(或Windows上的_vimrc
); CP。 :help initialization
。