Frage

Ich habe Vim 7 (erweitert) auf CentOS 5, und es kommt mit allen üblichen Vim Plugins / Scripts bereit zu gehen.

$ 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

Ich würde denken, dass, wenn eine Datei mit der Endung .py (vim file.py) öffnen würde es automatisch diese Plugins laden, aber ich bin nicht sicher, ob das der Fall ist. Was ich will, ist:

Drücken Sie TAB und vier Räume erhalten. Auto indent nächste Zeile für Suiten, conditionals, etc.

Ich habe diese Arbeit durch explizites Setzen tabstop, Einrückungstiefe usw. in meiner .vimrc Datei. Ist das nicht das, was die oben Python Dateien sind für? Warum habe ich diese Dinge in meinem .vimrc setzen? Wie kann ich diese Funktionen von der Vim bekommen Plugins statt?

Aktuelle .vimrc:

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
War es hilfreich?

Lösung

Einstellung tabstop, Einrückungstiefe, etc ... in Ihrem vimrc korrekt ist. Diese stellen Sie Ihre globalen Einstellungen sowie dienen als Parameter an die Datei des Typs spezifische Vertiefung Unterstützung.

Der Sprache Einzug Plugins verwenden, um diese Einstellungen, aber in der Regel auch einen Einzug Ausdruck (:he inde) geeignet für die Sprache festgelegt. So soll der Python Eindringkörpers automatisch nach einer Blocköffnung Anweisung Einrücken sein (def, Klasse, für ...) und dedenting nach einem Schließen eines (Return, Pass, weiter ...) und dabei gemäß der ts, sw, ... Sie eingestellt haben.

Wenn Sie noch unsicher sind, ob das Plugin für einen Puffer geladen werden, einfach nicht :filetype die Erkennung zu zeigen, Plugin, und indent Einstellungen und :set ft? die erfasste Art zu sehen.

Andere Tipps

Mein Verständnis ist, dass die python.vim Datei möglicherweise nur eine Syntax-Hervorhebung Datei ist, weil Python-Dateien können mehrere Wege eingerückt werden. PEP8 schreibt vor vier Räume, aber Legacy-Dateien anders sein könnte Registerkarten einschließlich der Verwendung von .

Einige unserer Legacy-Python-Dateien verwenden tatsächlich zwei Räume pro Vertiefung. Also lasse ich Python zu Vim Einrücken und konfigurieren Sie es pro Datei und pro Dateityp. Die folgende Zeile in .vimrc gibt mir Python-spezifischen Einstellungen, die von dem abweichen, sagen mein XML, XHTML und HTML (zwei Räume).

au FileType python setl shiftwidth=4 tabstop=4

Sie können auch bestimmte Einstellungen von Datei mit einer Modeline gesetzt, was sehr praktisch ist, wenn Sie tun haben Legacy-Dateien.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top