X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=9e8e6f6d3b4e05044b2eab61c8fa8d7398cf430a;hb=d9ac4fa7a7e4a136a3439fe81d9d13245470383d;hp=d3c5db5ab067ee58cc883319508a3a61fcf5d5e7;hpb=6368c2a1051056573e4b55e4d56a3e3b65c98c70;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index d3c5db5..9e8e6f6 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -1096,6 +1096,14 @@ Toggle an eshell in split window below, refer [[http://www.howardism.org/Technic (global-set-key (kbd "s-e") 'sd/toggle-eshell-here) #+END_SRC +** exec-path-from-shell +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package exec-path-from-shell + :ensure t + :config + (exec-path-from-shell-initialize)) +#+END_SRC + ** TODO smart display * Misc Settings @@ -1300,25 +1308,6 @@ Type =o= to go to the link #+END_SRC -** Tabbar - -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - - ;; (use-package tabbar-ruler - ;; :ensure t - ;; :init - ;; (setq tabbar-ruler-global-tabbar t) - ;; (setq tabbar-ruler-global-ruler t) - ;; (setq tabbar-ruler-popu-menu t) - ;; (setq tabbar-ruler-popu-toolbar t) - ;; (setq tabbar-use-images t) - ;; :config - ;; (tabbar-ruler-group-by-projectile-project) - ;; (global-set-key (kbd "s-1") 'tabbar-forward-group) - ;; (global-set-key (kbd "s-2") 'tabbar-ruler-forward)) - -#+END_SRC - ** View only for some directory When see function by =C-h f=, and visit the source code, I would like the buffer is read only. See [[http://emacs.stackexchange.com/questions/3676/how-to-enter-view-only-mode-when-browsing-emacs-source-code-from-help/3681#3681][here]] #+BEGIN_SRC emacs-lisp :tangle yes :results silent @@ -1430,38 +1419,54 @@ Color for Man-mode #+END_SRC * Dired -** Dired config +** Dired bindings =C-o= is defined as a global key for window operation, here unset it in dired mode #+BEGIN_SRC emacs-lisp :tangle yes :results silent (defun sd/dired-key-map () "My keybindings for dired" (interactive) - (define-key dired-mode-map (kbd "SPC") 'scroll-up-command) - (define-key dired-mode-map (kbd "S-SPC") 'scroll-down-command) + ;; these two prefix are used globally (define-key dired-mode-map (kbd "C-o") nil) (define-key dired-mode-map (kbd "M-s") nil) - ;; (define-key dired-mode-map (kbd "l") 'dired-isearch-filenames) + ;; toggle hidden files (define-key dired-mode-map (kbd "H") 'dired-omit-mode) + ;; scroll + (define-key dired-mode-map (kbd "SPC") 'scroll-up-command) + (define-key dired-mode-map (kbd "DEL") 'scroll-down-command) + (define-key dired-mode-map (kbd "j") 'diredp-next-line) + (define-key dired-mode-map (kbd "k") 'diredp-previous-line) + (define-key dired-mode-map (kbd "g") 'dired-goto-file) + ;; (define-key dired-mode-map (kbd "S-SPC") 'scroll-down-command) + ;; jump to fil/dirs + (define-key dired-mode-map (kbd "f") 'dired-isearch-filenames) + ;; subdir ;; i dired-maybe-insert-subdir ;; o dired-find-file-other-window (switch to other window) ;; O dired-display-file + (define-key dired-mode-map (kbd "G") 'ido-dired) (define-key dired-mode-map (kbd "c") 'sd/dired-new-file) (define-key dired-mode-map (kbd "h") 'dired-summary) (define-key dired-mode-map (kbd "r") 'revert-buffer) - (define-key dired-mode-map (kbd "f") 'dired-isearch-filenames) - (define-key dired-mode-map (kbd "DEL") (lambda () (interactive) (find-alternate-file ".."))) + (define-key dired-mode-map (kbd "l") 'dired-display-file) + (define-key dired-mode-map [C-backspace] 'sd/dired-high-level-dir) (define-key dired-mode-map (kbd "?") 'describe-mode) (define-key dired-mode-map (kbd "z") #'sd/dired-get-size) (define-key dired-mode-map (kbd "C-d") 'dired-kill-subdir) (define-key dired-mode-map (kbd "M-d") 'dired-kill-subdir) (define-key dired-mode-map (kbd "J") 'diredp-next-subdir) + (define-key dired-mode-map (kbd "TAB") 'diredp-next-subdir) (define-key dired-mode-map (kbd "K") 'diredp-prev-subdir) (define-key dired-mode-map (kbd "O") 'dired-display-file) - (define-key dired-mode-map (kbd "I") 'other-window)) + (define-key dired-mode-map (kbd "I") 'other-window)) (use-package dired :config (require 'dired-x) + ;; also load dired+ + (use-package dired+ + :ensure t + :init (setq diredp-hide-details-initially-flag nil)) + (setq dired-omit-mode t) (setq dired-omit-files (concat dired-omit-files "\\|^\\..+$")) (add-hook 'dired-mode-hook (lambda () @@ -1473,24 +1478,14 @@ Color for Man-mode (interactive) (dired-why) (message - "Δ: d-delete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, c-create, +new dir, r-evert, h-summary, ?-help,")) - - (setq dired-guess-shell-alist-user - '(("\\.pdf\\'" "evince" "okular") - ("\\.\\(?:djvu\\|eps\\)\\'" "evince") - ("\\.\\(?:jpg\\|jpeg\\|png\\|gif\\|xpm\\)\\'" "eog") - ("\\.\\(?:xcf\\)\\'" "gimp") - ("\\.csv\\'" "libreoffice") - ("\\.tex\\'" "pdflatex" "latex") - ("\\.\\(?:mp4\\|mkv\\|avi\\|flv\\|ogv\\)\\(?:\\.part\\)?\\'" - "vlc") - ("\\.\\(?:mp3\\|flac\\)\\'" "rhythmbox") - ("\\.html?\\'" "firefox") - ("\\.cue?\\'" "audacious"))) + "Δ: d-delete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, c-create, +new dir, r-evert, /-filter, h-summary, ?-help")) + (defun sd/dired-high-level-dir () + "Go to higher level directory" + (interactive) + (find-alternate-file "..")) #+END_SRC -dired utils #+BEGIN_SRC emacs-lisp :tangle yes :results silent (defun sd/dired-new-file () "Create a new file in dired mode" @@ -1510,6 +1505,7 @@ dired utils (match-string 1)))))) #+END_SRC +** disable ido when dired new file When create a new directory, I want to disalbe =ido= completion. see [[http://stackoverflow.com/questions/7479565/emacs-ido-mode-and-creating-new-files-in-directories-it-keeps-changing-the-dire][here]]. Thhis code snippets copied from [[https://emacs.stackexchange.com/questions/13713/how-to-disable-ido-in-dired-create-directory/13795#13795?newreg%3Ddb17c20f7af3490fb11cf15f1d888e9e][How to disable IDO in ‘dired-create-directory’]] #+BEGIN_SRC emacs-lisp :tangle yes :results silent @@ -1533,31 +1529,40 @@ Disalble =ido= when new a directory or file in =dired= mode (mk-disable-ido 'sd/dired-new-file) #+END_SRC -** Dired+ +** Dired open with +=!= =dired-do-shell-command= +=&= =dired-do-async-shell-command= +here on Mac, just use "open" commands to pen =.pdf=, =.html= and image files #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package dired+ - :ensure t - :init - (setq diredp-hide-details-initially-flag nil) - :config - (define-key dired-mode-map (kbd "j") 'diredp-next-line) - (define-key dired-mode-map (kbd "k") 'diredp-previous-line) - (define-key dired-mode-map (kbd "g") 'dired-goto-file)) + (setq dired-guess-shell-alist-user + '(("\\.pdf\\'" "open" "okular") + ("\\.\\(?:djvu\\|eps\\)\\'" "evince") + ("\\.\\(?:jpg\\|jpeg\\|png\\|gif\\|xpm\\)\\'" "open") + ("\\.\\(?:xcf\\)\\'" "gimp") + ("\\.csv\\'" "libreoffice") + ("\\.tex\\'" "pdflatex" "latex") + ("\\.\\(?:mp4\\|mkv\\|avi\\|flv\\|ogv\\)\\(?:\\.part\\)?\\'" "mplayer") + ("\\.\\(?:mp3\\|flac\\)\\'" "rhythmbox") + ("\\.html?\\'" "open") + ("\\.dmg\\'" "open") + ("\\.cue?\\'" "audacious"))) #+END_SRC ** dired-hacks #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package dired-hacks-utils - :ensure t) - - - (defconst my-dired-media-files-extensions '("mp3" "mp4" "MP3" "MP4" "avi" "mpg" "flv" "ogg" "wmv" "mkv" "mov" "wma") - "Media file extensions that should launch in VLC.") + :ensure t + :defer t) +#+END_SRC - (add-to-list 'dired-guess-shell-alist-user - (list (concat "\\." - (regexp-opt my-dired-media-files-extensions) - "\\'") "mplayer")) +** dired-narrow +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + ;;narrow dired to match filter + (use-package dired-narrow + :ensure t + :commands (dired-narrow) + :bind (:map dired-mode-map + ("/" . dired-narrow))) #+END_SRC * Ibuffer @@ -2264,7 +2269,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del ;; ibuffer, dired, eshell, bookmarks ;; ("d" ace-delete-window "ace-one" :exit t) ("C-o" ido-switch-buffer nil :exit t) - ("d" projectile-dired nil :exit t) + ("d" sd/project-or-dired-jump nil :exit t) ("b" ibuffer nil n:exit t) ("e" eshell nil :exit t) ("m" bookmark-jump-other-window nil :exit t) @@ -2287,6 +2292,14 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del (global-unset-key (kbd "C-o")) (global-set-key (kbd "C-o") 'sd/hydra-window/body) + + (defun sd/project-or-dired-jump () + "If under project, jump to the root directory, otherwise + jump to dired of current file" + (interactive) + (if (projectile-project-p) + (projectile-dired) + (dired-jump))) #+END_SRC ** Motion