emacs - dired-narrow
[dotfiles.git] / emacs.d / config.org
index b65c320..9e8e6f6 100644 (file)
@@ -1419,7 +1419,7 @@ 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 ()
@@ -1433,6 +1433,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 +1462,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 ()
@@ -1470,29 +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,"))
+     "Δ: 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 ".."))
-
-  (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 +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
@@ -1535,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