Каковы Ваши любимые глобальные привязки клавиш в emacs? [закрытый]

Вы можете достичь этого альтернативным способом, используя WebView и Google Docs, как показано ниже.

String url = "http://docs.google.com/gview?embedded=true&url="+YOUR_DOC_URL;

private void loadWebViewAndDocUrl()
{
    String googleDocViewer = "<iframe src=\""+url+"\" style=\"width:100%; height:100%;\" frameborder=\"0\" allowtransparency=\"true\"></iframe>";
    progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
    final WebView wvExternalLink = (WebView) view.findViewById(R.id.wvExternalLink);
    wvExternalLink.getSettings().setJavaScriptEnabled(true);

    wvExternalLink.loadData(googleDocViewer, "text/html", "utf-8");

    wvExternalLink.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            wvExternalLink.loadUrl(url);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            // Show progress till url loads completely using progressbar
        }
    });


}
25
задан Community 23 May 2017 в 11:47
поделиться

12 ответов

У меня их довольно много:

;; 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, посвященный глобальным клавишам: -)

25
ответ дан Bozhidar Batsov 28 November 2019 в 20:40
поделиться
(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)))
3
ответ дан Deniz Dogan 28 November 2019 в 20:40
поделиться

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

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

Да, я понимаю, что это выдает меня из Windows. Мы все совершаем ошибки ...

2
ответ дан zetetic 28 November 2019 в 20:40
поделиться
;; 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
ответ дан legoscia 28 November 2019 в 20:40
поделиться

(global-set-key (kbd "Cc k") ' browse-kill-ring )
(global-set-key (kbd "M-.")' etags-select-find-tag )
(глобальный набор ключей (kbd "Ms l") ' loccur )
(глобальный -set-key (kbd "Ms /") 'мульти-встречающиеся в совпадающих буферах)
(global-set-key (kbd "Cx Mb")' похоронный буфер)
(global-set-key (kbd "Cx Cb") 'ibuffer)
(global-set-key (kbd "M- /")' hippie-expand)

; ; Переключить шоу-трейлинг-пробел.
(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
ответ дан phils 28 November 2019 в 20:40
поделиться

У меня есть несколько комбинаций клавиш 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)
0
ответ дан Humberto Pinheiro 28 November 2019 в 20:40
поделиться

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

(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 , чтобы вернуться в буфер оболочки и повторить последнюю введенную мной команду.

Затем есть развязки:

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

На самом деле никогда не использовала столбец с заданной целью , и всегда спотыкалась о нем.

(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))
7
ответ дан 28 November 2019 в 20:40
поделиться

Благодарность за это принадлежит Стиву Йегге из 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 имею в виду то, что я привык иметь в виду.

(Также проверьте эту статью, чтобы узнать больше)

5
ответ дан 28 November 2019 в 20:40
поделиться

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

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

4
ответ дан 28 November 2019 в 20:40
поделиться
;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)
0
ответ дан 28 November 2019 в 20:40
поделиться

Я не перечислял их в своем первом ответе, но, оглядываясь назад, я всегда считал их полезными, и Я часто вижу вопросы от людей, которые можно легко решить с помощью функций 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)

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

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

2
ответ дан 28 November 2019 в 20:40
поделиться

Хлебная крошка :

(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
ответ дан 28 November 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: