2010-06-26 2 views
25

Mine являются:Мои любимые глобальные привязки клавиш в 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) 

name-and-insert-last-keyboard-macro от another Stack Overflow question.

ответ

25

Я посчастливилось иметь довольно много из них:

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

Я на самом деле есть целый файл Emacs Lisp, посвященный глобальным привязок :-)

+0

, что это совсем немного! – Vivi

+2

Вы должны увидеть мою другую конфигурацию ;-) –

+0

Mnogo blagodaria! – Hut8

5

Заслуга в этом Стив Yegge в 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) 

Это действительно замечательно, что Ctrl-W средним, что я привык к тому, что имею в виду.

(Также убедитесь, что статья для более)

7

Некоторые из моих самых необычных переплетов:

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

Первого хорошее применение для пауза ключ в очень долгое время!

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

Просто все вокруг полезно.

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

Со вторым связывающим на месте, я могу быстро набрать М-р М-р RET вернуться в буфер оболочки и повторить последнюю команду я напечатанный там.

Тогда есть unbindings:

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

Никогда действительно было использовать для set-goal-column, и всегда держал расцепления над ним.

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

Я ненавижу, когда я случайно типа C-Z и сворачиваю мой кадр.

Теперь мы получаем немного меты:

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

Просто немного клавиша экономии устройства, которое позволяет мне писать такие вещи, как:

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

Один из моих любимых было что-то рекомендованное сотрудником, который Сначала я думал, что ненавижу:

Клавиши со стрелками (вверх/вниз/влево/вправо) переназначаются для прокрутки текущего окна. Чтобы переместить курсор, у вас все еще есть C-n/p/f/b (или isearch, или теги, или что-то еще).

2

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

Я уже ударяя Ctrl-W из инстинкта, чтобы закрыть буфер - настраивая связывания сделал Emacs гораздо проще для меня.

Да, я понимаю, это предает мое происхождение как парень Windows. Все мы делаем ошибки ...

+7

Обратная проблема еще хуже - я довольно регулярно закрываю приложения Windows, когда мне просто хотелось вырезать/убить какой-то текст. – phils

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

Я никогда не переставлять символы, так что я отскочить это означает C-х, когда используется в качестве ключа префикса. Я просто не могу дотянуться полностью за ключ «x» на Дворжаке.

Я также использую этот макрос с сегодняшнего дня:

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

Забавный, я думаю, что C-x проще на Дворжаке. :-) – Ken

+0

+1 для примера, показывающего, как создать дополнительный префиксный ключ. – Matt

1

(глобального установить ключ (KBD "Cc к") 'browse-kill-ring)
(глобальные набора ключей (кбд «M- . ") 'etags-select-find-tag)
(глобальный установить ключ (KBD "ж л")' loccur)
(глобальный установить ключ (KBD "Мс /")«мульти-происходит-в-согласующих-буфера)
(глобальный набор ключей (kbd "Cx Mb") 'bury-buffer)
(глобальный набор ключей (kbd) «C-x C-b») 'ibuffer)
(глобальный ключ-ключ (kbd "M- /")' hippie-expand)

;; Переключить show-trailing-whitespace.
(global-set-key (kbd "C-c M-w") (function (lambda() (interactive) (setq show-trailing-whitespace (not show-trailing-whitespace)))))

;; Используйте framemove, интегрированный с 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

Я не перечислить их в мой первый ответ, но задним числом я всегда находил их полезными, и я часто вижу вопросы от людей, которые могут быть легко решены с использованием функции apropos, поэтому я думаю, что все, что делает их более заметными, - это хорошо! (Я также заметил, что apropos-library появился, так как я первый добавил их, так что пишу этот ответ был полезным для меня :)

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

С этими креплениями, я типа C-h C-a всякий раз, когда я хочу, чтобы искать что-то , а затем соответствующий символ в соответствии с конкретным видом поиска, который мне требуется (с подсказкой, чтобы помочь мне, если я не могу запомнить возможности). Если я не знаю, что я ищу, то второй C-a (или простой a) в приглашении будет запускать всеохватывающий apropos.

Если я не могу вспомнить, что на самом деле означают символы подсказки, введите в командной строке C-h (т. Е. C-h C-a C-h).

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 есть несколько комбинаций клавиш Windows, или 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) 
Смежные вопросы