aboutsummaryrefslogtreecommitdiff
path: root/.emacs.d
diff options
context:
space:
mode:
authorgxlin <[email protected]>2021-04-28 10:29:17 +0800
committergxlin <[email protected]>2021-04-28 10:29:17 +0800
commitc7d4dc60a1827ad2ef4748239fe4276140631848 (patch)
tree9dd75593e16d6471bc4d4a46b58a895481f18478 /.emacs.d
parent8aaabedde4f1ee045c9fedbcf20fecb3d217531a (diff)
downloaddotfiles-c7d4dc60a1827ad2ef4748239fe4276140631848.tar.gz
dotfiles-c7d4dc60a1827ad2ef4748239fe4276140631848.tar.bz2
dotfiles-c7d4dc60a1827ad2ef4748239fe4276140631848.zip
More config
Diffstat (limited to '.emacs.d')
-rw-r--r--.emacs.d/init.el43
-rw-r--r--.emacs.d/modes/init-evil-mode.el15
-rw-r--r--.emacs.d/modes/init-org-mode.el27
3 files changed, 52 insertions, 33 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index bf131b5..3c48275 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -8,22 +8,7 @@
(setq vc-follow-symlinks t)
(setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "backups"))))
-
-(defun set-exec-path-from-shell-PATH ()
- "Set up Emacs' `exec-path' and PATH environment variable to match
-that used by the user's shell.
-
-This is particularly useful under Mac OS X and macOS, where GUI
-apps are not started from a shell."
- (interactive)
- (let ((path-from-shell (replace-regexp-in-string
- "[ \t\n]*$" "" (shell-command-to-string
- "$SHELL --login -c 'echo $PATH'"
- ))))
- (setenv "PATH" path-from-shell)
- (setq exec-path (split-string path-from-shell path-separator))))
-
-(set-exec-path-from-shell-PATH)
+(setq-default fill-column 72)
(dolist (package '(use-package))
(unless (package-installed-p package)
@@ -61,9 +46,9 @@ apps are not started from a shell."
;; Company Mode
(use-package company
- :hook ((after-init . global-company-mode)
- (org-mode . (lambda () (company-mode -1)))
- (ledger-mode . (lambda () (company-mode -1)))))
+ :init
+ (setq company-global-modes '(emacs-lisp-mode))
+ :hook ((after-init . global-company-mode)))
;; Projectile
(use-package projectile
@@ -80,7 +65,7 @@ apps are not started from a shell."
(setq ivy-use-virtual-buffers t)
(setq ivy-count-format "(%d/%d) ")
(setq ivy-re-builders-alist
- '((t . ivy--regex-fuzzy)
+ '((read-file-name-internal . ivy--regex-fuzzy)
(t . ivy--regex-plus)))
(evil-define-key 'normal ivy-mode-map
(kbd "<leader>fb") 'ivy-switch-buffer
@@ -94,8 +79,26 @@ apps are not started from a shell."
:ensure t
:config
(dashboard-setup-startup-hook)
+ (setq dashboard-startup-banner nil)
(setq dashboard-items '((recents . 5)
(bookmarks . 5)
(projects . 5)
(agenda . 5)
(registers . 5))))
+
+(use-package markdown-mode
+ :ensure t
+ :commands (markdown-mode gfm-mode)
+ :mode (("README\\.md\\'" . gfm-mode)
+ ("\\.md\\'" . markdown-mode)
+ ("\\.markdown\\'" . markdown-mode))
+ :init
+ (setq markdown-command "multimarkdown"))
+
+(use-package exec-path-from-shell
+ :if (memq window-system '(mac ns))
+ :ensure t
+ :config
+ (exec-path-from-shell-initialize))
+
+(use-package avy)
diff --git a/.emacs.d/modes/init-evil-mode.el b/.emacs.d/modes/init-evil-mode.el
index ee7983a..ba04ca5 100644
--- a/.emacs.d/modes/init-evil-mode.el
+++ b/.emacs.d/modes/init-evil-mode.el
@@ -3,11 +3,11 @@
:hook (evil-org-mode . (lambda () (setq evil-want-C-i-jump nil)))
:init
(setq evil-want-integration t
+ evil-want-C-u-scroll t
+ evil-wannt-fine-undo t
evil-want-keybinding nil)
:config
(evil-set-leader 'normal ",")
- (setq evil-want-C-u-scroll t)
- (setq evil-want-fine-undo t)
(evil-set-undo-system 'undo-tree)
(evil-mode 1))
@@ -23,7 +23,14 @@
:config
(evil-escape-mode)
(setq-default
- evil-escape-key-sequence "jk"
- evil-escape-unordered-key-sequence t))
+ evil-escape-delay 0.2
+ evil-escape-key-sequence "jk"
+ evil-escape-unordered-key-sequence t))
+
+(use-package evil-easymotion
+ :ensure t
+ :after (evil avy)
+ :config
+ (evilem-default-keybindings "SPC"))
(provide 'init-evil-mode)
diff --git a/.emacs.d/modes/init-org-mode.el b/.emacs.d/modes/init-org-mode.el
index ca1be2a..a542b2c 100644
--- a/.emacs.d/modes/init-org-mode.el
+++ b/.emacs.d/modes/init-org-mode.el
@@ -1,5 +1,6 @@
(use-package org
:after evil
+ :commands org-agenda
:config
(setq org-directory "~/notes/")
(setq org-default-notes-file (concat org-directory "/inbox.org"))
@@ -14,7 +15,7 @@
(setq org-agenda-start-on-weekday 0)
(setq org-adapt-indentation nil)
(setq org-return-follows-link t)
- (setq org-log-done t)
+ (setq org-descriptive-links nil)
(evil-define-key 'normal 'global
(kbd "<leader>a") 'org-agenda
(kbd "<leader>l") 'org-store-link
@@ -22,28 +23,36 @@
(evil-define-key 'normal org-mode-map
(kbd "TAB") 'org-cycle
(kbd "RET") 'org-open-at-point)
+ (setq org-agenda-skip-deadline-prewarning-if-scheduled t)
+ ; todo
(setq org-todo-keywords
- '((sequence "TODO" "|" "DONE" "CANCELED")))
+ '((sequence "TODO" "NEXT" "WAITING" "SOMEDAY" "PROJECT" "|" "DONE" "CANCELED")))
+ (setq org-log-done t)
+
+ ; tags
(setq org-tag-alist '((:startgroup . nil)
("work" . ?w) ("home" . ?h) ("errants" . ?e)
(:endgroup . nil)
("@phone" . ?p)))
- (setq org-icalendar-include-todo t)
- (setq org-icalendar-combined-agenda-file "~/notes/org.ics")
- (add-hook 'org-mode-hook
- (lambda ()
- (add-hook 'after-save-hook 'org-icalendar-combine-agenda-files nil t))))
+ ; org babel
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((shell . t))))
(use-package evil-org
:ensure t
:after (org evil)
:hook (org-mode . (lambda () (evil-org-mode)))
-
:config
(evil-org-set-key-theme '(navigation insert textobjects additional calendar todo))
(require 'evil-org-agenda)
- (evil-org-agenda-set-keys))
+ (evil-org-agenda-set-keys)
+ (evil-define-key 'motion org-agenda-mode-map
+ (kbd "q") (lambda ()
+ (interactive)
+ (org-save-all-org-buffers)
+ (org-agenda-quit))))
(provide 'init-org-mode)