Ich habe einen Text wie den folgenden in einer Datei:
sample text
some random text
even more random text
text with no indent
worst indention
Ich muss den leeren Raum vor jeder Zeile löschen. Für eine Zeile mache ich
0dw
Ich kann den gleichen Befehl mit wiederholen. aber durch manuelles Navigieren zu den nächsten Zeilen.
Aber gibt es eine Möglichkeit, '0dw' auf diesen Zeilenblock anzuwenden?
Ich nehme an, es gibt eine Möglichkeit, Makros zu verwenden, aber ich habe sie noch nicht verwendet. Aber ich bin bereit, sie zu lernen, wenn es keine andere Wahl gibt.
text-processing
vim
saiy2k
quelle
quelle
Antworten:
Weitere Informationen finden Sie hier unter http://vim.wikia.com/wiki/Remove_unwanted_spaces
Wenn Sie dies für einen bestimmten Zeilenbereich tun möchten:
Übrigens: Der beste Weg, um mit dem Erlernen von Vim zu beginnen, besteht darin, einen
vimtutor
Befehl auszuführen. Hier erfahren Sie, wie Sie Vim im Vim-Editor verwenden.quelle
V
indem Sie den Cursor verwenden und bewegen, um die Zeilenauswahl zu erweitern. Drücken Sie dann,:
um automatisch einzugeben'<,'>
, und von da an können Sie Nikhils regulären Ausdruck verwenden.:'a,'bs/^\s\+//
.Eine alternative Möglichkeit hierfür ist die Verwendung der Einrückungswerkzeuge von VIM (normalerweise an </ gebunden >). Zuerst müssen Sie angeben, welche Linien betroffen sein werden. Sie können den visuellen Auswahlmodus oder ein anderes Mittel verwenden, um einen Bereich von Linien anzugeben, die betroffen sein sollen, und dann eine beliebig hohe Anzahl oder Einrückungsstufen zum Entfernen verwenden.
9<
Normalerweise ist der Trick recht gut, um mindestens 9 Ebenen möglicher Einrückungen (Tabulatoren / Leerzeichen) aus den aktuellen Zeilen zu entfernen.quelle
Ich habe einen Ansatz, um dies in den folgenden einfachen Schritten zu tun:
Erklärung des dritten Schritts:
0
navigiert zum Zeilenanfang.dw
löscht das Wort (Leerzeichen).normal
wendet den Befehl an0dw
.'<,'>
Wiederholt den Normalwert für alle ausgewählten Zeilen im visuellen Modus.quelle
ctrl+v
ermöglicht es Ihnen, etwas Ähnliches zu tun, was Sie wollen, aber nicht genau. Sie können einen visuellen Block auswählen und einen Befehl auf das Los anwenden.quelle
:normal
ist das Wichtigste hier und ich denke, es ist die beste Antwort hier. Könnten Sie es als Antwort posten?