Emacs sur Mac OS X reliures de clés Leopard
je suis un utilisateur Mac et j'ai décidé d'apprendre Emacs. J'ai lire que pour réduire la tension de la main et améliorer la précision, les touches CTRL et CAPS LOCK doivent être permutées. Comment je fais ça en léopard?
aussi, dans le Terminal je dois utiliser la touche ESC pour invoquer meta. Est-il possible d'obtenir la touche alt/option pour appeler méta à la place?
Maj: alors que la touche de contrôle est beaucoup plus facile à frapper maintenant, la touche meta est aussi utilisée assez souvent que sa position sur mon Macbook et mon clavier Apple mérite également l'attention. En fait, je trouve que la clé de contrôle est en fait plus facile à frapper, donc j'ai remappé ma clé de contrôle pour agir comme une méta-clé. Est-ce que quelqu'un a une solution meilleure/plus standard?
13 réponses
Swapping CTRL and CAPS LOCK
- Allez dans Préférences Système
- entrer le clavier et souris volet de préférence
- dans l'onglet clavier , cliquez sur touches de modification...
- Swap les actions pour Caps Lock et Control .
utilisant ALT / OPTION comme META
- dans la barre de menu, cliquez sur Terminal
- Cliquez Sur Préférences...
- sous l'onglet paramètres , allez à L'onglet clavier onglet
- Cochez la case Utilisation de l'option en tant que meta-clé
C'est ça! Vous devriez être sur le point de devenir un maître Emacs!
pour référence, voici les reliures clés, pour se déplacer autour du texte:
⌥ + ← - déplacer vers la gauche d'un mot
⌥ + → - déplacer vers la droite d'un mot
⌥ + supprimer - back supprimer un mot
Shift + ⌥ + supprimer - foward supprimer un mot
⌥ + ↑ - monter d'un paragraphe
⌥ + ↓ - déplacer vers le bas d'un paragraphe
⌘ + ← - début de la ligne courante
⌘ + → - déplacer à la fin de l'actuel ligne
poste + l'un quelconque des postes ci-dessus étend la sélection par un montant approprié
Cliquez puis faites glisser - sélectionnez le texte
Double-cliquez puis faites glisser-sélectionnez le texte, enveloppant aux fins de mot
Triple-cliquez puis faites glisser-sélectionnez le texte, enveloppant aux fins du paragraphe
Maj + sélectionner un texte avec la souris - ajouter à la sélection)
⌘ + sélectionner le texte avec la souris-ajouter à la sélection (non contigu))
⌥ + faire glisser-choisir une zone rectangulaire (non contiguë))
⌘ + ⌥ + ajouter une zone rectangulaire à la sélection
Sélection de la traînée-déplacer le texte
⌥ + sélection de la traînée - copie du texte
Ctrl + Un - début de l'actuel paragraphe
Ctrl + B - se déplacer à gauche d'un caractère
Ctrl + D - contrats à supprimer
Ctrl + E - déplacer à la fin de l'actuel le paragraphe
Ctrl + F - déplacer vers la droite d'un caractère
Ctrl + H - delete
Ctrl + K - supprimer le reste du paragraphe en cours
Ctrl + N - déplacer une ligne vers le bas
Ctrl + O - insérer une nouvelle ligne après curseur
151980920 " Ctrl + P - déplacer vers le haut d'une ligne
151980920 Ctrl + T - transpose (swap) two surrounding character
Ctrl + v - move to end, puis à gauche un caractère
Ctrl + Y - coller texte précédemment supprimé avec Ctrl - K
l'autre réponse était très complète, mais en plus je mentionnerais que je viens de mettre le caps lock la clé pour une deuxième clé de contrôle au lieu d'échange.
aussi, vous remarquerez que la grande majorité des champs d'entrée de texte dans Mac OS X accepte déjà les touches emacs (^un début de ligne, ^une fin de ligne, ^P, ^N, ^K, ^Y, etc)
bonne chance
j'aime vraiment la réponse fournie par Kyle Cronin, mais je veux ajouter une chose, assurez-vous de sélectionner le clavier pour que cela fonctionne. Si vous avez un clavier externe branché à votre ordinateur portable, alors il ya une boîte de dépose supplémentaire et vous aurez besoin de le faire pour les deux claviers (ou au moins pour votre clavier externe). L'écran ci - dessous montre la boîte de dialogue "Sélectionner le clavier" - j'ai sélectionné "Joint Mac Keyboard", qui est la façon de dire Macbook GoldTouch clavier externe - par défaut, le clavier intégré.
une fois que j'ai compris que - cela fonctionne très bien pour moi!
si vous utilisez emacs via une connexion ssh, ou via une machine qui n'est pas sur votre ordinateur local, les boutons HAUT/BAS DE page font défiler la mémoire tampon du terminal - d'après mon expérience, pas trop utile.
vous pouvez régler vos boutons page down et page up pour envoyer les commandes appropriées à emacs. Dans emacs, vous pouvez faire défiler le tampon emacs comme suit:
- Haut de Page: Ctrl-v
- page vers le bas: ces-v
ainsi, pour que le terminal envoie ces commandes à emacs, suivez les instructions ci-dessus pour modifier les touches Alt pour Meta. Cependant, au lieu de définir l'option "use option as meta", trouvez les options "page down" et "page up".
Page Down
double-cliquez sur l'option" page down " pour l'éditer. Remplacer Action par "envoyer chaîne de caractères à shell " et entrer \026 que la chaîne de caractères. L'enregistrer.
Page Up
double-cliquez sur le bouton" page up " pour l'éditer. Remplacer Action par "envoyer la chaîne de caractères à shell" et entrer \033v comme chaîne de caractères. L'enregistrer.
pas sûr si vous êtes totalement marié à L'utilisation D'Emacs depuis le terminal, mais une autre option est d'utiliser Carbon Emacs (mon préféré) et Aquamacs (très Mac-like). Carbon Emacs utilise la clé de commande pour meta, c'est bien parce que vous pouvez faire des commandes Control-Meta simplement en maintenant le contrôle et la commande vers le bas au lieu de frapper d'abord escape puis la séquence de clé de contrôle.
aussi, si vous êtes un utilisateur Emacs sérieux, je vous recommande vivement de vous procurer un clavier adapté pour programmation (c'est-à-dire une programmation entièrement reprogrammable par elle-même). J'utilise un Kinesis, c'est un peu d'argent, mais ils sont extrêmement durables et très agréable.
personnellement, j'ai le setup caps lock pour me comporter comme une commande sur les préférences du système et ensuite sur mon init emacs.el fichier:
(setq mac-commande-modificateur " ctrl)
et cela me permet d'utiliser caps lock comme commande dans la plupart des applications osx et comme commande dans emacs. fonctionne assez bien pour moi.
votre joie ne fait que commencer. Autres astuces:
- utilisez les touches majuscules gauche et droite pour être ( et ) pour taper rapidement.
- Reconfigurer votre touche fn ou un autre de la clé "super".
- Faire des caps lock de contrôle, mais seulement avec une autre clé. Par lui-même, c'est la fuite.
Lire l'excellent article à http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ pour beaucoup plus d'informations.
ce fil a été démarré il y a 5 ans et il n'y a aucune mention de ns-win.el
ou" build --with-ns
. Voici toutes les fixations clés disponibles (out of the box) dans le tronc D'Emacs depuis octobre 2013. Et, bien sûr, vous pouvez créer votre propre. Personnellement, j'ai un init.el
avec toutes mes Fixations de clés qui peuvent être utilisées avec Windows XP à travers Parallels sur OSX, et aussi avec OSX nativement. Depuis, l'utilisateur peut définir ses propres raccourcis clavier, je ne vois pas la nécessité de redéfinir la clavier dans les préférences système (avec un clavier Apple U. S.) sauf si en utilisant un clavier qui ne comprend pas la touche de commande. Mais, est-ce que je jetterais ma cachette de claviers Clicky IBM avec trackpoint intégré? Bien sûr que non. :) Je prends mes claviers IBM cliquetis avec moi dans la prochaine vie. Toute tension de la main est probablement causée par une mauvaise position du poignet, du bras ou du coude, et non par le fait de frapper le contrôle ou le capuchon. La précision est améliorée par la pratique, et avec l'aide d'un boss à la recherche-dessus votre épaule pour voir comment vous venez le long -- c'est à dire, un peu de pression pour être plus productif :)
(define-key global-map [?\s-,] 'customize)
(define-key global-map [?\s-'] 'next-multiframe-window)
(define-key global-map [?\s-`] 'other-frame)
(define-key global-map [?\s-~] 'ns-prev-frame)
(define-key global-map [?\s--] 'center-line)
(define-key global-map [?\s-:] 'ispell)
(define-key global-map [?\s-?] 'info)
(define-key global-map [?\s-^] 'kill-some-buffers)
(define-key global-map [?\s-&] 'kill-this-buffer)
(define-key global-map [?\s-C] 'ns-popup-color-panel)
(define-key global-map [?\s-D] 'dired)
(define-key global-map [?\s-E] 'edit-abbrevs)
(define-key global-map [?\s-L] 'shell-command)
(define-key global-map [?\s-M] 'manual-entry)
(define-key global-map [?\s-S] 'ns-write-file-using-panel)
(define-key global-map [?\s-a] 'mark-whole-buffer)
(define-key global-map [?\s-c] 'ns-copy-including-secondary)
(define-key global-map [?\s-d] 'isearch-repeat-backward)
(define-key global-map [?\s-e] 'isearch-yank-kill)
(define-key global-map [?\s-f] 'isearch-forward)
(define-key global-map [?\s-g] 'isearch-repeat-forward)
(define-key global-map [?\s-h] 'ns-do-hide-emacs)
(define-key global-map [?\s-H] 'ns-do-hide-others)
(define-key global-map [?\s-j] 'exchange-point-and-mark)
(define-key global-map [?\s-k] 'kill-this-buffer)
(define-key global-map [?\s-l] 'goto-line)
(define-key global-map [?\s-m] 'iconify-frame)
(define-key global-map [?\s-n] 'make-frame)
(define-key global-map [?\s-o] 'ns-open-file-using-panel)
(define-key global-map [?\s-p] 'ns-print-buffer)
(define-key global-map [?\s-q] 'save-buffers-kill-emacs)
(define-key global-map [?\s-s] 'save-buffer)
(define-key global-map [?\s-t] 'ns-popup-font-panel)
(define-key global-map [?\s-u] 'revert-buffer)
(define-key global-map [?\s-v] 'yank)
(define-key global-map [?\s-w] 'delete-frame)
(define-key global-map [?\s-x] 'kill-region)
(define-key global-map [?\s-y] 'ns-paste-secondary)
(define-key global-map [?\s-z] 'undo)
(define-key global-map [?\s-|] 'shell-command-on-region)
(define-key global-map [s-kp-bar] 'shell-command-on-region)
;; (as in Terminal.app)
(define-key global-map [s-right] 'ns-next-frame)
(define-key global-map [s-left] 'ns-prev-frame)
(define-key global-map [home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-buffer)
(define-key global-map [kp-home] 'beginning-of-buffer)
(define-key global-map [kp-end] 'end-of-buffer)
(define-key global-map [kp-prior] 'scroll-down-command)
(define-key global-map [kp-next] 'scroll-up-command)
;; Allow shift-clicks to work similarly to under Nextstep.
(define-key global-map [S-mouse-1] 'mouse-save-then-kill)
(global-unset-key [S-down-mouse-1])
(ce n'est pas un clavier ergonomique, mais j'aime vraiment le déplacement des touches, et la touche de contrôle , Caps Lock sont échangés).
j'ai créé un ensemble assez complet de reliures ici pour l'utilisation à l'extérieur de Terminal.
personnellement, je ne peux pas utiliser le clavier mac portable en raison de l'absence de la bonne touche de contrôle.
au lieu de cela, j'ai utilisé le Clavier Ergonomique naturel de Microsoft 4000 depuis plus de 7 ans: il a vraiment gros, Ctrl bien positionné et Alt clés, et après téléchargement de ses pilotes les clés" Start "et" Application " sont trivialement remappées à la clé Mac Cmd, qui est également grasse et facilement déprimée.
pour éviter les problèmes ergonomiques d'emacs, j'ai moi - même appris à utiliser Ctrl, Alt, et Cmd de la même manière que nous utilisons Shift-depressing avec la main opposée à celle qui tape la touche réelle. (C'est-à-dire que je laisse les capuchons verrouillés tels quels.)
j'ai réglé le caps lock pour contrôler la préférence du système et j'ai ce qui suit dans mon init.el pour mettre la commande à meta et l'option à super:
(custom-set-variables
'(ns-alternate-modifier (quote super))
'(ns-command-modifier (quote meta)))
je voudrais recommander 2 logiciels Seil et Karabiner . En installant simplement Seil et en suivant les instructions dans le logiciel, vous devriez être en mesure d'obtenir ce que vous voulez. D'après mon expérience, Karabiner est plus puissant. J'ai un clavier Japonais dont la disposition est différente de la normale. J'ai quelques "snippet qui remap deux touches supplémentaires sur mon clavier à F18 et F19 pour une autre utilisation. Vous pouvez utiliser la même syntaxe pour modifier votre "privé.xml fichier" pour faire plus de choses.