Jak sprawić, by Vim wykonywał normalne uzupełnianie tabulatorów dla nazw plików?

289

Kiedy otwieram nowy plik w Vimie i używam uzupełniania tabulatorami, uzupełnia on całą nazwę pliku zamiast wykonywać częściowe dopasowanie, jak Bash. Czy istnieje opcja, aby uzupełnienie zakładki nazwy pliku działało bardziej jak Bash?

Eric Johnson
źródło
10
Technicznie rzecz biorąc, jestem prawie pewien, że „bash” nie uzupełnia tabulacji. To właśnie robi readline.
Maxy-B
2
Mówimy o dostosowaniu zachowania funkcji ^ X ^ F?
BrunoJCM,

Odpowiedzi:

413

Ja osobiście korzystam

set wildmode=longest,list,full
set wildmenu

Gdy wpiszesz pierwsze trafienie tabulatorem, zakończy się ono w jak największym stopniu. Drugie trafienie na karcie zapewni listę. Trzecia i kolejne zakładki będą przechodzić przez opcje uzupełniania, dzięki czemu możesz uzupełnić plik bez dalszych kluczy.

Bash-like byłoby po prostu

set wildmode=longest,list 

ale pełne jest bardzo przydatne.

Michael
źródło
1
Chciałbym, żeby to było domyślne zachowanie w vimie. Wydawało mi się, że dopóki nie zobaczyłem tego postu, nie udało mi się przejść do pełnego zakończenia karty.
Neha Karanjkar
6
@NehaKaranjkar Polecam prowadzenie archiwum dotfiles, aby ułatwić wdrożenie w nowych środowiskach
Michael
2
Czy istnieje sposób, aby rozpocząć pełne tylko wtedy, gdy wyników jest niewiele? coś jak set wildmode=longest,5full,list. Przy pełnej liczbie wyników pełna jest bezużyteczna, ale bardzo przydatna z nielicznymi.
Idealnie sprawdzi się
1
Kiedyś działało to w przeszłości (gVim / ubuntu), ale teraz nie działa (macvim8.x / macOS). Patrz przykład . Jakieś pomysły?
Paschalis,
1
Po tolerowaniu wypełniania zakładki pochodzenia przez 2 miesiące, myślę, że musi istnieć sposób na uproszczenie. Dziękuję Ci.
ramwin,
23

Najbliższe zachowanie do ukończenia Basha powinno być

set wildmode=longest:full,full

Po wpisaniu kilku znaków, jednokrotne naciśnięcie klawisza tab da wszystkie dopasowania dostępne w wildmenu. Różni się to od odpowiedzi Michaela, która otwiera okno podobne do szybkiej linii pod wierszem poleceń.

Następnie możesz kontynuować pisanie pozostałych znaków lub ponownie nacisnąć klawisz Tab, aby automatycznie uzupełnić pierwsze dopasowanie i obrócić go.

weynhamz
źródło
Myślę, że wolę w ten sposób.
Eddy Ekofo
8

Jeśli nie chcesz ustawiać menu Wildmenu, zawsze możesz nacisnąć Ctrl+ L, aby otworzyć plik. Ctrl+ Luzupełni nazwę pliku tak jak zakończenie Bash.

Amjith
źródło
Ctrl-L nie działa jak autouzupełnianie bash. Nie przechodzi przez wszystkie możliwe opcje.
raine
2
Mój bash tak się zachowuje. <Tab>uzupełnia bieżący ciąg, o ile jest to jednoznacznie możliwe (jak CTRL-Lw Vimie) i <Tab><Tab>pokazuje listę możliwych dopasowań (jak CTRL-Dw Vimie).
wtapia się w
8

Oprócz sugerowanego wildmode / wildmenu, Vim oferuje również opcję pokazania wszystkich możliwych uzupełnień za pomocą Ctrl+ D. Może to być pomocne dla niektórych użytkowników, którzy natrafiają na to pytanie podczas wyszukiwania różnych opcji autouzupełniania w Vimie, tak jak ja.

tc88
źródło
4

Zakładam, że używasz autouzupełniania w Vimie przez Ctrl+ Ndo przeszukiwania bieżącego bufora. Gdy użyjesz tego polecenia, otrzymasz listę rozwiązań; wystarczy powtórzyć polecenie, aby przejść do następnego elementu na liście. To samo dotyczy wszystkich poleceń autouzupełniania. Chociaż wypełniają całe słowo, możesz kontynuować przeglądanie listy, aż dojdziesz do tego, którego chcesz użyć.

To może być bardziej przydatne polecenie: Ctrl+ P. Jedyna różnica polega na tym, że Ctrl+ Pwyszukuje w buforze do tyłu, podczas gdy Ctrl+ Nwyszukuje do przodu ... Realistycznie oba dostarczą listę z tymi samymi elementami i mogą po prostu pojawiać się w innej kolejności.

Mikrofon
źródło
0

Spróbuj użyć :set wildmenu. Poza tym nie jestem pewien, co dokładnie próbujesz.

Och, tak, a może spróbuj ten link: link

Wieża
źródło