Często chcę przejść do nowej linii, gdy wyświetla się sugestia trybu firmowego. Jak skonfigurować tryb firmowy, aby tylko klawisz tabulacji wyzwalał zakończenie?
key-bindings
completion
company-mode
Connor
źródło
źródło
Moja kompletna konfiguracja do naprawy tego irytującego domyślnego zachowania to:
( link do bieżącej konfiguracji, która została jeszcze ulepszona, ale w tym momencie jest dość skomplikowana)
(zaktualizowano zgodnie z tym pytaniem )
źródło
(define-key company-active-map (kbd "C-RET") #'company-complete-selection)
ale to nie zadziałało. Czy wiesz, czy byłoby to możliwe i jak to osiągnąć?TAB
aby wybrać pierwszy element na liście bez konieczności „interakcji”. Ale aby odpowiedzieć na twoje pytanie, założę się, że twój terminal nie może wysłaćC-RET
(mój nie może). SpróbujC-h k C-RET
sprawdzić, czy Emacs rzeczywiście odbiera sygnałC-RET
zamiast po prostuRET
.(define-key company-active-map (kbd "TAB") #'company-complete-common-or-cycle)
ale wygląda na to, że masz rację, kiedy zmieniłem na coś innego niż C-RET, uzyskałem pożądane zachowanie. Dzięki.M-p
iM-n
, lub Przeszukiwać je za pomocąC-s
, lub bezpośrednio wybierać kandydata zaM-1
pomocąM-0
(liczby są wyświetlane, jeśli ustawiszcompany-show-numbers
).Właśnie to widziałem, szukając rozwiązania tego samego problemu (chociaż denerwujące klucze były dla mnie
SPC
i.
).Uważam, że wiązanie obrażających kluczy z
nil
proponowanymi przez @glucas i @Radon Rosborough nie jest przyjemnym UX, ponieważ wtedy musisz ręcznie przerwać rozwijanie firmy, co jest uciążliwe dla szybkiego pisania.Oznacza to, że jeśli firma stanie się aktywna i wpiszesz klucz związany z
nil
niczym , nic się nie stanie. Nie tego można się spodziewać po wpisaniu znaku. Można oczekiwać, że znak zostanie wstawiony.Raczej wygodniej jest automatycznie wywoływać emacsa,
company-abort
a następnie wstawiać za Ciebie wpisany znak. Oto moje rozwiązanie:Myślę, że możesz łatwo to rozszerzyć
RET
, dzwoniąc(newline)
zamiast(insert-char)
(chociaż nie próbowałem tego, ponieważ używamRET
do wybierania).Właściwie używam,
use-package
więc mam to w swoim init:źródło