Cómo anular las combinaciones de teclas para `term`


8

Para algunas tareas como usar ruby pryy tmuxambos eshelly shellno comportarse bien. Traté de usar term, pero mi incapacidad para anular las combinaciones de teclas termhace que su uso sea molesto.

¿Cómo puedo configurar, digamos, M-oas other-windowy M-kas kill-buffercuando lo uso term?


55
Mis combinaciones de teclas funcionan termpero solo en modo de línea C-c C-j. Solo alterno el modo char C-c C-kcuando sea necesario.
Vamsi

No sabía sobre C-c C-jy C-c C-k! ¡Gracias!
Renan Ranelli

Respuestas:


6

quizás usar en su ansi-termlugar sería un poco menos molesto, ya que expone un C-xprefijo, lo que le permite usar, por ejemplo, C-x oo C-x ksin ningún truco especial.

Si eso no es suficiente, puede utilizar el siguiente enfoque:

(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"))
...

5

En el modo de término, cualquier C-x whatevercombinación de teclas regular se convierte en su C-c whateverlugar. Cortesía de Josh Matthews.

Ahora, para definir las combinaciones de teclas que estarán activas solo en modo de término, intente esto:

(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)))

Bien, resuelve mi problema. Estoy aceptando la respuesta de @ Sigma porque es un poco más conveniente de configurar (no es necesario duplicar mis enlaces de mapa global en el término mapa sin procesar). ¡Gracias!
Renan Ranelli

1
term-mode-hookEs muy probable que @LeMeteore realizar estas llamadas no sea útil: terminará reinstalando esas teclas cada vez que se active el modo, en lugar de hacerlo solo una vez.
Sigma

@ Sigma tienes razón. De hecho, estaba tratando de encontrar rápidamente una solución. Su respuesta es de hecho más conveniente.
Nsukami _
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.