From: Peng Li Date: Sun, 31 Jul 2016 03:32:10 +0000 (+0800) Subject: emacs - dired mode open file shell command X-Git-Url: http://47.100.26.94:8080/?a=commitdiff_plain;h=99bbdf423fb3e58f2a1fcc4260609bbb0e7d222c;p=dotfiles.git emacs - dired mode open file shell command --- diff --git a/emacs.d/config.org b/emacs.d/config.org index b65c320..1928499 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -1420,6 +1420,7 @@ Color for Man-mode * 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 () @@ -1433,6 +1434,9 @@ Color for Man-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) @@ -1459,6 +1463,11 @@ Color for Man-mode (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 () @@ -1476,23 +1485,8 @@ Color for Man-mode "Go to higher level directory" (interactive) (find-alternate-file "..")) - - (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"))) - #+END_SRC -dired utils #+BEGIN_SRC emacs-lisp :tangle yes :results silent (defun sd/dired-new-file () "Create a new file in dired mode" @@ -1512,6 +1506,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 @@ -1535,16 +1530,22 @@ 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") + ("\\.cue?\\'" "audacious"))) #+END_SRC ** dired-hacks