;;; evil-org-agenda.el --- evil keybindings for org-agenda-mode ;; Copyright (C) 2012-2017 by Somelauw ;; Maintainer: Somelauw ;; Original-author: Edward Tjörnhammar ;; URL: https://github.com/Somelauw/evil-org-mode.git ;; Git-Repository: git://github.com/Somelauw/evil-org-mode.git ;; Created: 2012-06-14 ;; Forked-since: 2017-02-12 ;; Version: 0.9.6 ;; Package-Requires: ((emacs "24.4") (evil "1.0") (org "8.0.0")) ;; Keywords: evil vim-emulation org-mode key-bindings presets ;; This file is not part of GNU Emacs ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;; Minimal config ;; (evil-org-agenda-set-keys) ;;; Commentary: ;; ;; Known Bugs: ;; See, https://github.com/Somelauw/evil-org-mode/issues ;; ;;; Code: (require 'evil) (require 'org) (defun evil-org-agenda-set-keys () "Set motion state keys for `org-agenda'." (evil-set-initial-state 'org-agenda-mode 'motion) ;; Horizontal movements have little use, thus we can override "f" and "t". ;; "w", "b", "e", "ge" and their upcase counterparts are preserved. (evil-define-key 'motion org-agenda-mode-map ;; Unused keys: D, X ;; open (kbd "") 'org-agenda-goto (kbd "S-") 'org-agenda-goto (kbd "g TAB") 'org-agenda-goto (kbd "RET") 'org-agenda-switch-to (kbd "M-RET") 'org-agenda-recenter (kbd "SPC") 'org-agenda-show-and-scroll-up (kbd "") 'org-agenda-show-scroll-down (kbd "") 'org-agenda-show-scroll-down ;; motion "j" 'org-agenda-next-line "k" 'org-agenda-previous-line "gj" 'org-agenda-next-item "gk" 'org-agenda-previous-item "gH" 'evil-window-top "gM" 'evil-window-middle "gL" 'evil-window-bottom (kbd "C-j") 'org-agenda-next-item (kbd "C-k") 'org-agenda-previous-item (kbd "[[") 'org-agenda-earlier (kbd "]]") 'org-agenda-later ;; manipulation ;; We follow standard org-mode bindings (not org-agenda bindings): ;; change todo items and priorities. ;; M- drag lines. ;; M- cannot demote/promote, we use it for "do-date". "J" 'org-agenda-priority-down "K" 'org-agenda-priority-up "H" 'org-agenda-do-date-earlier "L" 'org-agenda-do-date-later "t" 'org-agenda-todo (kbd "M-j") 'org-agenda-drag-line-forward (kbd "M-k") 'org-agenda-drag-line-backward (kbd "C-S-h") 'org-agenda-todo-previousset ; Original binding "C-S-" (kbd "C-S-l") 'org-agenda-todo-nextset ; Original binding "C-S-" ;; undo "u" 'org-agenda-undo ;; actions "dd" 'org-agenda-kill "dA" 'org-agenda-archive "da" 'org-agenda-archive-default-with-confirmation "ct" 'org-agenda-set-tags "ce" 'org-agenda-set-effort "cT" 'org-timer-set-timer "i" 'org-agenda-diary-entry "a" 'org-agenda-add-note "A" 'org-agenda-append-agenda "C" 'org-agenda-capture ;; mark "m" 'org-agenda-bulk-toggle "~" 'org-agenda-bulk-toggle-all "*" 'org-agenda-bulk-mark-all "%" 'org-agenda-bulk-mark-regexp "M" 'org-agenda-bulk-unmark-all "x" 'org-agenda-bulk-action ;; refresh "gr" 'org-agenda-redo "gR" 'org-agenda-redo-all ;; quit "ZQ" 'org-agenda-exit "ZZ" 'org-agenda-quit ;; display ;; "Dispatch" can prefix the following: ;; 'org-agenda-toggle-deadlines ;; 'org-agenda-toggle-diary ;; 'org-agenda-follow-mode ;; 'org-agenda-log-mode ;; 'org-agenda-entry-text-mode ;; 'org-agenda-toggle-time-grid ;; 'org-agenda-day-view ;; 'org-agenda-week-view ;; 'org-agenda-year-view "gD" 'org-agenda-view-mode-dispatch "ZD" 'org-agenda-dim-blocked-tasks ;; filter "sc" 'org-agenda-filter-by-category "sr" 'org-agenda-filter-by-regexp "se" 'org-agenda-filter-by-effort "st" 'org-agenda-filter-by-tag "s^" 'org-agenda-filter-by-top-headline "ss" 'org-agenda-limit-interactively "S" 'org-agenda-filter-remove-all ;; clock "I" 'org-agenda-clock-in ; Original binding "O" 'org-agenda-clock-out ; Original binding "cg" 'org-agenda-clock-goto "cc" 'org-agenda-clock-cancel "cr" 'org-agenda-clockreport-mode ;; go and show "." 'org-agenda-goto-today ; TODO: What about evil-repeat? "gc" 'org-agenda-goto-calendar "gC" 'org-agenda-convert-date "gd" 'org-agenda-goto-date "gh" 'org-agenda-holidays "gm" 'org-agenda-phases-of-moon "gs" 'org-agenda-sunrise-sunset "gt" 'org-agenda-show-tags "p" 'org-agenda-date-prompt "P" 'org-agenda-show-the-flagging-note ;; 'org-save-all-org-buffers ; Original binding "C-x C-s" ;; Others "+" 'org-agenda-manipulate-query-add "-" 'org-agenda-manipulate-query-subtract)) (provide 'evil-org-agenda) ;;; evil-org-agenda.el ends here