Einrücken einer X-Anzahl von Zeilen in vim

Einrücken einer X-Anzahl von Zeilen in vim

Ich habe kürzlich für einen Job in Java programmiert und mir ist aufgefallen, dass ich etwas Code schreibe und dann feststelle, dass ich den Code in einen Try/Catch-Block einschließen muss.

Ich bin einfach an den Anfang einer Zeile gegangen und habe einen Tabulator hinzugefügt.

0 i <tab> <esc> k (repeat process until at beginning or end of block)

Die ersten drei oder vier Male, als ich Einrückungen vornehmen musste, war das kein Problem, aber mittlerweile ist es einfach nur mühsam, und ich bin ein fauler Mensch.

Gibt es eine einfachere Möglichkeit, dieses Problem zu lösen?

Antwort1

ShiftEine andere Möglichkeit besteht darin, die Zeilen mit + auszuwählen V, wie Ignacio vorschlägt, und dann >(Größer-als-Zeichen) zu drücken. Dadurch wird ein Einzug entsprechend Ihren Einzugseinstellungen (Shiftwidth, Expandtab usw.) vorgenommen.

Sie können auch mehr als eine Ebene einrücken mitNummer>, zB 2>um zwei Ebenen einzurücken.

Wenn Vim schließlich den Dateityp erkennt (Typ :set filetype?, es sollte drucken filetype=java), können Sie wie oben jeden Code auswählen und drücken =, und es wird die Einrückung gemäß den Regeln für diesen Dateityp korrigieren.

Antwort2

Verwenden Sie den visuellen ( V) oder visuellen Zeilenmodus ( ShiftV), um die einzurückenden Zeilen auszuwählen, drücken Sie :und geben Sie dann die Eingabetaste ein s/^/CtrlVTab/.

Antwort3

Eine andere Möglichkeit:
CTRL+ v(dadurch wird der visuelle Blockmodus gestartet)
x joder x k(wobei x die Anzahl der Zeilen nach unten oder oben darstellt)
>(auch bekannt als shift+ .)

Dies unterscheidet sich nicht sehr von den obigen Antworten, führt aber den Blockmodus ein, der sich zum Bearbeiten mehrerer Zeilen sehr gut eignet.

Antwort4

Vim ist viel intelligenter als die anderen Antworten vermuten lassen: Es ist in der Lage, einen Codebereich automatisch neu einzurücken. Normalerweise innerhalb einesversuchenBlock müssen Sie nur Folgendes eingeben – eigentlich funktioniert dies von jedem Block mit =i{geschweiften Klammern aus. Und das ist alles ... solange Ihre Einrückungsoptionen ( cindent,,, ) Ihren Anforderungen und Wünschen entsprechend richtig eingestellt sind.expandtabsw

Der nächste Schritt wäre, eine Zuordnung zu verwenden, die weiß, wie jede Gruppe ausgewählter Zeilen mit IhremversuchenBlock (und der nicht vergisst, am Ende des Vorgangs erneut einzurücken). Ich habe so etwasfür C++, es wäre nicht zu komplex, es an Java anzupassen. (EsNurerfordert zwei weitere Bibliotheks-Plugins:lh-vim-libUndlh-map-tools.)

verwandte Informationen