Question

Je 7 Vim (amélioré) sur CentOS 5, et est livré avec tous les plugins / scripts habituels Vim prêt à partir.

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

Je pense que l'ouverture d'un fichier se terminant par .py (vim file.py), il charge automatiquement ces plug-ins, mais je ne suis pas sûr que ce soit le cas. Ce que je veux est:

Appuyez sur TAB et recevoir quatre espaces. tiret automatique ligne suivante pour les suites, conditionals, etc.

J'ai ce travail en mettant explicitement tabstop, shiftwidth, etc. dans mon fichier vimrc. Est-ce pas ce que les fichiers ci-dessus Python sont pour? Pourquoi dois-je mettre ces choses dans mon .vimrc? Comment puis-je obtenir ces fonctionnalités du plug-ins au lieu Vim?

Vimrc actuelle:

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
Était-ce utile?

La solution

Réglage tabstop, shiftwidth, etc ... dans votre vimrc est correcte. Ces définir vos paramètres globaux, ainsi que servir de paramètres à l'aide d'indentation spécifique à filetype.

Les plug-ins d'indentation de langue utilisent ces paramètres, mais mis généralement aussi une expression tiret (:he inde) correspondant à la langue. Ainsi, le pénétrateur Python doit être automatiquement après une indenter déclaration d'ouverture de bloc (def, classe, pour ...), et dedenting après une fermeture d'un (retour, passer, continuer ...) et ce, selon le ts, sw, ... vous avez défini.

Si vous ne savez toujours pas si le plug-in est en charge pour un tampon, il suffit de ne :filetype pour montrer la détection, plug-in, et les paramètres tiret et :set ft? pour voir le type détecté.

Autres conseils

Ma compréhension est que le fichier python.vim est juste un fichier syntaxe peut mettre en évidence, car les fichiers Python peuvent être indentées de multiples façons. pep8 prescrit quatre espaces, mais les fichiers existants peuvent être différents, y compris l'utilisation des onglets .

Certains de nos fichiers Python existants utilisent en fait deux espaces par tiret. Je laisse donc Python à indenter Vim et le configurer par fichier et par type de fichier. La ligne suivante dans Vimrc me donne des paramètres spécifiques à Python qui diffèrent de dire mon xml, xhtml, html et (deux espaces).

au FileType python setl shiftwidth=4 tabstop=4

Vous pouvez également définir des paramètres spécifiques par fichier avec un modeline qui est pratique si vous faites avoir des fichiers existants.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top