J'ai commencé à utiliser emacs avec l'option -nw - ctrl-home et ctrl-end ne fonctionnent pas

5

Afin d'accélérer mon flux de travail emacs, j'essaie d'utiliser emacs -nw plutôt que de fonctionner en mode X-Windows.

Ctrl-HOME et Ctrl-END ne fonctionnent pas du tout et ont essayé d’éditer des fichiers .keymap et suivre les conseils en ligne n’a malheureusement conduit à aucune joie. Par exemple

http://www.emacswiki.org/emacs/CuaMode

J'active habituellement le mode cua pour la sélection de postes, ce qui échoue également lors de la recherche de poste décalée, par exemple

Ce serait formidable de pouvoir utiliser tout cela en mode -nw et je serais heureux de recevoir les conseils d'autres utilisateurs d'Emacs.

  • Installer = Linux Mint 9
  • Shell = zsh
codeasone
la source

Réponses:

4

Malheureusement, différents terminaux envoient différentes séquences d'échappement pour des clés telles qu'Emacs Ctrl+Home, et Emacs ne les connaît pas toutes. Vous pouvez déclarer des séquences d'échappement supplémentaires via function-key-map(ou local-function-key-mapsous Emacs 23). Cela indique à Emacs que ces séquences d'échappement sont en réalité un encodage pour une seule touche de fonction.

Pour savoir quelle séquence d'échappement une clé envoie, appuyez sur C-qpuis sur la touche: le caractère d'échappement qui commence littéralement la séquence de touches est inséré, suivi des autres caractères constituant la séquence de clés. Par exemple, un terminal que j'utilise envoie les quatre personnages ^[, O, 5, Hquand je presse Ctrl+Home, et je voudrais donc inclure la ligne suivante dans mon .emacs:

(define-key function-key-map "\e05H" [C-home])

\eest la manière la plus lisible d'écrire le caractère d'échappement. Faites de même pour les autres clés que vous souhaitez prendre en charge.

Si les clés ne sont pas supportées prêtes à l'emploi par la dernière version d'Emacs, il serait bien de renseigner les développeurs sur les séquences de touches envoyées par votre terminal.

Gilles
la source
J'ai remarqué que gnome-terminal envoie les mêmes codes pour Home et Ctrl-Home. De plus, End et Ctrl-End sont identiques.
Jeff
1
@Jeff De nombreux terminaux sont basés sur la bibliothèque vte et celle-ci n'est pas configurable. Si vous voulez utiliser pleinement le clavier , xterm est le meilleur.
Gilles
1

Je cours presque toujours avec emacs -nw. Afin de faire défiler l'écran jusqu'à la fin du fichier, je l'utilise M-S-,et je M-S-.reviens au début (peut-être plus facile à mémoriser au fur Alt-<et à mesure Alt->). Pas tout à fait aussi pratique que C-Homeet C-Endpeut - être, mais je préfère travailler à partir du terminal (en fait, dans une session tmux , pour ce que cela vaut).

jon
la source
1

J'ai écrit un paquet Emacs qui peut enseigner à Emacs et aux terminaux comment reconnaître correctement toutes les touches du clavier de l'ordinateur et les combinaisons de touches de modification:

https://github.com/CyberShadow/term-keys

Pour le mode Cua et la sélection Maj, le fait d’utiliser Ctrl + Maj + les touches fléchées est certainement une amélioration.

Vladimir Panteleev
la source
0

Vous pouvez essayer un autre terminal. Sur centos7, avec emacs 25.3, ctrl-home ne fonctionne pas dans mate-terminal, mais fonctionne avec gnome-terminal. Cela fonctionne aussi à l'intérieur de l'écran (avec gnome-terminal), astuce hors sujet: je viens de découvrir (xterm-mouse-mode 1), c'est génial!

sophana
la source
-2

Faites-vous une faveur et faites le tutoriel :)

emacs utilise par défaut les liaisons classiques avec l'éditeur de lignes.

Ctrl a  << to start of line
Ctrl e  >> to end of line
Ctrl k  cut to end of line
Ctrl y  yank that back
alt y   roll back one more yank (repeat) try it out to get it.

Ce sont ceux que j'utilise le plus et ceux-ci fonctionnent également avec readline (la plupart des shells)

Google ou fouiller sur votre système pour les feuilles de triche.

par exemple

 /usr/share/emacs/23.4/etc/refcards/refcard.pdf
Petergozz
la source
1
Bon pour vous @petergozz, je voulais utiliser Ctrl-HOME et Ctrl-FIN comme question initiale. Merci d'avoir essayé d'aider, mais j'utilise Emacs depuis 20 ans et je n'ai pas besoin d'un cours de mise à jour sur les liaisons d'éditeur en ligne. Ma demande portait spécifiquement sur l'exécution d'Emacs dans mon environnement terminal et sur les particularités de cette situation. Ctrl a << au début de la ligne? Es-tu sérieux?
codeasone
Oops désolé. Oh, il n'y a pas de << c'est juste du sucre.
petergozz