tecla jump how python vim pep8 auto-indent

python - jump - Vim: ¿cómo sangría a una paren abierta o un corchete al presionar enter?



string jump line python (2)

He estado programando Python con Vim por un tiempo, pero una cosa que no he podido descifrar cómo hacerlo es establecer la sangría automática al nivel de la última página abierta.

De acuerdo con pep8 si tienes un paréntesis abierto y necesitas romper la línea para caber en 80 columnas, entonces se supone que debes continuar con la siguiente línea en ese paréntesis abierto. Ejemplo:

calling_some_really_long_function(that, has, way, too, many, arguments, to, fit, on, one, line)

Obviamente, este es un ejemplo loco, pero así es como se supone que debes romper tus líneas en Python.

Lo que realmente me gustaría poder hacer es configurar Vim para que, cuando escriba " fit,<cr> y coloque el cursor en la siguiente línea justo a la derecha de la página abierta, así que puedo escribir on, etc. en lugar de alguna combinación de teclas <tab> y <space> antemano.

No creo que alguna vez confíe en el formateador automático del código python en Vim, sino en puntos de bonificación si eso también funciona.


Esto se puede refinar un poco, pero debería funcionar el 99% del tiempo. Agregue esto en su .vimrc:

function! PythonEnterFunc() let l:li = getline(''.'') execute "normal! a/<Cr>" if l:li =~ ''([^)]*$'' let l:pos = stridx(l:li, ''('') + 1 for i in range(l:pos) execute "normal! a/<Space>" endfor endif endfunction au FileType python inoremap <Cr> <Esc>:call PythonEnterFunc()<CR>a


Usa gq , ya sea en toda la selección con un bloque VISUAL, o con un movimiento, como gqq o gqj