2010-09-02 2 views
0

Pour une raison quelconque, "C-z" est mappé sur suspend-or-iconify-emacs et je n'arrive pas à l'obliger à relier quelque chose de moins ennuyeux. (J'aime utiliser ctrl-z pour undo, mais ne rien faire serait au moins mieux que la suspension à chaque fois que je frappe accidentellement la clé)Impossible de relier la clé C-z dans xemacs

J'ai essayé de le faire de manière interactive: M-x global-set-key, puis Set key C-z to command: undo.
M-x describe-key-briefly me donne C-z runs the command suspend-or-iconify-emacs

J'ai essayé d'aller au tampon de zéro et de l'évaluation: (global-set-key (kbd "C-z") 'undo) et (global-set-key "\C-z" 'undo), et il est bien sûr dans mon .xemacs/fichier init.el.

Rien ne semble réellement relier la clé.

Cela se produit sur XEmacs 21.5, en mode fondamental. Des idées sur la façon de résoudre ce problème?

modifier: Ok ici est un hack qui contourne le problème en redéfinissant la suspension fonction pour annuler:

(defun suspend-or-iconify-emacs() (interactive) (undo))

Je ne peux pas suspendre réellement emacs plus, mais qui est en fait ok avec moi.

+0

Get Emacs appropriés à la place. ;) –

+0

S'il vous plaît supprimer le tag "emacs" et ajouter le tag "xemacs" à votre question. THX. –

+0

Deniz, je préférerais comprendre et résoudre le problème avec xemacs car je ne suis pas le seul utilisateur de ce système. –

Répondre

2

Mettez cette à la fin de votre .xemacs/init.el:

(global-set-key (kbd "C-z") 'undo) 

Ou peut-être vous avez un clavier mal configuré ou système d'exploitation.

Ne C-hkC-z pour voir si xemacs reçoit vraiment une clé C-z.

+0

'M-x describe-key-brièvement' est essentiellement une version courte de C-h k. –

+1

Avez-vous essayé votre propre suggestion? Cela ne fonctionne pas pour moi, je pense que C-z n'étant pas défini dans global-map, mais dans global-window-system-map. – asjo

+0

C'est pourquoi vous devriez essayer, je n'ai pas dit que C-z fonctionne sur votre ordinateur. –

3

Essayez cette évaluation:

(define-key global-window-system-map [(control z)] 'undo) 

(en supposant que vous n'êtes pas en cours d'exécution dans XEmacs TTY mode, mais je suppose que vous n'êtes pas, si vous voulez iconifier :-))

I utilisé Ch b pour savoir ce que * -map à modifier.

3

J'ai le code suivant dans mon .emacs:

(global-set-key (kbd "C-z") 'eshell) 

Il va commencer une eshell, et il fonctionne.

La combinaison C-z est assez standard sous Unix/Linux, si vous travaillez dans un terminal avec, par ex. vi, lynx ou mutt et appuyez sur C-z le programme va suspendre et vous serez de retour dans la coquille. L'émission de la commande 'fg' fera réapparaître le programme. Comme Emacs a son propre shell, j'aime le lancer quand on appuie sur C-z dans Emacs.

Vous pouvez également ajouter le crochet suivant, qui remappera C-z dans l'eshell. De cette façon, en appuyant sur C-z dans l'eshell avec vous retournez à la mémoire tampon que vous éditiez.

(add-hook 'eshell-mode-hook 
    (lambda() 
    (local-set-key (kbd "C-z") 'bury-buffer))) 
+0

Je n'avais même pas réalisé que j'avais raté ça jusqu'à ce que je le récupère. Merci! –

1

J'ai eu le même problème avec C-f.Je voulais qu'il soit mappé vers isearch-forward, mais à la place il continuait à avancer d'un caractère.

J'ai finalement résolu mon problème en ajoutant

(global-unset-key [?\C-f]) 
(global-set-key [?\C-f] 'isearch-forward) 

Apparemment, le problème est que Cf (et Cz) est une clé « réelle », qui est, il est quelque chose qu'un terminal reconnaît (il est ASCII 0x06, 0x1a pour Cz), vous avez donc besoin du "?" devant "Cf".

C'est la seule chose que je dois faire.

HTH

(EDIT: Je dois souligner que j'utiliser emacs, non xemacs)

+0

Aussi, si tout ce que vous voulez est mappé C-z à annuler, vous pouvez essayer cua-mode. –

Questions connexes