Ich brauche eine Bewegung, die sich zum Ende / Anfang eines Python-Blocks bewegt, und ich brauche eine andere Bewegung, die sich zum Anfang / Ende der vorherigen / nächsten Methode / Klasse (alle Kombinationen) bewegt.
Ich habe vim-indent-object, python-mode, chapa, vim-python-object usw. ausprobiert. Keines von ihnen unterstützt das Ende des Blocks, und keines von ihnen unterstützt alle Kombinationen der obigen Bewegungen.
Ich erinnere mich, dass ich einmal ein Plugin hatte, das bereitgestellt ]]
wurde [[
, ][
und []
Anträge für den Beginn / das Ende der vorherigen / nächsten Methode / Klasse, aber ich kann es nicht in meinem eingesteckten Verzeichnis finden (gesucht "] [" und "[]"). in meinem eingesteckten Verzeichnis und analysierte alle Vorkommen, fand aber nichts, was "] [" oder "[]" definiert.
Kennen Sie das Plugin, das ich verwendet habe? Kennen Sie ein Plugin, das diese Funktionalität bietet?
quelle
[[
und]]
werden vom Standard-Python-FTP-Plugin bereitgestellt.[[
,]]
,(
,)
,{
und}
.[[
und]]
sind in einigen Fällen nützlich, aber mein Hauptproblem ist, dass ich[]
und][
oder so etwas brauche , was Sprünge zum Ende der nächsten / vorherigen Methode / Klasse bietet.]e
löst die meisten meiner Probleme, aber einige Zuordnungen in diesem Plugin scheinen kaputt zu sein,]v
oder]>
ich werde versuchen, sie in einer Gabel zu reparieren und zu veröffentlichen. Obwohl ich mich immer noch frage, was das Plugin war, das bereitgestellt wurde][
und[]
es war wirklich nützlich.Antworten:
Mit dem letzten Update (Nov 2017)
$VIMRUNTIME/ftplugin/python.vim
sind nun folgende ft-spezifische Bewegungen für die Python-Sprache verfügbar[[
Zum Anfang der aktuellen / vorherigen obersten Ebene zurückspringen[]
Springe zurück zum Ende des vorherigen Toplevels][
Vorwärtsspringen zum Ende der aktuellen obersten Ebene]]
Vorwärts springen, um mit dem nächsten Toplevel zu beginnen[m
Zurückspringen, um mit der aktuellen / vorherigen Methode / dem aktuellen Bereich zu beginnen[M
Zurückspringen zum Ende der vorherigen Methode / des vorherigen Bereichs]M
Vorwärtsspringen zum Ende der aktuellen / nächsten Methode / des nächsten Bereichs]m
Vorwärts springen, um mit der nächsten Methode / dem nächsten Bereich zu beginnenBeispiel Python-Datei
Dieses Update sollte enthalten sein, wenn Ihr VIM-Patch-Level mindestens ist
8.0.1256
.Wenn Sie nicht aktualisieren können, aber diese Funktionalität verwenden möchten, können Sie die neueste Version in das
~/.vim
Verzeichnis installieren :Plugin Pythonsense
Dieses Plugin bietet ähnliche Bewegungen, jedoch leicht modifiziert:
Alle Details und Beispiele finden Sie unter https://github.com/jeetsukumaran/vim-pythonsense#stock-vim-vs-pythonsense-motions .
quelle
curl https://raw.githubusercontent.com/vim/vim/master/runtime/ftplugin/python.vim --create-dirs -o ~/.config/nvim/ftplugin/python.vim
.