如何在邪恶模式下轻松导航窗口动作?

Jus*_*mas 7 emacs evil-mode

在vim中,我在.vimrc中有这个:

" Easy window navigation
map <C-h> <C-w>h
map <C-j> <C-w>j
map <C-k> <C-w>k
map <C-l> <C-w>l
Run Code Online (Sandbox Code Playgroud)

如何在邪恶模式下获得简易窗口导航?

此外,在vim"+将复制到我的系统剪贴板?这似乎在emacs中不起作用.

$ emacs --version
Run Code Online (Sandbox Code Playgroud)

GNU Emacs 24.3.1版权所有(C)2013 Free Software Foundation,Inc.GNU Emacs绝对不提供任何担保.您可以根据GNU通用公共许可证的条款重新分发Emacs的副本.有关这些问题的更多信息,请参阅名为COPYING的文件.

$ cat .emacs
Run Code Online (Sandbox Code Playgroud)

;;

;; Package manager and better repos
(require 'package)
(add-to-list 'package-archives 
                 '("marmalade" .
                         "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(package-initialize)

(setq backup-directory-alist `(("." . "~/.emacs.d/saves")))

;; Indents, tab as spaces
(setq-default indent-tabs-mode nil)
(setq default-tab-width 2)

;; evil-mode
(eval-after-load "evil"
  '(progn
     (define-key evil-normal-state-map (kbd "C-h") 'evil-window-left)
     (define-key evil-normal-state-map (kbd "C-j") 'evil-window-down)
     (define-key evil-normal-state-map (kbd "C-k") 'evil-window-up)
     (define-key evil-normal-state-map (kbd "C-l") 'evil-window-right)))
(require 'evil)
(evil-mode 1)
;(setcdr evil-insert-state-map nil)
;(define-key evil-insert-state-map [escape] 'evil-normal-state)

;; Fun stuff
(require 'jabber-autoloads)
(require 'jabber)
Run Code Online (Sandbox Code Playgroud)

its*_*eyd 11

您可以添加要用于的键绑定evil-normal-state-map:

(eval-after-load "evil"
  '(progn
     (define-key evil-normal-state-map (kbd "C-h") 'evil-window-left)
     (define-key evil-normal-state-map (kbd "C-j") 'evil-window-down)
     (define-key evil-normal-state-map (kbd "C-k") 'evil-window-up)
     (define-key evil-normal-state-map (kbd "C-l") 'evil-window-right)))
Run Code Online (Sandbox Code Playgroud)

包含代码eval-after-load是必要的,以确保evil-normal-state-map在进行调用时定义/可用define-key.

如果你想在其他"状态"(例如"运动"状态)中使用相同的绑定,只需将它们添加到相应的键映射中,如上所示(在"运动"状态的情况下,相应的映射是叫evil-motion-state-map).


要让Emacs使用系统剪贴板,请尝试设置x-select-enable-clipboard为非nil值:

(setq x-select-enable-clipboard t)
Run Code Online (Sandbox Code Playgroud)

还有使用剪贴板的杀戮和劫持的特定命令.从文档:

  • clipboard-kill-region:

    杀死该区域,并将其保存在X剪贴板中.

  • clipboard-kill-ring-save:

    复制区域杀死响铃,并保存在X剪贴板中.