在 MacVim 中为 python 编写脚本时,如何设置我的移位宽度以缩进两个空格?
How do I set my shift width to indent two spaces when scripting for python in MacVim?
这是我的 ~/.vimrc 文件。我的缩进适用于 vim,但不适用于 MacVim。每次我打开 MacVim 并尝试在 python 中编写脚本时,我都必须单击编辑 --> 文件设置 --> Shiftwidth --> 2
我需要对我的 ~/.vimrc 文件进行哪些更正?我什至考虑制作我的 ~/.vimrc 文件的精确副本并将其命名为 ~/.mvimrc.
1 set nocompatible
2
3 execute pathogen#infect()
4 syntax on
5 filetype plugin indent on
6 set noai ai
7 set nosi si
8 set nosta sta
9 set shiftwidth=2
10 set softtabstop=2
11 set ts=2
12 set expandtab
13 set number
14
15 set statusline+=%#warningmsg#
16 set statusline+=%{SyntasticStatuslineFlag()}
17 set statusline+=%*
18
19 let g:syntastic_always_populate_loc_list = 1
20 let g:syntastic_auto_loc_list = 1
21 let g:syntastic_check_on_open = 1
22 let g:syntastic_check_on_wq = 0
23
"~/.vimrc" [readonly] 31L, 589C
你的插件和其他设置是否在 macvim 中加载,或者它是否在完全检测你的 .vimrc 时遇到问题?如果完全找不到,您可能需要检查 this question 并查看是否可以修复它。如果它只发生在 python 上,是否有可能你有一个正在改变 shiftwidth 的插件?如果是这样,您可能需要考虑使用 after 来完成它。
如果你的 vimrc 正在加载,你可能想尝试这样做以将 shiftwidth 设置为 2 仅用于 python 文件...
您可以使用自动命令检测您正在编辑 .py 文件类型并更改 shiftwidth。
autocmd Filetype py setl shiftwidth=2
在那行上方,您可能需要输入:
filetype on
将这两个都放在你的 vimrc 中以使其工作。
不言自明,但只是为了说明它的作用,当它检测到 .py 文件时,它会将移位宽度设置为 2。Setl 是 shorthand 用于 setlocal(到缓冲区)。
过去,Python ftplugin 只处理 "generic" 问题,但最近的一次更新添加了缩进设置以强制执行 PEP8 合规性:
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
一种 clean 覆盖这些设置的方法是将以下行添加到 ~/.vim/after/ftplugin/python.vim
:
setlocal shiftwidth=2
setlocal softtabstop=2
关于您的一些评论 vimrc
:
set nocompatible generally useless, remove this line
set noai ai needlessly complex and ambiguous, use set autoindent
set nosi si smartindent is useless, remove this line
set nosta sta needlessly complex and ambiguous, use set smarttab
set ts=2 useless, 'tabstop' should be left at its default value
这是我的 ~/.vimrc 文件。我的缩进适用于 vim,但不适用于 MacVim。每次我打开 MacVim 并尝试在 python 中编写脚本时,我都必须单击编辑 --> 文件设置 --> Shiftwidth --> 2
我需要对我的 ~/.vimrc 文件进行哪些更正?我什至考虑制作我的 ~/.vimrc 文件的精确副本并将其命名为 ~/.mvimrc.
1 set nocompatible
2
3 execute pathogen#infect()
4 syntax on
5 filetype plugin indent on
6 set noai ai
7 set nosi si
8 set nosta sta
9 set shiftwidth=2
10 set softtabstop=2
11 set ts=2
12 set expandtab
13 set number
14
15 set statusline+=%#warningmsg#
16 set statusline+=%{SyntasticStatuslineFlag()}
17 set statusline+=%*
18
19 let g:syntastic_always_populate_loc_list = 1
20 let g:syntastic_auto_loc_list = 1
21 let g:syntastic_check_on_open = 1
22 let g:syntastic_check_on_wq = 0
23
"~/.vimrc" [readonly] 31L, 589C
你的插件和其他设置是否在 macvim 中加载,或者它是否在完全检测你的 .vimrc 时遇到问题?如果完全找不到,您可能需要检查 this question 并查看是否可以修复它。如果它只发生在 python 上,是否有可能你有一个正在改变 shiftwidth 的插件?如果是这样,您可能需要考虑使用 after 来完成它。 如果你的 vimrc 正在加载,你可能想尝试这样做以将 shiftwidth 设置为 2 仅用于 python 文件...
您可以使用自动命令检测您正在编辑 .py 文件类型并更改 shiftwidth。
autocmd Filetype py setl shiftwidth=2
在那行上方,您可能需要输入:
filetype on
将这两个都放在你的 vimrc 中以使其工作。
不言自明,但只是为了说明它的作用,当它检测到 .py 文件时,它会将移位宽度设置为 2。Setl 是 shorthand 用于 setlocal(到缓冲区)。
过去,Python ftplugin 只处理 "generic" 问题,但最近的一次更新添加了缩进设置以强制执行 PEP8 合规性:
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
一种 clean 覆盖这些设置的方法是将以下行添加到 ~/.vim/after/ftplugin/python.vim
:
setlocal shiftwidth=2
setlocal softtabstop=2
关于您的一些评论 vimrc
:
set nocompatible generally useless, remove this line
set noai ai needlessly complex and ambiguous, use set autoindent
set nosi si smartindent is useless, remove this line
set nosta sta needlessly complex and ambiguous, use set smarttab
set ts=2 useless, 'tabstop' should be left at its default value