Zakładając, że mam wiele plików otwartych jako bufory w Vimie. Pliki mają *.cpp
, *.h
a niektóre są*.xml
. Chcę zamknąć wszystkie pliki XML z :bd *.xml
. Jednak Vim nie pozwala na to (E93: Więcej niż jedno dopasowanie ...).
Czy jest na to sposób?
PS Wiem, że to :bd file1 file2 file3
działa. Więc mogę jakoś ocenić *.xml
do file1.xml file2.xml file3.xml
?
<tab>
pozwala tylko na przechodzenie między dopasowaniami, umieszczanie pojedynczego wpisu w wierszu poleceń,<C-a>
dodaje wszystkie dopasowania jednocześnie.vim-rsi
zainstalowałeś (myślę, że to musi być dla wszystkich na * nix), aby uzyskać<C-a>
pracę w oryginalny sposób w linii poleceń, powinieneś użyć<C-x>
<C-a>
zamiast tego.Usunie zakres bufora od 3 do 5.
źródło
Możesz również użyć alternatywnie:
źródło
Możesz tego użyć.
Dodanie go do polecenia powinno być dość łatwe.
źródło
glob()
da ci tylko istniejące pliki (na twoim twardym dysku), a nie otwarte bufory.fnameescape()
buforować nazwy.c:/Program files/foo.bar
i nawetfoo.bar.foo
działało idealnie.fnameescape()
mogło być wymagane, jeśli użyłem nazw buforów. Ale sprawdzam tylko, czy nazwy buforów pasują do danego wyrażenia:\.{ext}$
- Numery buforów podaję: bd`. Nie mam powodu, aby uciec przed dopasowaniem wyrażeń regularnych.Wypróbuj poniższy skrypt. Przykład dotyczy „txt”, zmień go w razie potrzeby, np. Na „xml”. Zmodyfikowane bufory nie są usuwane. Naciśnij \ bd, aby usunąć bufory.
[Edytuj] To samo bez: bufdo (zgodnie z prośbą Luc Hermitte, patrz komentarz poniżej)
źródło
:bufdo
ponieważ psuje bieżące okno.Ja też potrzebowałem tej funkcjonalności przez cały czas. To jest rozwiązanie, które mam w moim vimrc.
Teraz mogę po prostu to zrobić
:BW regex
(np.:BW \.cpp$
Wyczyścić wszystkie pasujące bufory, które mają pasujący wzorzec w nazwie ścieżki.Jeśli chcesz usunąć zamiast wycierać, można oczywiście zastąpić
exec 'bw ' . join(l:matchList, ' ')
zexec 'bd ' . join(l:matchList, ' ')
źródło
:badd
,:bdelete
,:bufdo
,:bn
...)Bardzo prosto: użyj
:bd[elete]
polecenia. Na przykład:bd[elete] buf#1 buf#5 buf#3
usunie bufory 1, 3 i 5.źródło
Możesz po prostu użyć:
następnie użyj,
<c-a>
aby ułatwić uzupełnianie wszystkich otwartych plików o określonym typie.na przykład masz 1.xml, 2.xml, 3.xml i 4.xml, możesz wykonać:
następnie wciśnij
<c-a>
vim automatycznie uzupełni się za Ciebie w następujący sposób:
możesz po prostu nacisnąć klawisz Enter, aby zakończyć polecenie.
jeśli dokonałeś zmian w jednym z plików wymienionych powyżej, pamiętaj, aby:
źródło