Otwieram kilka plików w Vimie, na przykład przez uruchomienie
vim a/*.php
który otwiera 23 pliki.
Następnie dokonuję edycji i uruchamiam dwa razy następujące
:q
który zamyka wszystkie moje bufory.
Jak możesz zamknąć tylko jeden bufor w Vimie?
vim -o a/*.php
(lub w-O
celu korzystania z okien pionowych) i unikać nawigacji w buforze - jest to świetna metoda tylko dla kilku plików, ale przy 23 plikach będą miały tylko kilka linii / kolumn każdy.Odpowiedzi:
Słowo ostrzeżenia: „ww w mc nie oznacza zapisu, ale wymazywania!”
Więcej z instrukcji:
: bd
Jeśli wiesz, co robisz, możesz także użyć: bw
: bw
źródło
:bw
wtedy, gdy „wiesz, co robisz”, czego ja nie wiem, więc chyba użyję:bd
.:bd
) również zamyka kartę. Prawdopodobnie chcesz:bd n .. [m]
lub żeby:n,mbd
konkretne liczby lub zakres liczb zostały zamknięte, co możesz zrobić bez patrzenia na buforyw
jest skrótem odwrite
polecenia zgodnie z instrukcją Vima, ponadto nie ma wzmianki o żadnym „wymazaniu”. Opis polecenia (help write
) zaczyna się od „Zapisz cały bufor do bieżącego pliku”.w
żebw
polecenie oznacza usunięcie, że nie mówi ow
poleceniu. Umieścił to ostrzeżenie, aby ludzie nie sądzili, żebw
polecenie oznaczało zapis bufora (co nie znaczy, że wyczyszczenie bufora.)Jeśli nie wynika to z poprzednich odpowiedzi:
: bd zamknie bieżący bufor. Jeśli nie chcesz pobrać listy buforów.
źródło
:bd
zamyka tylko bufor, podczas gdy (cokolwiek to znaczy), a:bw
jednocześnie usuwa wszystkie zmienne i NAPRAWDĘ eliminuje je zls
bufora.Sprawdź swój identyfikator bufora za pomocą: buforów
zobaczysz tam listę buforów takich jak
jeśli chcesz usunąć b.php z bufora
jeśli chcesz usunąć / zamknąć wszystko z buforów
źródło
Zamiast przeglądać wyjście polecenia: ls i usuwać (zwalniać, czyścić ...) bufor, określając jego numer, uważam, że używanie nazw plików jest często bardziej skuteczne.
Na przykład po otwarciu kilku plików .txt w celu odświeżenia moich wspomnień z jakiegoś drobnego punktu .. skopiuj i wklej kilka wierszy tekstu, aby użyć go jako pewnego rodzaju szablonu .. itd., Napisałbym:
Pamiętaj, że pasujący ciąg nie musi znajdować się na początku nazwy pliku.
Powyżej wyświetla listę nazw plików pasujących do „txt” u dołu ekranu i utrzymuje polecenie: bd, które początkowo wpisałem nietknięte, gotowe do ukończenia.
Oto przykład:
Mógłbym cofnąć się do bitu „txt” i wpisać nazwę pliku, który chcę usunąć, ale tam, gdzie staje się to naprawdę wygodne, nie muszę: jeśli po raz drugi uderzę w klawisz Tab, Vim automatycznie wykonuje polecenie z pierwszym dopasowaniem:
Jeśli chcę pozbyć się tego konkretnego bufora, wystarczy nacisnąć Enter.
A jeśli bufor, który chcę usunąć, zdarza się być drugim (trzecim ... itd.) Dopasowaniem, muszę tylko naciskać klawisz Tab, aby polecenie: bd przechodziło przez listę dopasowań.
Oczywiście, tej metody można również użyć do przełączenia do danego bufora za pomocą takich poleceń jak: b ..: sb .. itp.
To podejście jest szczególnie przydatne, gdy ustawiona jest opcja „ukrytego” Vima, ponieważ lista buforów może szybko stać się dość duża, obejmując kilka ekranów i utrudniając zlokalizowanie konkretnego bufora, którego szukam.
Aby w pełni wykorzystać tę funkcję, prawdopodobnie najlepiej jest przeczytać następujący plik pomocy Vima i odpowiednio dostosować działanie wiersza poleceń Tab, aby najlepiej pasował do Twojego przepływu pracy:
Zachowanie, które opisałem powyżej, wynika z następującego ustawienia, które wybrałem dla zachowania spójności w celu emulacji zakończenia bash:
W przeciwieństwie do używania numerów buforów, zaletą tego podejścia jest to, że zwykle pamiętam przynajmniej część podanej nazwy pliku, co pozwala mi bezpośrednio celować w bufor, zamiast konieczności wcześniejszego wyszukiwania jego numeru za pomocą polecenia: ls.
źródło
Posługiwać się:
:ls
- aby wyświetlić listę buforów:bd#n
- aby zamknąć bufor, gdzie #n jest numerem bufora (użyj,ls
aby go uzyskać)Przykłady:
aby usunąć bufor 2:
źródło
Możesz mapować następny i poprzedni również na klawisze funkcyjne, dzięki czemu cykliczne przechodzenie między buforami jest dziecinnie proste
z mojego vimrc
źródło
Co powiesz na
W ten sposób możesz edytować pojedynczy plik po lewej stronie i poruszać się po całym katalogu po prawej stronie ... Tylko myśl, a nie rozwiązanie ...
źródło
[EDYCJA: to była głupia sugestia z czasów, gdy nie znałem wystarczająco dobrze Vima. Nie używaj tabulatorów zamiast buforów; zakładki to „układy okien” Vima]
Może przełączysz się na używanie kart?
vim -p a/*.php
otwiera te same pliki w zakładkachgt
igT
przełączaj zakładki tam iz powrotem:q
zamyka tylko bieżącą kartę:qa
zamyka wszystko i wychodzi:tabo
zamyka wszystko oprócz bieżącej kartyźródło
wildmenu
? Jest podobny do lustyjuggler (choć prostszy), ale jest wbudowany (co było dla mnie dobre, ponieważ lustyjuggler potrzebuje+ruby
i domyślnego vima dla statków z Oneiric Ubuntu-ruby
).vim-nox
pakiet Ubuntu obsługuje Ruby.Osoby używające bufora lub wtyczki do nawigacji po drzewie, takie jak Buffergator lub NERDTree, będą musiały przełączać te podziały przed zniszczeniem bieżącego bufora - w przeciwnym razie wyślesz podziały do winkyville
Używam:
Gdzie „
NERDTreeToggle
” na tej liście jest takie samo jak pisanie:NERDTreeToggle
. Możesz zmodyfikować tę funkcję, aby zintegrować ją z własną konfiguracją.źródło
:bdelete
lub:bwipeout
. Zobacz moją odpowiedź .Zamknij bufor bez zamykania okna
Jeśli chcesz zamknąć bufor bez niszczenia układu okna (aktualny układ oparty na podziale), możesz użyć wtyczki takiej jak bbye . Na tej podstawie możesz po prostu użyć
Lub po prostu utwórz mapowanie w
.vimrc
celu łatwiejszego dostępuPrzewaga nad vim's: bdelete i: bwipeout
Z dokumentacji wtyczki :
: bdelete vs: bwipeout
Z dokumentacji wtyczki :
źródło