Ist es möglich, einen ganzen Block von Python-Code in Vim zu ziehen?Wie man einen ganzen Block in Vim reißt?
Sei es einen def
, for
, if
usw. Block ...
Ist es möglich, einen ganzen Block von Python-Code in Vim zu ziehen?Wie man einen ganzen Block in Vim reißt?
Sei es einen def
, for
, if
usw. Block ...
Sie können einen Absatz mit y}
zerren. Dies wird jedoch nicht alle Methoden zerstören, wenn Sie eine Leerzeile haben.
Sie können Strg-v und y} verwenden, um zu sehen, welche Zeilen gezogen werden. Sie können} drücken, wenn Sie Ihren Block abdecken möchten. Diese – noomz
Es gibt ein Vim-Add-On-Skript python_fn.vim, das als eine seiner Funktionen eine Tastenbindung zur visuellen Auswahl eines Blocks aus Python-Code unter Verwendung von ]v
enthält. Du könntest es dann mit y
wie gewohnt zerren.
Normalerweise verwende ich nur visuellen Block-Modus. Shift-V, bewegen und "y" den markierten Block. Es gibt nur so viele Abkürzungen ich auf einmal im Speicher halten kann :)
ist das, was ich auch in der Regel tun, ich glaube nicht, es ist die beste Art und Weise, aber es ist leicht genug, um mit einer Gehirnzelle zu tun :) –
die visuelle Auswahl ist auch sehr nützlich für Einrücken/dedenting Blöcke mit> und < –
Sie eine Suche mit yank kombinieren, so dass, wenn Ihre Funktion mit return retval
endet Sie y/return retval
geben können wenn Sie alles zerren wollen außer Verwenden Sie {
yi{
(oder yi}
). Wenn Sie die geschweiften Klammern verwenden möchten, verwenden Sie ya{
(oder ya}
).
Die i
und a
Modifikatoren bedeuten in und alle.
Um ein Wort, egal wo im Wort zerren Sie sind: yi)
;: yiw
Um den Inhalt der Klammern zu zerren wenn Sie sie aufnehmen möchten, verwenden Sie ya(
Sie können das gleiche tun für "
oder '
mit yi"
, ya"
oder yi'
und ya'
.
Natürlich sind Sie nicht auf Yanking beschränkt. Sie können ein Wort mit diw
löschen oder ändern mit ciw
, etc ... etc ...
Groß für eine C-Sprache. Ich denke, die Frage war jedoch spezifisch für Python. – bluehavana
Es gibt auch 'p', um den aktuellen Absatz zu ziehen (das ist alles, was durch Leerzeilen oberhalb von unten getrennt ist). 'yip' reißt den ganzen Absatz und' yap' zerrt den gesamten Absatz + die folgende Leerzeile. Dies ist nützlich, wenn sich der Cursor bereits innerhalb des Absatzes befindet, den Sie ziehen möchten. –
Ich habe ein Plugin spacebox benannt, hat eine Visual Auswahl aller Linien mit der gleichen oder mehr Einbuchtung als die aktuellen Zeile.
Mit Python Leerzeichen ist so, wie es ist, könnten Sie den Cursor auf die Zeile unter def
oder if
legen und geben Sie den Befehl :SpaceBox
Ihre „Block“ zu wählen.
Die hervorragende Add-on-Suite Python-mode enthält einige key commands zum Navigieren in Klassen, Methoden und Funktionsblöcken.
Um eine Methode zu zerren: yaM (innere Methode: yiM)
eine Klasse heftig zu ziehen: yaC
Es gibt viele weitere nützliche Bewegungen, wie von Funktion zu Funktion bewegt (]]). Siehe die complete list of keys für mehr.
falten Sie einfach die Klasse za verwenden und dann mit visuellem Modus (V) die kollabierte Klasse auszuwählen. Auf diese Weise müssen Sie nicht zu viel scrollen. Dann reiß dich einfach mit y. Wenn du fertig bist zieh die Klasse wieder mit za aus.
Esc
shift V
Sichtlinienbetrieb mitd
die ausgewählten Zeilenp
drücken nach einer Zeilenleitung einzufügen oder shift P
vor einer ReiheHoffe, dass hilft.
vim-indent-object funktioniert ziemlich gut. Einen Versuch wert.
"gehört auf superuser.com" vielleicht? Ich bin nicht sicher ... –
nicht einverstanden sind, ist dies über die Verwendung eines Software-Tools in einem bestimmten Entwicklungsprozess (Codierung Python), siehe http://meta.stackexchange.com/questions/12373/which- Programmierarten-bezogene Fragen-sind-angemessen/12378 # 12378 –