Problem rebinding isearch key no Emacs

0
Olá Estou tentando religar a chave Emacs para isearch (C-s) para o mais CUA como C-i porque C-s é obrigado a salvar. Eu fiz o seguinte:

(global-set-key "\C-i" 'isearch-forward)
(global-set-key (kbd "C-S-i") 'isearch-backward)

que funciona bem até eu tentar encontrar o próximo jogo. O problema é que no Emacs isso é feito digitando C-s novamente. Infelizmente eu não posso vincular os comandos isearch-repeat-forward para C-i porque isso desfaz a vinculação de C-i a isearch-forward.

Eu não me importo com algo como C-r para repetir, mas irritantemente o emacs tem um comando de repetição diferente para busca incremental direta e reversa

Alguém sabe de uma boa solução para isso?

    
por S.N. 18.12.2014 / 17:56

1 resposta

2

isearch-repeat-forward está ligado a C-s no Modo de pesquisa . Você pode notar que quando você pressiona C-s você entra em um novo modo menor em seu buffer. Como cada modo tem seu próprio mapa de teclas, você deve alterar a ligação C-s neste mapa. A função define-key recebe um argumento que é o mapa de modo que você deseja vincular a chave, nesse caso isearch-mode . Tente colocar isso no seu init.el

(define-key isearch-mode-map (kbd "C-i") 'isearch-repeat-forward)
(define-key isearch-mode-map (kbd "C-S-i") 'isearch-repeat-backward)
    
por Henrique Jung 19.12.2014 / 00:04