Comment remplacer les raccourcis clavier pour `term`

8

Pour certaines tâches comme l'utilisation de ruby pryet les tmuxdeux eshellet shellne se comportent pas bien. J'ai essayé d'utiliser term, mais mon inaptitude à remplacer les raccourcis clavier termrend son utilisation ennuyeuse.

Comment définir, par exemple, au M-ofur other-windowet M-kà kill-buffermesure de l'utilisation term?

Renan Ranelli
la source
5
Mes raccourcis clavier fonctionnent en termmode ligne uniquement C-c C-j. Je change simplement le mode char C-c C-kchaque fois que nécessaire.
Vamsi
Je ne savais pas C-c C-jet C-c C-k! Merci!
Renan Ranelli

Réponses:

6

peut-être que l'utilisation à la ansi-termplace serait légèrement moins ennuyeuse, car elle expose un C-xpréfixe, vous permettant d'utiliser, par exemple, C-x oou C-x ksans astuce spéciale.

Si cela ne suffit pas, vous pouvez utiliser l'approche suivante:

(defun expose-global-binding-in-term (binding)
   (define-key term-raw-map binding 
     (lookup-key (current-global-map) binding)))

(expose-global-binding-in-term (kbd "M-o"))
(expose-global-binding-in-term (kbd "M-k"))
...
Sigma
la source
5

En mode term, tout C-x whateverraccourci clavier normal devient à la C-c whateverplace. Gracieuseté de Josh Matthews

Maintenant, pour définir les raccourcis clavier qui ne seront actifs qu'en mode term, essayez ceci:

(add-hook 'term-mode-hook
  (lambda () 
    (define-key term-raw-map (kbd "M-J") 'other-window)
    (define-key term-raw-map (kbd "M-k") 'kill-buffer)))
Nsukami _
la source
Bien, cela résout mon problème. J'accepte la réponse de @ Sigma car elle est légèrement plus pratique à configurer (pas besoin de dupliquer mes liaisons de carte globale dans le terme-raw-map). Je vous remercie!
Renan Ranelli
1
@LeMeteore mettant ces appels term-mode-hookest très probablement inutile: vous finirez par réinstaller ces touches à chaque fois que le mode est activé, au lieu de le faire une seule fois.
Sigma
@Sigma, tu as raison. J'essayais en fait de trouver rapidement une solution. Votre réponse est en effet plus pratique.
Nsukami _