Sto avendo problemi con l'interazione di Python con i commenti. Questi possono essere suddivisi in due numeri. Mi aspetto che siano imparentati, quindi li posterò entrambi qui.
Numero 1.
Quando si usa GQ per avvolgere automaticamente il codice Python dà il risultato sbagliato. Ad esempio, dato questo:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
# tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
# veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
# commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Selezionandolo e correndo GQ dà:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
# tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim #
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea #
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Al contrario, eseguire la stessa cosa in YAML o Coffee-script dà:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
# tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
# veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
# commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Ci si aspetterebbe che le regole dei commenti di Python rispettino gli stessi principi di Coffee-script o YAML o di altri che hanno #
commenti lineari
Numero 2.
L'avvio di un commento fa saltare il cursore all'inizio della riga, quando dovrebbe continuare alla profondità corrente.
Per esempio:
class Hello(object):
"""Something"""
# The comment starts here
# or worse
def hi(self):
# again, here
pass
Questo è contrario a ciò che viene esposto da PEP 8: blocco dei commenti - l'aggiunta di un commento dovrebbe indentare come segue:
class Hello(object):
"""Something"""
# The comment starts here
# or worse
def hi(self):
# again, here
pass
impostazioni
Sto usando il fantastico script Vundle, e i plugin che sto usando sono:
Bundle 'gmarik/vundle'
" navigation / display
Bundle 'kien/ctrlp.vim'
Bundle "tpope/vim-fugitive"
Bundle "ton/vim-bufsurf"
python import sys; sys.path.append("")
set rtp +=~/.vim/bundle/powerline/powerline/bindings/vim
Bundle 'Lokaltog/powerline'
Bundle 'nathanaelkane/vim-indent-guides'
Bundle 'altercation/vim-colors-solarized'
" syntax
Bundle 'jQuery'
Bundle 'kchmck/vim-coffee-script'
" Bundle 'scrooloose/syntastic'
Bundle 'Syntastic'
Bundle "groenewege/vim-less"
Bundle "skammer/vim-css-color"
Bundle "hail2u/vim-css3-syntax"
" Editing
Bundle 'AndrewRadev/splitjoin.vim'
Bundle 'tpope/vim-unimpaired'
Bundle 'rstacruz/sparkup.git'
Bundle 'klen/python-mode'
" Bundle 'sjl/gundo.vim'
Bundle 'mbbill/undotree'
" file-type based configs
filetype plugin indent on
Dal mio .vimrc
, ecco le impostazioni relative a Python:
let g:syntastic_python_checker = 'pyflakes'
let g:syntastic_python_flake8_args =
\ '--ignore=W191,E501,E121,E122,E123,E128,E225,W291'
let pymode_lint = 0
au FileType python setlocal expandtab shiftwidth=4 tabstop=8
\ formatoptions+=croq softtabstop=4 smartindent
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
let python_highlight_all=1
let python_highlight_exceptions=0
let python_highlight_builtins=0
Sommario
Dato che Python è un po 'più vecchio e maturo di YAML e Coffee-script, sono sorpreso e frustrato dal fatto che Vim stia producendo risultati sbagliati. Non è chiaro per me cosa potrebbe succedere - e sarei grato per qualsiasi pensiero e direzione. Certo che se lo capisco, posterò le mie conclusioni.
Nmove
, anche se i documenti dicono che lo è formatexpr
se definito, altrimenti formatprg
se definito, o altrimenti "fatto internamente".
au FileType python setlocal textwidth=79
)