qua*_*nta 5 python vim indentation
输入括号并回车后,下一行将有 8 个空格缩进:
print conn.generate_url(
seconds,
'GET',
Run Code Online (Sandbox Code Playgroud)
而不是 4:
print conn.generate_url(
seconds,
'GET',
Run Code Online (Sandbox Code Playgroud)
我的~/.vimrc:https : //github.com/quantonganh/salt-states/blob/master/vim/vimrc.jinja2
我错过了什么?
这是我的插件列表:
??? ctrlp.vim
??? gundo.vim
??? jedi-vim
??? nerdtree
??? powerline
??? salt-vim
??? supertab
??? syntastic
??? ultisnips
??? vim-fugitive
??? vim-indent-guides
??? vim-surround
??? vim-yankstack
??? vundle
Run Code Online (Sandbox Code Playgroud)
更新 2014 年 4 月 12 日星期六 10:00:55 ICT
我想知道:它是否遵循PEP8?
print conn.generate_url(
seconds,
'GET',
bucket,
key,
response_headers={
'response-content-type': 'application/octet-stream'
})
Run Code Online (Sandbox Code Playgroud)
连续行应该使用 Python 的隐式行在括号、方括号和大括号内连接,或使用悬挂缩进垂直对齐包裹的元素。使用悬挂缩进时,应考虑以下注意事项:第一行不应该有任何参数,并且应该使用进一步的缩进来清楚地将自己区分为续行。
在一个函数中,我们会有一些东西可以用连续线来区分,但这里只是一个print,应该是 4 个还是 8 个空格?
什么是 PEP8 的 E128:为了视觉缩进而缩进不足的续行?
更新 2014 年 4 月 12 日星期六 23:09:27 ICT
看起来jedi-vim对 Python 的缩进没有任何作用。所以我的问题应该改为:
定义函数时,在括号后的下一行添加8个空格(2个缩进级别)是可以的:
# More indentation included to distinguish this from the rest.
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
Run Code Online (Sandbox Code Playgroud)
但我只想在调用它时添加 4 个空格(一个缩进级别):
# Extra indentation is not necessary.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
小智 1
正如您所提到的,PEP8 关于缩进的章节建议在参数之前添加两个缩进级别而不是一个缩进级别(当第一行没有缩进级别时),以将其与其余部分区分开来。
但它还补充说,在不需要额外缩进的情况下,它就变得可选。你的编辑决定添加它,但根据 PEP8,你有选择。