Jak sprawić, by vim robił normalne (jak bash) wypełnianie kart dla nazw plików?

Kiedy otwieram nowy plik w Vimie i używam tab completion, uzupełnia on całą nazwę pliku zamiast częściowego dopasowania, tak jak robi to bash. Czy istnieje opcja, aby ta karta z nazwą pliku działała bardziej jak bash?

 258
vim
Author: Eric Johnson, 2009-02-09

6 answers

Ja osobiście używam

set wildmode=longest,list,full
set wildmenu

Po wpisaniu pierwszej zakładki hit zakończy się jak najwięcej, druga zakładka hit dostarczy listę, trzecia i kolejne zakładki będą przełączać się przez opcje zakończenia, dzięki czemu można zakończyć plik bez dalszych klawiszy

Bash like would be just

set wildmode=longest,list 

Ale full jest bardzo przydatny

 376
Author: michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 02:30:32

Najbliższe zachowanie do zakończenia basha powinno być

set wildmode=longest:full,full

Po wpisaniu kilku znaków, naciśnięcie tab raz da wszystkie dopasowania dostępne w wildmenu. To różni się od odpowiedzi Michaela , która otwiera okno quickfix-podobne do okna pod wierszem poleceń.

Następnie możesz wpisywać resztę znaków lub ponownie nacisnąć klawisz tab, aby automatycznie zakończyć pierwszy mecz i okrążyć go.

 19
Author: weynhamz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:32

Jeśli nie chcesz ustawiać wildmenu, zawsze możesz nacisnąć Ctrl+L Gdy chcesz otworzyć plik. Ctrl+L zakończy nazwę pliku tak jak ukończenie bash.

 6
Author: Amjith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 21:43:08

Oprócz sugerowanego wildmode/wildmenu, vim oferuje również opcję pokazania wszystkich możliwych zakończeń za pomocą Ctrl+d . Może to być pomocne dla niektórych użytkowników, którzy natkną się na to pytanie podczas wyszukiwania różnych opcji autocompletion w Vimie, tak jak ja.

 5
Author: tc88,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-01 08:21:43

Zakładam, że używasz autouzupełniania w Vimie poprzez Ctrl+n , aby przeszukiwać bieżący bufor. Gdy używasz tego polecenia, otrzymasz listę rozwiązań, po prostu powtórz polecenie, aby przejść do następnego elementu na liście. To samo dotyczy wszystkich poleceń autouzupełniania. Podczas gdy wypełniają one całe słowo, możesz kontynuować poruszanie się po liście, aż dotrzesz do tego, którego chcesz użyć.

Mam nadzieję, że to pomoże.

Edit 1: to może być bardziej przydatne polecenie: Ctrl+p . Jedyną różnicą jest to, że Ctrl+P wyszukuje wstecz w buforze, podczas gdy Ctrl+N Szuka do przodu... Realistycznie, oba dostarczą listę z tymi samymi elementami, mogą po prostu pojawić się w innej kolejności.

 4
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 21:51:23

Spróbuj użyć :set wildmenu. Poza tym, Nie wiem, czego dokładnie próbujesz. Proszę rozwinąć trochę więcej. A tak, a może spróbuj tego linku: link

 1
Author: Rook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 01:34:39