Odpowiedzi:
Przede wszystkim w vimie możesz wpisać :(dwukropek), a następnie pomóc help
, :help
mię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 :next
lub :n
w skrócie.
:wnext
jest skrótem od zapisu bieżących zmian, a następnie przejścia do następnego pliku.
Jest też analogiczne :previous
, :wprevious
a :Next
. (Zauważ, że :p
jest skrótem dla :print
. Skrótem dla :previous
jest :prev
lub :N
.)
Aby zobaczyć, gdzie jesteś na liście plików, wpisz, :args
a 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 filename
i, aby przejść do innego wpisanego pliku :tabn
lub odpowiednio :tabp
dla 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 filename
a następnie :next
do niego. Podobnie możesz użyć :argdel filename
do 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, :file
lub:f
:bw
zamknij plik haha. Nie zapomnij przeczytać pomocy, w :bw
któ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 :bd
lub :q
jak normalna osoba
:bw
jeśli jesteś ciekawy: vi.stackexchange.com/questions/2212/…
Inną opcją oprócz podanych odpowiedzi jest podzielenie okna za pomocą:
:sp
:vsp
:vsp
służy do podziału pionowego. Następnie użyj, Ctrl+W <ARROW_KEYS>
aby poruszać się w oknach.
:vs
zamiast:vsp
Ctrl+W, v
dla podziału pionowego i Ctrl+W, s
poziomego.
CTRL+W
od 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ą :split
polecenia VIM :
$ vim file1
, otwórz drugi plik w VIM za pomocą :split file2
polecenia.$ vim -o file1 file2
z bash.:q
wychodzi 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, gt
aby wyświetlić następną kartę i gT
aby wyświetlić poprzednią kartę.
Możesz także przejść do pierwszej karty za pomocą 1gt
, drugiej karty za pomocą 2gt
itp.
Możesz zamykać karty za pomocą :tabc
Na koniec możesz przenieść bieżącą kartę do n
lokalizacji, w :ntabm
której n
dowolna 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
/ :buffers
i pozwoli ci je edytować.
Zobacz :h arglsit
i :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 vim
z 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 :n
i :N
. Aby wyświetlić listę edytowanych plików, :args
wykona zadanie. :help buffer
pomoż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-window
pomoże ci w tym więcej.
Teraz, jeśli chcesz zobaczyć różnice między plikami, użyj -d
argumentu lub wywołaj program vimdiff (jest taki sam) z odpowiednimi plikami. :help diff
pomoż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