gpt4 book ai didi

python - vim - 在 .vimrc 中设置 python autoindent 时无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:34 25 4
gpt4 key购买 nike

我的 .vimrc 文件有问题:我正在正确地编写 python 代码。但我有缩进问题。当我将 is 放入我的 .vimrc 文件中时:

" indentation python
au BufNewFile,BufRead *.py
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set ts=4
\ set sw=4
\ set ai
\ set autoindent
\ set fileformat=unix
\ set expandtab ts=4 sw=4 ai

但是一旦 python 文件打开,如果我运行 set expandtab ts=4 sw=4 aivim will start-indent correctly when select code and hit S-=.有什么想法吗?

最佳答案

这不是 Vim 中的有效语法。 \ 只取消换行符,它不会让你链接命令(你有 | )。你写的等同于(截断为你的选项的一个子集):

au BufNewFile,BufRead *.py set tabstop=4 set softtabstop=4 set shiftwidth=4 set textwidth=79

这显然没有意义,因为 set 不是一个有效的选项。

所以你可以做

au BufNewFile,BufRead *.py
\ set tabstop=4
\ softtabstop=4
\ shiftwidth=4
\ textwidth=79

(使其成为具有多个设置的单个 set 命令),或者您可以这样做

au BufNewFile,BufRead *.py
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=79

(使其成为多个 set 命令)。

但是,这是不好的做法,因为选项将在全局范围内设置;例如如果你加载一个 JavaScript 文件,然后加载一个 Python 文件,然后返回到你的 JavaScript 缓冲区,它将有你的 Python 设置。您应该更喜欢使用 setlocal

此外,使用 FileType python 而不是 BufNewFile,BufRead *.py 通常是有意义的 - 也许不是专门针对 Python 的情况,但某些语言可以有多个扩展名.

最后,这允许您通过将与语言相关的设置放在 .vim/after/ftplugin/python.py 中来清理您的 .vimrc。您在那里不需要 autocmd - 只需编写您的 setlocal,并且确保您的设置将针对 python 的每个缓冲区执行> 文件类型。

因此,我的最终建议是:

" .vim/after/ftplugin/python.py
setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4
setlocal textwidth=79
setlocal expandtab
setlocal autoindent
setlocal fileformat=unix

或等效

" .vim/after/ftplugin/python.py
setlocal ts=4 sts=4 sw=4 tw=79 et ai ff=unix

关于python - vim - 在 .vimrc 中设置 python autoindent 时无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44837818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com