Odpowiedzi:
Przede wszystkim w vimie możesz wpisać :(dwukropek), a następnie pomóc help, :helpmiędzy innymi listę tematów samopomocy, w tym krótki samouczek. Na liście tematów najedź kursorem na interesujący cię temat, a następnie naciśnij ctrl]i ten temat zostanie otwarty.
Dobrym miejscem na rozpoczęcie będzie temat
|usr_07.txt| Editing more than one file
Ok, na twoją odpowiedź.
Po uruchomieniu vima z listą plików, możesz przejść do następnego pliku, wpisując :nextlub :nw skrócie.
:wnextjest skrótem od zapisu bieżących zmian, a następnie przejścia do następnego pliku.
Jest też analogiczne :previous, :wpreviousa :Next. (Zauważ, że :pjest skrótem dla :print. Skrótem dla :previousjest :prevlub :N.)
Aby zobaczyć, gdzie jesteś na liście plików, wpisz, :argsa aktualnie edytowany plik pojawi się w [](nawiasach).
Przykład:
vim foo.txt bar.txt
:args
wynik:
[foo.txt] bar.txt
możesz otworzyć inny plik, gdy vim jest otwarty za pomocą :tabe filenamei, aby przejść do innego wpisanego pliku :tabnlub odpowiednio :tabpdla następnego i poprzedniego.
Skróty klawiaturowe gT i gt mogą być również używane do przełączania kart, gdy nie jesteś w trybie edycji (tj. Nie jesteś w trybie wstawiania, zastępowania itp.). W niektórych systemach Ctrl+ Alt+ Page Upi Ctrl+ Alt+ Page Downrównież pozwalają na przełączanie kart, ale to nie zawsze działa (na przykład nie będzie działać w terminalu OS X „od razu po wyjęciu z pudełka”).
Możesz zobaczyć nazwę pliku na górze aplikacji vim.
vim -p file1 file2
:argadd filenamea następnie :nextdo niego. Podobnie możesz użyć :argdel filenamedo usunięcia jednego z plików w edycji.
Polecenia do przełączania między buforami:
: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 aby znaleźć więcej informacji
Aby dowiedzieć się użycie nazwy pliku Ctrl+ G, :filelub:f
:bwzamknij plik haha. Nie zapomnij przeczytać pomocy, w :bwktórej znajduje się informacja, że powinieneś jej używać tylko wtedy, gdy wiesz, co robisz. To nie jest wielka sprawa, ale jeśli nie chcesz wymazać wszystkich znaków i informacji o pliku, lepiej wykorzystaj :bdlub :qjak normalna osoba
:bwjeśli jesteś ciekawy: vi.stackexchange.com/questions/2212/…
Inną opcją oprócz podanych odpowiedzi jest podzielenie okna za pomocą:
:sp
:vsp
:vspsłuży do podziału pionowego. Następnie użyj, Ctrl+W <ARROW_KEYS>aby poruszać się w oknach.
:vszamiast:vsp
Ctrl+W, vdla podziału pionowego i Ctrl+W, spoziomego.
CTRL+Wod lat, a ostatnio wykonuję wiele edycji VI na stronach internetowych. Za każdym razem wpisuję polecenie, nawet nie zastanawiając się i ... whammmm ... karta przeglądarki ZNIKAŁA! Ciągle zapominam. Naprawdę muszę nauczyć się nowego skrótu.
Podobne pytanie zadałem superużytkownikowi,
„Jak kopiować i wklejać między różnymi oknami bash i plikami otwartymi za pomocą VI?”
Odpowiedź na moje pytanie brzmiała: nie możesz, ale możesz otworzyć dwa pliki w jednym oknie bash za pomocą :splitpolecenia VIM :
$ vim file1, otwórz drugi plik w VIM za pomocą :split file2polecenia.$ vim -o file1 file2z bash.:qwychodzi i :q!wymusza wyjście.Mój bash jest czarno-biały, więc nazwa każdego ekranu jest stylizowana jako odwrócona „wybrana” linia z cytowaną tam nazwą pliku.
Woot!
Uważam, że najwygodniejszą metodą edycji wielu plików jest użycie kart. Możesz otworzyć wiele plików na osobnych kartach za pomocą wiersza poleceń, tak jak poniżej:
vim -p file1.txt file2.txt
Lub jeśli masz już otwarty vim, możesz otworzyć nowy plik w nowej karcie w następujący sposób:
:tabe file2.txt
Po otwarciu kart użyj, gtaby wyświetlić następną kartę i gTaby wyświetlić poprzednią kartę.
Możesz także przejść do pierwszej karty za pomocą 1gt, drugiej karty za pomocą 2gtitp.
Możesz zamykać karty za pomocą :tabc
Na koniec możesz przenieść bieżącą kartę do nlokalizacji, w :ntabmktórej ndowolna liczba jest większa lub równa 0.
argadd a/b c/d e/f
argadd ...doda wszystkie pliki do argumentów, a także do :ls/ :buffersi pozwoli ci je edytować.
Zobacz :h arglsiti :h argedit&:h argsd
Ponadto możesz wykonywać określone działania tylko na argsach za pomocą :argdo ...i możesz zacząć od nowa z argumentami, wykonując :argsd*.
Jest na to wiele sposobów. Pierwszym, może mniej wygodnym, jest wywołanie vimz plikami, które chcesz edytować - utwórz:
vim first_file second_file ...
Wywołuje dwa pliki w dwóch buforach. Aby przełączyć się z pliku na inny, użyj :ni :N. Aby wyświetlić listę edytowanych plików, :argswykona zadanie. :help bufferpomoże ci w tym więcej.
To powinno odpowiedzieć na twoje pytanie. Ale oto więcej informacji:
Istnieje sposób na edycję plików w wygodniejszy sposób, dzieląc ekran konsoli za pomocą vima . Aby to zrobić, otwórz dwie ramki za pomocą :split( :sp) lub :vsplit( :vs) podczas używania vima . Następnie nawiguj w tych ramkach, używając kombinacji Ctrl+ W> Ctrl+ W. Można również użyć Ctrl+ W+ strzałkę lub klawisza ( H, J, Klub L) odpowiedni do następnej klatki. Po zakończeniu edytuj plik, który chcesz :e file_name. :help opening-windowpomoże ci w tym więcej.
Teraz, jeśli chcesz zobaczyć różnice między plikami, użyj -dargumentu lub wywołaj program vimdiff (jest taki sam) z odpowiednimi plikami. :help diffpomoże ci w tym więcej.
vim -d first_file second_file ...
Daj mi znać, jeśli masz jakiś problem.
Lubię używać podzielonych okien - poziomych i pionowych - do edycji wielu plików.
Używam tmux do łatwiejszego zarządzania tymi oknami
https://tmux.github.io/ "Co to jest multiplekser terminali? Pozwala łatwo przełączać się między kilkoma programami w jednym terminalu, odłączać je (działają w tle) i ponownie podłączać do innego terminala. wiele więcej. Zobacz instrukcję ”.
Przykład: przeglądanie plików lub przeprowadzanie testów po prawej stronie, edycja plików testowych i źródłowych po lewej: 
:e #(filename) przełączać między dwoma otwartymi plikami
:p dla poprzedniego pliku
:n do następnego pliku