2009-10-07 14 views
21

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 ...

+1

"gehört auf superuser.com" vielleicht? Ich bin nicht sicher ... –

+7

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 –

Antwort

20

Sie können einen Absatz mit y} zerren. Dies wird jedoch nicht alle Methoden zerstören, wenn Sie eine Leerzeile haben.

+5

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

4

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.

3

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 :)

+2

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 :) –

+0

die visuelle Auswahl ist auch sehr nützlich für Einrücken/dedenting Blöcke mit> und < –

3
  1. Sehlinie Auswahl Geben Sie durch ‚V‘ drücken
  2. Bei der Auswahl der Block pres ‚y‘ fertig
  3. Fügen Sie ihn irgendwo mit ‚p 'oder ‚P‘
3

Sie eine Suche mit yank kombinieren, so dass, wenn Ihre Funktion mit return retval endet Sie y/return retval

6

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 ...

+3

Groß für eine C-Sprache. Ich denke, die Frage war jedoch spezifisch für Python. – bluehavana

+2

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. –

1

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.

6

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.

0

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.

0
  1. In .py Datei drücken Esc
  2. Press shift V Sichtlinienbetrieb mit
  3. Highlight eingeben nach oben und unten Pfeiltasten
  4. Drücken d die ausgewählten Zeilen
  5. Gehen Sie auf die Zeile löschen Sie mögen, dass die Linien platzieren und p drücken nach einer Zeilenleitung einzufügen oder shift P vor einer Reihe
einzufügen drücken

Hoffe, dass hilft.

Verwandte Themen