2010-06-26 3 views
25

mine sont:Quelles sont vos liaisons de touches globales favorites dans emacs?

(global-set-key [f6] 'compile-buffer) 
(global-set-key [f7] 'kmacro-start-macro-or-insert-counter) 
(global-set-key [f8] 'kmacro-end-and-call-macro) 
(global-set-key [f9] 'call-last-kbd-macro) 
(global-set-key [f10] 'name-and-insert-last-kbd-macro) 
(global-set-key [f12] 'menu-bar-open) ; originally bound to F10 
(global-set-key "\C-cR" 'rename-current-file-or-buffer) 
(global-set-key "\C-cD" 'Delete-current-file-or-buffer) 

Le name-and-insert-last-keyboard-macro est de another Stack Overflow question.

Répondre

25

J'arrive d'avoir beaucoup d'entre eux:

;; You know, like Readline. 
(global-set-key (kbd "C-M-h") 'backward-kill-word) 

;; Align your code in a pretty way. 
(global-set-key (kbd "C-x \\") 'align-regexp) 

;; Perform general cleanup. 
(global-set-key (kbd "C-c n") 'cleanup-buffer) 

;; Font size 
(define-key global-map (kbd "C-+") 'text-scale-increase) 
(define-key global-map (kbd "C--") 'text-scale-decrease) 

;; Use regex searches by default. 
(global-set-key (kbd "C-s") 'isearch-forward-regexp) 
(global-set-key (kbd "\C-r") 'isearch-backward-regexp) 
(global-set-key (kbd "C-M-s") 'isearch-forward) 
(global-set-key (kbd "C-M-r") 'isearch-backward) 

;; Jump to a definition in the current file. (This is awesome.) 
(global-set-key (kbd "C-x C-i") 'ido-imenu) 

;; File finding 
(global-set-key (kbd "C-x M-f") 'ido-find-file-other-window) 
(global-set-key (kbd "C-x C-M-f") 'find-file-in-project) 
(global-set-key (kbd "C-x f") 'recentf-ido-find-file) 
(global-set-key (kbd "C-c r") 'bury-buffer) 
(global-set-key (kbd "M-`") 'file-cache-minibuffer-complete) 

;; Window switching. (C-x o goes to the next window) 
(global-set-key (kbd "C-x O") (lambda() 
           (interactive) 
           (other-window -1))) ;; back one 
(global-set-key (kbd "C-x C-o") (lambda() 
            (interactive) 
            (other-window 2))) ;; forward two 

;; Indentation help 
(global-set-key (kbd "C-x ^") 'join-line) 
(global-set-key (kbd "C-M-\\") 'indent-region-or-buffer) 

;; Start proced in a similar manner to dired 
(global-set-key (kbd "C-x p") 'proced) 

;; Start eshell or switch to it if it's active. 
(global-set-key (kbd "C-x m") 'eshell) 

;; Start a new eshell even if one is active. 
(global-set-key (kbd "C-x M") (lambda() (interactive) (eshell t))) 

;; Start a regular shell if you prefer that. 
(global-set-key (kbd "C-x M-m") 'shell) 

;; If you want to be able to M-x without meta 
(global-set-key (kbd "C-x C-m") 'execute-extended-command) 

;; Fetch the contents at a URL, display it raw. 
(global-set-key (kbd "C-x C-h") 'view-url) 

;; Help should search more than just commands 
(global-set-key (kbd "C-h a") 'apropos) 

;; Should be able to eval-and-replace anywhere. 
(global-set-key (kbd "C-c e") 'eval-and-replace) 

;; Magit rules! 
(global-set-key (kbd "C-x g") 'magit-status) 

;; This is a little hacky since VC doesn't support git add internally 
(eval-after-load 'vc 
    (define-key vc-prefix-map "i" '(lambda() (interactive) 
            (if (not (eq 'Git (vc-backend buffer-file-name))) 
             (vc-register) 
            (shell-command (format "git add %s" buffer-file-name)) 
            (message "Staged changes."))))) 

;; Activate occur easily inside isearch 
(define-key isearch-mode-map (kbd "C-o") 
    (lambda() (interactive) 
    (let ((case-fold-search isearch-case-fold-search)) 
     (occur (if isearch-regexp isearch-string (regexp-quote isearch-string)))))) 

;; Org 
(define-key global-map "\C-cl" 'org-store-link) 
(define-key global-map "\C-ca" 'org-agenda) 

;; program shortcuts - s stands for windows key(super) 
(global-set-key (kbd "s-b") 'browse-url)   ;; Browse (W3M) 
(global-set-key (kbd "s-f") 'browse-url-firefox) ;; Firefox... 
(global-set-key (kbd "s-l") 'linum-mode)   ;; show line numbers in buffer 
(global-set-key (kbd "s-r") 're-builder)   ;; build regular expressions 

;; Super + uppercase letter signifies a buffer/file 
(global-set-key (kbd "s-S")      ;; scratch 
       (lambda()(interactive)(switch-to-buffer "*scratch*"))) 
(global-set-key (kbd "s-E")      ;; .emacs 
       (lambda()(interactive)(find-file "~/emacs/dot-emacs.el"))) 

;; cycle through buffers 
(global-set-key (kbd "<C-tab>") 'bury-buffer) 

;; use hippie-expand instead of dabbrev 
(global-set-key (kbd "M-/") 'hippie-expand) 

;; spell check Bulgarian text 
(global-set-key (kbd "C-c B") 
       (lambda()(interactive) 
        (ispell-change-dictionary "bulgarian") 
        (flyspell-buffer))) 

;; replace buffer-menu with ibuffer 
(global-set-key (kbd "C-x C-b") 'ibuffer) 

;; interactive text replacement 
(global-set-key (kbd "C-c C-r") 'iedit-mode) 

;; swap windows 
(global-set-key (kbd "C-c s") 'swap-windows) 

;; duplicate the current line or region 
(global-set-key (kbd "C-c d") 'duplicate-current-line-or-region) 

;; rename buffer & visited file 
(global-set-key (kbd "C-c r") 'rename-file-and-buffer) 

;; open an ansi-term buffer 
(global-set-key (kbd "C-x t") 'visit-term-buffer) 

;; macros 
(global-set-key [f10] 'start-kbd-macro) 
(global-set-key [f11] 'end-kbd-macro) 
(global-set-key [f12] 'call-last-kbd-macro) 

(provide 'bindings-config) 

J'ai en fait un fichier entier Emacs Lisp dédié à keybindings global :-)

+0

qui est un peu! – Vivi

+2

Vous devriez voir mon autre config ;-) –

+0

Mnogo blagodaria! – Hut8

5

crédit pour ce qui se passe à Steve Yegge dans http://sites.google.com/site/steveyegge2/effective-emacs

(global-set-key "\C-w" 'backward-kill-word) 
(global-set-key "\C-x\C-k" 'kill-region) 
(global-set-key "\C-c\C-k" 'kill-region) 

Il est vraiment merveilleux d'avoir moyenne Ctrl-w ce que je suis habitué à avoir ce que cela signifie.

(vérifiez également que l'article pour plus)

7

Certains de mes liaisons plus inhabituelles:

(global-set-key [pause] 'emms-pause) 

Première bonne utilisation pour le pause clé dans un très long moment!

(global-set-key [(super \\)] 'find-file-at-point) 

Tout simplement utile.

(global-set-key [(super s)] 'shell) 
(global-set-key [(meta p)] 'shell) 

Avec la seconde liaison en place, je peux rapidement saisir M-p M p-RET pour revenir à la mémoire tampon de la coquille et répéter la dernière commande I tapé là.

Ensuite, il y a les déconsolidations:

(global-unset-key "\C-x\C-n") 

jamais vraiment eu une utilisation pour set-goal-column, et toujours gardé trébucher dessus.

(when window-system (global-unset-key "\C-z")) 

Je déteste quand je tape accidentellement C-z et réduis mon cadre.

Maintenant, nous obtenons un peu meta:

(defmacro global-set-key* (keys &rest body) 
    `(global-set-key ,keys (lambda() (interactive) ,@body))) 

Juste un petit appareil de frappe sauver qui me permet d'écrire des choses comme:

(global-set-key* [(shift control n)] (next-line) (scroll-up 1)) 
(global-set-key* [(shift control p)] (previous-line) (scroll-down 1)) 
4

Un de mes favoris a été quelque chose recommandé par un collègue de travail qui Je pensais d'abord que je déteste:

les touches fléchées (haut/bas/gauche/droite) sont réaffectés à faire défiler la fenêtre en cours. Pour déplacer le curseur, vous avez toujours C-n/p/f/b (ou isearch, ou tags, ou autre).

2

(global-set-key [(control w)] 'kill-this-buffer)

Je frappais déjà Ctrl-W d'instinct fermer un tampon - personnalisation de la liaison en emacs beaucoup plus facile pour moi.Oui, je me rends compte que cela trahit mon origine en tant que type Windows. Nous faisons tous des erreurs ...

+7

Le problème inverse est plutôt pire - je ferme assez régulièrement les applications Windows, quand je voulais juste couper/tuer du texte. – phils

3
(bind "C-t" (lookup-key global-map (kbd "C-x"))) 

Je ne transpose jamais de caractères, donc je l'utilise comme une clé de préfixe. Je ne peux pas supporter tout le chemin pour la touche "x" sur Dvorak.

J'utilise aussi cette macro depuis aujourd'hui:

(defmacro bind (key fn) 
    `(global-set-key (kbd ,key) ,(if (listp fn) fn `',fn))) 
+1

Drôle, je pense que C-x est plus facile sur Dvorak. :-) – Ken

+0

+1 pour l'exemple montrant comment créer une clé de préfixe supplémentaire. – Matt

1

(-clé global-set (kbd "Cc k") 'browse-kill-ring)
(-clé global-set (kbd « M- . ") 'etags-select-find-tag)
(-clé global-set (KBD "Mme l")' loccur)
(-clé global-set (KBD "Ms /") « multi-se produire en correspondance-tampons)
(set global clé (kbd "Mb Cx") ​​« enterrer-tampon)
(clé global-set (kbd "C-x C-b") 'ibuffer)
(clé globale (kbd "M- /")' hippie-expand)

;; Basculer show-trailing-whitespace.
(global-set-key (kbd "C-c M-w") (function (lambda() (interactive) (setq show-trailing-whitespace (not show-trailing-whitespace)))))

;; Utilisez framemove, intégré à windmove.
(windmove-default-keybindings) ;default modifier is <SHIFT>
(when (require 'framemove nil :noerror) (setq framemove-hook-into-windmove t))

1
;; Generally useful 
(global-set-key [(meta ?/)] 'hippie-expand) 
(global-set-key [(super ?i)] 'imenu) 

;; Emacs Lisp navigation 
(global-set-key (kbd "C-c f") 'find-function) 
(global-set-key [(super ?l)] 'find-library) 

;; Compiling things, navigating to errors 
(global-set-key [print] 'recompile) 
(global-set-key [(shift print)] 'compile) 
(global-set-key (kbd "M-p") 'previous-error) 
(global-set-key (kbd "M-n") 'next-error) 
(global-set-key (kbd "s-p") 'flymake-goto-prev-error) 
(global-set-key (kbd "s-n") 'flymake-goto-next-error) 

;; Open URLs in Firefox. Still not sure which binding I like most... 
(global-set-key (kbd "s-<kp-5>") 'browse-url-firefox) 
(global-set-key (kbd "s-<kp-begin>") 'browse-url-firefox) 
(global-set-key (kbd "s-t") 'browse-url-firefox) 

;; EMMS (music player) 
(global-set-key [Scroll_Lock] 'emms-pause) 
(global-set-key (kbd "<S-Scroll_Lock>") 'emms-next) 
(global-set-key (kbd "<C-Scroll_Lock>") 'emms-show) 

;; Navigation between and within buffers 
(global-set-key (kbd "C-<backspace>") 'bury-buffer) 

(defun scroll-down-one-line() 
    "Scroll down one line." 
    (interactive) 
    (scroll-down 1)) 

(defun scroll-up-one-line() 
    "Scroll up one line." 
    (interactive) 
    (scroll-up 1)) 

(global-set-key [(super up)] 'scroll-down-one-line) 
(global-set-key [(super down)] 'scroll-up-one-line) 

(global-set-key [(super right)] 'next-buffer) 
(global-set-key [(super left)] 'previous-buffer) 

(defun other-window-backwards() 
    (interactive) 
    (other-window -1)) 

(global-set-key [(control super down)] 'other-window) 
(global-set-key [(control super up)] 'other-window-backwards) 
0
;Nice list. Here's my block. 

(global-set-key [f1] 'revert-buffer) 
(global-set-key [f2] 'emacs-wiki-find-file) ; moved to xemacsinit 
(global-set-key [f3] 'insert-current-time) 
(global-set-key [f4] 'replace-regexp) 
(global-set-key [f5] 'replace-string) 
(global-set-key [f6] 'goto-line) 
(global-set-key [f10] 'linum-mode) 
(global-set-key [f11] 'my-shell-command-on-region) 
(global-set-key [f12] 'eval-region) 
(global-set-key [home] 'beginning-of-buffer) 
(global-set-key [end] 'end-of-buffer) 
(global-set-key "\C-x\C-n" 'other-window) 
(global-set-key "\C-x\C-p" 'other-window-backward) 
(global-set-key "\C-z" 'scroll-one-line-ahead) 
(global-set-key "\C-q" 'scroll-one-line-behind) 
(global-set-key "\C-x\C-q" 'quoted-insert) 
(global-set-key "\M-," 'point-to-top) 
(global-set-key "\M-." 'point-to-bottom) 
(global-set-key "\C-x," 'tags-loop-continue) 
(global-set-key "\C-x." 'find-tag) 
(global-set-key [(control tab)] 'other-window) 
(global-set-key [(control shift right)] 'other-window-backward) 
2

Je n'ai pas la liste de ces dans ma première réponse, mais rétrospectivement, je les ai toujours trouvé utile, et je vois souvent des questions de personnes qui pourraient être facilement résolus par l'utilisation de les fonctions apropos, donc je pense que tout ce qui les rend plus visibles est une bonne chose! (J'ai aussi remarqué que apropos-library est apparu depuis que j'ajouté ces derniers, afin d'écrire cette réponse m'a été utile :)

;; Make apropos searches also find unbound symbols, and 
;; set new key-bindings for various other apropos commands. 
(setq apropos-do-all t) 
(global-set-key (kbd "C-h a") 'apropos-command) 
(define-prefix-command 'Apropos-Prefix nil "Apropos (a,d,f,l,v,C-v)") 
(global-set-key (kbd "C-h C-a") 'Apropos-Prefix) 
(define-key Apropos-Prefix (kbd "a") 'apropos) 
(define-key Apropos-Prefix (kbd "C-a") 'apropos) 
(define-key Apropos-Prefix (kbd "d") 'apropos-documentation) 
(define-key Apropos-Prefix (kbd "f") 'apropos-command) 
(define-key Apropos-Prefix (kbd "l") 'apropos-library) 
(define-key Apropos-Prefix (kbd "v") 'apropos-variable) 
(define-key Apropos-Prefix (kbd "C-v") 'apropos-value) 

Avec ces liaisons, type I C-h C-a chaque fois que je veux rechercher quelque chose , suivie le caractère approprié en fonction du type spécifique de recherche dont j'ai besoin (avec une invite pour m'aider si je ne me souviens pas des possibilités). Si je ne sais pas tout à fait ce que je cherche, alors une seconde C-a (ou plaine a) à l'invite exécutera un apropos.

Si je ne me souviens pas de ce que les caractères d'invite signifient réellement, le fait de taper de nouveau C-h à l'invite (par exemple, C-h C-a C-h) listera les liaisons.

3

Breadcrumb:

(require 'breadcrumb) 
(global-set-key [(control f2)]   'bc-set) 
(global-set-key [(f2)]     'bc-previous) 
(global-set-key [(shift f2)]   'bc-next) 
(global-set-key [(meta f2)]    'bc-list) 
0

mine ont quelques raccourcis clavier Windows ou Eclipse:

(global-set-key (kbd "<C-tab>") 'helm-mini) 
(global-set-key [M-f4]   'kill-emacs) 
(global-set-key (kbd "C-w")  'kill-this-buffer) 
(global-set-key (kbd "C-o")  'imenu) 
1
(global-set-key "\M-n" 'next-buffer) 
(global-set-key "\M-p" 'previous-buffer) 
(global-set-key (kbd "C-c w") (quote copy-word)) 
(global-set-key (kbd "C-c l") (quote copy-line)) 
(global-set-key (kbd "C-c p") (quote copy-paragraph)) 
(global-set-key (kbd "C-c s") (quote thing-copy-string-to-mark)) 
(global-set-key (kbd "C-c a") (quote thing-copy-parenthesis-to-mark)) 

(global-set-key "\C-o" 'other-window) 
(global-set-key "\M-o" 'other-window) 

(defvar my-keys-minor-mode-map (make-keymap) "my-keys-minor-mode keymap.") 
(define-key my-keys-minor-mode-map (kbd "C-,") 'beginning-of-buffer) 
(define-key my-keys-minor-mode-map (kbd "C-.") 'end-of-buffer) 
(define-minor-mode my-keys-minor-mode 
    "A minor mode so that my key settings override annoying major modes." 
    t " my-keys" 'my-keys-minor-mode-map) 
(my-keys-minor-mode 1) 
Questions connexes