Muitas vezes, quero ir para uma nova linha enquanto a sugestão de modo da empresa é exibida. Como posso configurar o modo da empresa para que apenas a tecla tab ative uma conclusão?
key-bindings
completion
company-mode
Connor
fonte
fonte
Minha configuração completa para corrigir esse comportamento padrão irritante é:
( link para a configuração atual, que foi aprimorada ainda mais, mas é bastante complicada neste ponto)
(atualizado conforme esta pergunta )
fonte
(define-key company-active-map (kbd "C-RET") #'company-complete-selection)
mas não funcionou. Você sabe se isso seria possível e como conseguir?TAB
para selecionar o primeiro item da lista sem precisar 'interagir'. Mas, para responder sua pergunta, aposto que seu terminal não pode enviarC-RET
(o meu não pode). TenteC-h k C-RET
e veja se o Emacs realmente recebe o sinal emC-RET
vez de apenasRET
.(define-key company-active-map (kbd "TAB") #'company-complete-common-or-cycle)
mas parece que você está certo, quando mudei para algo diferente do C-RET, obtive o comportamento desejado. Obrigado.M-p
eM-n
, ou Pesquisá-las comC-s
, ou selecionar diretamente um candidato comM-1
throughM-0
(os números são mostrados se você definircompany-show-numbers
).Só vi isso enquanto procurava uma solução para o mesmo problema (embora as chaves irritantes para mim fossem
SPC
e.
).Acho que vincular as chaves
nil
incorretas conforme proposto por @glucas e @Radon Rosborough não é um bom UX, pois você precisa abortar manualmente o menu suspenso da empresa, o que prejudica a digitação rápida.Ou seja, se a empresa se tornar ativa e você digitar uma chave vinculada a
nil
nada, isso acontecerá. Não é o que você esperaria ao digitar um personagem. Você esperaria que o caractere fosse inserido.Pelo contrário, é muito mais conveniente que o emacs chame automaticamente
company-abort
e insira o caractere digitado para você. Aqui está a minha solução:Eu acho que você pode estender isso facilmente
RET
chamando em(newline)
vez de(insert-char)
(embora eu não tenha tentado isso porque usoRET
para selecionar).Na verdade, eu estou usando,
use-package
então é isso que eu tenho no meu init:fonte