(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。
答案 0 :(得分: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文件: - )
答案 1 :(得分:7)
我的一些不寻常的绑定:
(global-set-key [pause] 'emms-pause)
很长一段时间内首先很好地使用 pause 键!
(global-set-key [(super \\)] 'find-file-at-point)
全面有用。
(global-set-key [(super s)] 'shell)
(global-set-key [(meta p)] 'shell)
在第二个绑定到位后,我可以快速输入 M-p M-p RET 返回shell缓冲区并重复我在那里输入的最后一个命令。
然后是解除绑定:
(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))
答案 2 :(得分:5)
归功于http://sites.google.com/site/steveyegge2/effective-emacs
中的Steve Yegge(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意味着我曾经有过的意思真的很棒。
(另外查看该文章)
答案 3 :(得分:4)
我最喜欢的一个是同事推荐的东西,我最初认为我很讨厌:
重新映射箭头键(向上/向下/向左/向右)以滚动当前窗口。要移动光标,你仍然有C-n / p / f / b(或者是标签或标签,或其他)。
答案 4 :(得分:3)
(bind "C-t" (lookup-key global-map (kbd "C-x")))
我从不转置字符,因此当用作前缀键时,我将其反弹为C-x。我无法忍受Dvorak上“x”键的所有方式。
我今天也在使用这个宏:
(defmacro bind (key fn)
`(global-set-key (kbd ,key) ,(if (listp fn) fn `',fn)))
答案 5 :(得分:3)
(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)
答案 6 :(得分:2)
(global-set-key [(control w)] 'kill-this-buffer)
我已经本能地按Ctrl-W关闭缓冲区 - 自定义绑定使得emacs更容易。
是的,我意识到这背叛了我作为Windows家伙的起源。我们都犯错误......
答案 7 :(得分: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
)将列出绑定。
答案 8 :(得分:1)
(global-set-key(kbd“C-c k”)'browse-kill-ring)
(global-set-key(kbd“M - 。”)'etags-select-find-tag)
(global-set-key(kbd“M-s l”)'loccur)
(global-set-key(kbd“M-s /”)'多重匹配缓冲区)
(global-set-key(kbd“C-x M-b”)'埋葬缓冲区)
(global-set-key(kbd“C-x C-b”)'ibuffer)
(global-set-key(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)))))
;;使用与{windmove集成的framemove
(windmove-default-keybindings) ;default modifier is <SHIFT>
(when (require 'framemove nil :noerror)
(setq framemove-hook-into-windmove t))
答案 9 :(得分: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)
答案 10 :(得分: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)
答案 11 :(得分: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)
答案 12 :(得分:0)
我有一些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)