Niedawno odkryłem, że YouCompleteMe
ma g:ycm_autoclose_preview_window_after_insertion
opcję, która automatycznie ukrywa okno podglądu dokumentacji po wyjściu z trybu wstawiania, a także niedawno zacząłem używać vima, więc po raz pierwszy ustawiłem tę opcję.
Zastanawiałem się więc, czy inne wtyczki, które wcisnąłem w środowisko vima, mają dostępne opcje, bez ręcznego ich wyszukiwania.
Czy są rejestrowane globalnie, gdy uruchamia się vim, aby polecenie, które je wyświetlało, było dostępne, czy nie można tego zrobić?
Odpowiedzi:
Vim nie zapewnia możliwości poznania wszystkich możliwych opcji wtyczek.
Jako autor wtyczek mogę powiedzieć, że jest to dość skomplikowane, ponieważ istnieje wiele różnych sposobów postępowania. Na przykład albo uważamy, że jeśli użytkownik końcowy nie podał wartości opcji,
.vimrc
wówczas zmuszamy tę opcję do istnienia i równości wartości domyślnej, lub możemy powiedzieć: „albo weź wartość ustawioną przez użytkownik końcowy lub użyj zakodowanej wartości domyślnej ".Z tym pierwszym podejściu, użytkownik końcowy może wyświetlić listę dostępnych opcji z
c_CTRL-D
, lubc_TAB
, itd.Coraz więcej wtyczek decyduje się uporządkować wszystkie swoje opcje w słowniki. tzn. zamiast mieć
g:plugin_foo_option
ig:plugin_bar_option
mamyg:plugin.foo_option
ig:plugin.bar_option
. Pozwala to uniknąć zanieczyszczania listyg:
opcji globalnych, ale tracimy autouzupełnianie z wiersza poleceń (mogę w końcu otworzyć kwestię tego tematu na vim github).Do tej pory mówiłem tylko o opcjach globalnych. Większość wtyczek nie próbuje obsługiwać bardziej szczegółowych opcji, nawet jeśli powinny były to zrobić. Na przykład żałuję, że ani YouCompleteMe, ani alternatywa , ani wiele innych wtyczek nie używa opcji specyficznych dla projektu zamiast opcji globalnych. Rzeczywiście, w zależności od projektu, nad którym pracuję, chcę ustawić odpowiednie opcje na różne wartości. Niestety nie rozważali takiego przepływu pracy. W moich wtyczkach wiele opcji można wyspecjalizować na podstawie projektu lub na podstawie bufora. Ostatnio wymyśliłem eksperyment na ten temat. Ale nawet przy zwykłej i prostej parze
g:plugin_option
+b:plugin_option
, prawie niemożliwe jest poznanie wszystkich dostępnych opcji.Czasami próbuję oferować polecenia, które pomagają ustawiać opcje, tak jak zrobiłem to z narzędziami do budowania narzędzi do pakowania, lub nawet wyświetlać niektóre opcje w menu (podczas korzystania z gvim), ale to naprawdę nie jest idealne.
Obawiam się, że dokumentacja jest najlepszą dostępną rzeczą. Możesz nawet spróbować
:h pluginname^D
. To prawdopodobnie najlepsze dostępne podejście.źródło
:h pluginname
jest naprawdę bardzo świetne! Więc nie muszę wielokrotnie odchodzić od vima, aby przeczytać dokumentację różnych wtyczek.Vim nie ma odniesienia do dostępnych opcji. najlepsze, co możesz zrobić, to zobaczyć, co zostało zainicjowane.
Dla wbudowanych opcji Vima istnieje polecenie
:set
. Od:h :set
:Nie zobaczysz wszystkich dostępnych opcji, tylko te, które zmodyfikowałeś.
Możesz także użyć
:let
do wyświetlenia wartości wszystkich zadeklarowanych zmiennych i:let g:
do listy zmiennych globalnych. (Zobacz:h E121
listę zmiennych, które możesz wyświetlić).Pamiętaj, że te listy nie zawsze są łatwe do odczytania / parsowania. W przypadku wtyczek najlepszą opcją jest przeczytanie dokumentacji i znalezienie potrzebnej opcji.
Ta wskazówka na wiki może Cię również zainteresować wyświetlaniem środowiska vim
źródło