Wiem, że mogę otworzyć wiele plików vim
, wykonując coś takiego vim 2011-12*.log
, ale jak mogę przełączać się między plikami i zamykać je pojedynczo? Ponadto, w jaki sposób mogę powiedzieć nazwę pliku, który edytuję?
linux
command-line
vim
files
cwd
źródło
źródło
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
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:
wynik:
źródło
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.
źródło
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:
:help buffer
aby znaleźć więcej informacjiAby dowiedzieć się użycie nazwy pliku Ctrl+ G,
:file
lub:f
źródło
: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ą:
:vsp
służy do podziału pionowego. Następnie użyj,Ctrl+W <ARROW_KEYS>
aby poruszać się w oknach.źródło
:vs
zamiast:vsp
Ctrl+W, v
dla podziału pionowego iCtrl+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.źródło
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!
źródło
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:
Lub jeśli masz już otwarty vim, możesz otworzyć nowy plik w nowej karcie w następujący sposób:
Po otwarciu kart użyj,
gt
aby wyświetlić następną kartę igT
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órejn
dowolna liczba jest większa lub równa0
.źródło
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*
.źródło
Jest na to wiele sposobów. Pierwszym, może mniej wygodnym, jest wywołanie
vim
z plikami, które chcesz edytować - utwórz: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.Daj mi znać, jeśli masz jakiś problem.
źródło
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:
źródło
:e #(filename)
przełączać między dwoma otwartymi plikami:p
dla poprzedniego pliku:n
do następnego plikuźródło