Soru Emacs'taki favori global anahtar bağlarınız nelerdir? [kapalı]


Benimki:

(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 itibaren başka bir yığın taşma sorusu.


25
2018-06-26 17:36


Menşei




Cevaplar:


Bunlardan çok var:

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

Ben aslında global keybindings :-) adanmış bir Emacs Lisp dosyası var.


25
2018-06-26 19:27



Bu birazcık! - Vivi
Benim diğer yapılandırmamı görmelisiniz ;-) - Bozhidar Batsov
Mnogo blagodaria! - Hut8
Roll-your-kendi fonksiyonları ile örnekler dahil +1 (lambda ...). - Matt
bize gösterebilir misin ;; Jump to a definition in the current file. (This is awesome.) (global-set-key (kbd "C-x C-i") 'ido-imenu) İdo-imenu? - eugene


Benim sıra dışı alışkanlığımdan bazıları:

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

İlk iyi kullanım için Duraklat çok uzun bir zamanda anahtar!

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

Sadece tüm çevresinde yararlı.

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

İkinci ciltleme ile hızlıca yazabilirim M-p M-p RET kabuk tamponuna geri dönüp orada yazdığım son komutu tekrarlamak için.

Öyleyse açılmalar var:

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

Gerçekten hiçbir zaman kullanmadım set-goal-columnve her zaman üzerinde durmaya devam etti.

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

Yanlış yazdığımda nefret ediyorum Cı-z ve çerçevemi simgelemek.

Şimdi biraz meta aldık:

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

Sadece bir şeyler yazmamı sağlayan küçük bir tuş kaydedici cihaz:

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

7
2018-06-26 22:41





Bunun için kredi Steve Yegge'a gidiyor 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'nin ne demek istediğimi kastediyor olması gerçekten harika bir şey.

(Ayrıca daha fazla bilgi için makaleyi kontrol edin)


5
2018-06-26 18:28





Benim favorilerimden biri, ilk başta nefret ettiğimi düşündüğüm bir iş arkadaşının önerdiği bir şeydi:

Ok tuşları (yukarı / aşağı / sola / sağa) mevcut pencereyi kaydırmaya yeniden eşlenir. İmleci hareket ettirmek için hâlâ C-n / p / f / b (veya arama veya etiketler ya da her neyse) var.


4
2018-06-26 22:56





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

Karakterleri asla transpoze etmem, bu yüzden bir önek anahtarı olarak kullanıldığında C-x anlamına gelmek için rebound ediyorum. Dvorak'taki "x" anahtarının sonuna kadar uzanamam.

Bu makroyu da bugünden beri kullanıyorum:

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

3
2018-06-27 03:30



Komik, Dvorak'ta C-x'in daha kolay olduğunu düşünüyorum. :-) - Ken
Ek bir önek anahtarının nasıl oluşturulacağını gösteren örnek için +1. - Matt


İçerik haritası:

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

3
2017-07-16 02:39





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

Ctrl-W'yi bir arabellek kapatmak için içgüdüsel olarak vurmaktaydım - ciltleme emacs'ını benim için çok daha kolay hale getirdim.

Evet, bunun bir menşei Windows kullanıcısı olarak ihanet ettiğinin farkındayım. Hepimiz hata yaparız...


2
2018-06-26 23:14



Ters sorun oldukça kötüdür - sadece bazı metinleri kesmek / öldürmek istediğimde Windows uygulamalarını düzenli olarak kapatıyorum. - phils


Bunları ilk cevabımda listelemedim, ancak geçmişe baktığımda onları her zaman yararlı buldum ve sık sık insanların kullanımıyla kolayca çözülebilecek sorular soruyorum. apropos fonksiyonlar, bu yüzden onları daha görünür kılan bir şey iyi bir şeydir! (Ben de bunu fark ettim apropos-library Bunları eklediğimden beri ortaya çıktı, bu yüzden bu cevabı yazmak benim için yararlı oldu :)

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

Bu bağlamalar ile yazdım C-h C-a ne zaman aramak istiyorum bir şeyArdından, istediğim belirli bir arama türüne göre uygun karakter takip ediyorum (olasılıkları hatırlamıyorsam bana yardımcı olması için). Ne aradığımı tam olarak bilmiyorsam, o zaman bir saniye C-a (veya düz a) komut isteminde her şeyi kapsayan bir apropos.

İstenilen karakterlerin ne anlama geldiğini hatırlamıyorsam, yazarak C-h yine komut isteminde (ör. C-h C-a C-h) bağlamaları listeler.


2
2017-07-16 00:31





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

1
2018-06-30 16:14





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

1
2017-08-25 03:50