Antworten:
In vim können Sie zunächst :(Doppelpunkt) eingeben und dann helfen help
, :help
um eine Liste mit Selbsthilfethemen zu erhalten, einschließlich eines kurzen Tutorials. Bewegen Sie den Mauszeiger in der Themenliste über das gewünschte Thema und drücken Sie. ctrl]Das Thema wird geöffnet.
Ein guter Ausgangspunkt für Sie wäre das Thema
|usr_07.txt| Editing more than one file
Ok, weiter zu deiner Antwort.
Nachdem Sie vim mit einer Liste von Dateien gestartet haben, können Sie durch Eingabe von :next
oder :n
kurz zur nächsten Datei wechseln .
:wnext
steht für "Aktuelle Änderungen schreiben" und "Zur nächsten Datei wechseln".
Es gibt auch eine analoge :previous
, :wprevious
und :Next
. (Beachten Sie, dass :p
es sich um eine Abkürzung für handelt :print
. Die Abkürzung für :previous
ist :prev
oder :N
.)
Um zu sehen, wo Sie sich in der Dateiliste befinden, geben Sie ein :args
und die aktuell bearbeitete Datei wird in []
(Klammern) angezeigt.
Beispiel:
vim foo.txt bar.txt
:args
Ergebnis:
[foo.txt] bar.txt
Sie können eine andere Datei öffnen, während vim geöffnet ist, :tabe filename
und zu der anderen Datei wechseln, die Sie eingeben, :tabn
oder :tabp
für die nächste und vorherige entsprechend.
Mit den Tastenkombinationen gT und gt können Sie auch zwischen Registerkarten wechseln, wenn Sie sich nicht im Bearbeitungsmodus befinden (dh nicht im Einfüge-, Ersetzungsmodus usw.). Auf einigen Systemen Ctrl+ Alt+ Page Upund Ctrl+ Alt+ Page Downauch Tabula umschichten, aber das funktioniert nicht immer (zum Beispiel, wird es in dem O X - Terminal nicht funktioniert ‚out of the box‘).
Und Sie können den Dateinamen oben in der vim-App sehen.
vim -p file1 file2
:argadd filename
und dann :next
dorthin. Ebenso können Sie verwenden :argdel filename
, um eine der Dateien in Bearbeitung zu entfernen.
Befehle zum Wechseln zwischen Puffern:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:bw # Close file.
:help buffer
um weitere Informationen zu finden
Um zu wissen , Dateiname Verwendung Ctrl+ G, :file
oder:f
:bw
Datei schließen haha. Vergessen Sie nicht, die Hilfe zu lesen, in der :bw
steht, dass Sie sie nur verwenden sollten, wenn Sie wissen, was Sie tun. Es ist keine große Sache, aber es sei denn, Sie möchten alle Markierungen und Informationen über die Datei löschen, besser verwenden :bd
oder :q
wie ein normaler Mensch
:bw
Fall, dass Sie neugierig sind: vi.stackexchange.com/questions/2212/…
Eine andere Möglichkeit, abgesehen von den gegebenen Antworten, besteht darin, das Fenster zu teilen mit:
:sp
:vsp
:vsp
ist für vertikale Teilung. Verwenden Sie dann Ctrl+W <ARROW_KEYS>
, um sich in Fenstern zu bewegen.
:vs
anstelle von:vsp
Ctrl+W, v
für vertikales und Ctrl+W, s
horizontales Teilen.
CTRL+W
seit Jahren und in letzter Zeit bearbeite ich viele VIs auf Webseiten. Jedes Mal tippe ich den Befehl ohne nachzudenken und ... whammmm ... der Browser-Tab ist GEGANGEN! Ich vergesse immer wieder. Ich muss wirklich eine neue Verknüpfung lernen.
Ich habe beim Superuser eine ähnliche Frage gestellt.
Die Antwort auf meine Frage war, dass Sie nicht können, aber Sie können mit dem :split
Befehl von VIM zwei Dateien in einem Bash-Fenster öffnen :
$ vim file1
, öffnen Sie eine zweite Datei in VIM mit dem :split file2
Befehl.$ vim -o file1 file2
aus Bash.:q
beendet wird und das :q!
Beenden erzwungen wird.Meine Bash ist schwarz und weiß, daher wird der Dateiname jedes Bildschirms als umgekehrte "ausgewählte" Zeile mit dem dort angegebenen Dateinamen dargestellt.
Woot!
Ich finde, die bequemste Methode zum Bearbeiten mehrerer Dateien ist die Verwendung von Registerkarten. Sie können mehrere Dateien in separaten Registerkarten über die Befehlszeile wie folgt öffnen:
vim -p file1.txt file2.txt
Wenn Sie bereits vim geöffnet haben, können Sie eine neue Datei in einem neuen Tab wie folgt öffnen:
:tabe file2.txt
Sobald Sie die Registerkarten geöffnet haben, können Sie gt
mit die nächste und gT
die vorherige Registerkarte anzeigen.
Sie können auch zum ersten Tab mit 1gt
, zum zweiten Tab mit 2gt
usw. springen .
Sie können Registerkarten mit schließen :tabc
Schließlich können Sie die aktuelle Registerkarte an die n
Stelle verschieben, :ntabm
an der n
eine beliebige Zahl größer oder gleich ist 0
.
Es gibt viele Möglichkeiten, dies zu tun. Der erste, vielleicht weniger bequeme Schritt besteht darin vim
, die zu bearbeitenden Dateien aufzurufen. Erstellen Sie:
vim first_file second_file ...
Es ruft die zwei Dateien in zwei Puffern auf. Verwenden Sie :n
und, um von einer Datei zu einer anderen zu wechseln :N
. Um die Dateien aufzulisten, die Sie gerade bearbeiten, :args
erledigen Sie die Aufgabe. :help buffer
wird Ihnen dabei weiterhelfen.
Dies sollte Ihre Frage beantworten. Aber hier sind weitere Informationen:
Sie können Ihre Dateien auf bequemere Weise bearbeiten, indem Sie den Konsolenbildschirm mit vim aufteilen . Öffnen Sie dazu zwei Frames mit :split
( :sp
) oder :vsplit
( :vs
), während Sie vim verwenden . Navigieren Sie dann mit der Kombination Ctrl+ W> Ctrl+ in diesen Frames W. Sie können auch verwenden Ctrl+ W+ auf den Pfeil oder den Schlüssel ( H, J, Koder L) zum nächsten Bild entspricht. Wenn dies erledigt ist, bearbeiten Sie die gewünschte Datei mit :e file_name
. :help opening-window
wird Ihnen dabei weiterhelfen.
Wenn Sie nun die Unterschiede zwischen den Dateien sehen möchten , verwenden Sie das -d
Argument oder rufen Sie das Programm vimdiff mit den entsprechenden Dateien auf (es ist dasselbe). :help diff
wird Ihnen dabei weiterhelfen.
vim -d first_file second_file ...
Bitte lassen Sie mich wissen, wenn Sie ein Problem haben.
Ich verwende gerne geteilte Fenster - sowohl horizontale als auch vertikale -, um mehrere Dateien zu bearbeiten.
Ich benutze tmux, um diese Fenster einfacher zu verwalten
https://tmux.github.io/ "Was ist ein Terminalmultiplexer? Mit ihm können Sie problemlos zwischen mehreren Programmen in einem Terminal wechseln, diese trennen (sie laufen im Hintergrund weiter) und sie erneut einem anderen Terminal zuordnen. Und a viel mehr. Siehe das Handbuch. "
Beispiel: Anzeigen von Dateien oder Ausführen von Tests auf der rechten Seite, Bearbeiten von Test- und Quelldateien auf der linken Seite:
:e #(filename)
um zwischen zwei geöffneten Dateien zu wechseln
:p
für vorherige Datei
:n
für die nächste Datei