initial commit
This commit is contained in:
commit
0a37165d0e
32
README.org
Normal file
32
README.org
Normal file
@ -0,0 +1,32 @@
|
||||
#+TITLE: Dired-Phundrak layer
|
||||
#+author: Lucien “Phundrak” Cartier-Tilet
|
||||
#+TAGS: layer|dired|configuration|phundrak
|
||||
|
||||
[[img/dired-phundrak.png]]
|
||||
|
||||
* Table of Contents :TOC_4_gh:noexport:
|
||||
- [[#description][Description]]
|
||||
- [[#features][Features:]]
|
||||
- [[#install][Install]]
|
||||
- [[#key-bindings][Key bindings]]
|
||||
|
||||
* Description
|
||||
This layer adds my custom configuration of Dired on top of the default dired
|
||||
configuration for Spacemacs.
|
||||
|
||||
** Features:
|
||||
- Autocomplete
|
||||
- Lint
|
||||
- Refactor
|
||||
- ...
|
||||
|
||||
* Install
|
||||
To use this configuration layer, add it to your =~/.spacemacs=. You will need
|
||||
to add =dired-phundrak= to the existing =dotspacemacs-configuration-layers=
|
||||
list in this file.
|
||||
|
||||
* Key bindings
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+--------------|
|
||||
| ~SPC x x x~ | Does thing01 |
|
96
funcs.el
Normal file
96
funcs.el
Normal file
@ -0,0 +1,96 @@
|
||||
;;; packages.el --- dired-phundrak layer functions file for Spacemacs.
|
||||
;;
|
||||
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Lucien Cartier-Tilet <phundrak@phundrak.fr>
|
||||
;; URL: https://github.com/syl20bnr/spacemacs
|
||||
;;
|
||||
;; This file is not part of GNU Emacs.
|
||||
;;
|
||||
;;; License: GPLv3
|
||||
|
||||
; Custom functions ;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defun phundrak//open-marked-files (&optional @fname)
|
||||
"Open all marked files in dired buffer as new Emacs buffers"
|
||||
(interactive)
|
||||
(let* (($file-list (if @fname
|
||||
(progn (list @fname))
|
||||
(if (string-equal major-mode "dired-mode")
|
||||
(dired-get-marked-files)
|
||||
(list (buffer-file-name))))))
|
||||
(mapc (lambda ($fpath)
|
||||
(find-file $fpath))
|
||||
$file-list)))
|
||||
|
||||
(defun xah//open-in-external-app (&optional @fname)
|
||||
"Open the current file or dired marked file in external app.
|
||||
The app is chosen from your OS’ preference.
|
||||
|
||||
When called in emacs lisp, if @fname is given, open that.
|
||||
|
||||
URL `http://ergoemacs.org/emacs/emacs_dired_open_file_in_ext_apps.html'
|
||||
Version 2019-01-18"
|
||||
(interactive)
|
||||
(let* (($file-list (if @fname
|
||||
(progn (list @fname))
|
||||
(if (string-equal major-mode "dired-mode")
|
||||
(dired-get-marked-files)
|
||||
(list (buffer-file-name)))))
|
||||
($do-it-p (if (<= (length $file-list) 5)
|
||||
t
|
||||
(y-or-n-p "Open more than 5 files? "))))
|
||||
(when $do-it-p
|
||||
(mapc (lambda ($fpath)
|
||||
(let ((process-connection-type nil))
|
||||
(start-process "" nil "xdg-open" $fpath)))
|
||||
$file-list))))
|
||||
|
||||
(defun xah//dired-sort ()
|
||||
"Sort dired dir listing in different ways. Prompt for a choice.
|
||||
URL `http://ergoemacs.org/emacs/dired_sort.html'
|
||||
Version 2018-12-23, modified by Phundrak on 2019-08-06"
|
||||
(interactive)
|
||||
(let ($sort-by $arg)
|
||||
(setq $sort-by (ido-completing-read "Sort by:" '( "name" "size" "date" "extension" )))
|
||||
(cond
|
||||
((equal $sort-by "name") (setq $arg "-ahl --group-directories-first"))
|
||||
((equal $sort-by "date") (setq $arg "-ahl -t --group-directories-first"))
|
||||
((equal $sort-by "size") (setq $arg "-ahl -S --group-directories-first"))
|
||||
((equal $sort-by "extension") (setq $arg "-ahlD -X --group-directories-first"))
|
||||
(t (error "logic error 09535" )))
|
||||
(dired-sort-other $arg )))
|
||||
|
||||
(defun xah//dired-rename-space-to-underscore ()
|
||||
"In dired, rename current or marked files by replacing space to
|
||||
underscore _. If not in `dired', do nothing.
|
||||
|
||||
URL
|
||||
`http://ergoemacs.org/emacs/elisp_dired_rename_space_to_underscore.html'
|
||||
Version 2017-01-02"
|
||||
(interactive)
|
||||
(require 'dired-aux)
|
||||
(if (equal major-mode 'dired-mode)
|
||||
(progn
|
||||
(mapc (lambda (x)
|
||||
(when (string-match " " x )
|
||||
(dired-rename-file x (replace-regexp-in-string " " "_" x) nil)))
|
||||
(dired-get-marked-files ))
|
||||
(revert-buffer))
|
||||
(user-error "Not in dired.")))
|
||||
|
||||
(defun xah//dired-rename-space-to-hyphen ()
|
||||
"In dired, rename current or marked files by replacing
|
||||
space to hyphen -. If not in `dired', do nothing.
|
||||
URL `http://ergoemacs.org/emacs/elisp_dired_rename_space_to_underscore.html'
|
||||
Version 2016-12-22"
|
||||
(interactive)
|
||||
(require 'dired-aux)
|
||||
(if (equal major-mode 'dired-mode)
|
||||
(progn
|
||||
(mapc (lambda (x)
|
||||
(when (string-match " " x )
|
||||
(dired-rename-file x (replace-regexp-in-string " " "_" x) nil)))
|
||||
(dired-get-marked-files ))
|
||||
(revert-buffer))
|
||||
(user-error "Not in dired")))
|
12
keybindings.el
Normal file
12
keybindings.el
Normal file
@ -0,0 +1,12 @@
|
||||
;;; keybindings.el --- dired-phundrak layer keybinding file for Spacemacs.
|
||||
;;
|
||||
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Lucien Cartier-Tilet <phundrak@phundrak.fr>
|
||||
;; URL: https://github.com/syl20bnr/spacemacs
|
||||
;;
|
||||
;; This file is not part of GNU Emacs.
|
||||
;;
|
||||
;;; License: GPLv3
|
||||
|
||||
(global-set-key (kbd "<s-f1>") (lambda () (interactive) (dired "~/")))
|
38
packages.el
Normal file
38
packages.el
Normal file
@ -0,0 +1,38 @@
|
||||
;;; packages.el --- dired-phundrak layer packages file for Spacemacs.
|
||||
;;
|
||||
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Lucien Cartier-Tilet <phundrak@phundrak.fr>
|
||||
;; URL: https://github.com/syl20bnr/spacemacs
|
||||
;;
|
||||
;; This file is not part of GNU Emacs.
|
||||
;;
|
||||
;;; License: GPLv3
|
||||
|
||||
(defconst dired-phundrak-packages '(dired-x image-dired+ org-download)
|
||||
"The list of Lisp packages required by the dired-phundrak layer.")
|
||||
|
||||
(defun dired-phundrak/post-init-dired-x ()
|
||||
"Initializes dired-x and adds keybindings for its exposed functionalities."
|
||||
(use-package dired-x
|
||||
:defer t
|
||||
:init (progn
|
||||
(define-key dired-mode-map "f" 'phundrak//open-marked-files)
|
||||
(define-key dired-mode-map "F" 'xah//open-in-external-app)
|
||||
(define-key dired-mode-map "s" 'xah//dired-sort)
|
||||
(define-key dired-mode-map "-" 'xah//dired-rename-space-to-hyphen)
|
||||
(define-key dired-mode-map "_" 'xah//dired-rename-space-to-underscore))))
|
||||
|
||||
(defun dired-phundrak/init-image-dired+ ()
|
||||
"Initializes image-dired+ and adds keybindings for its exposed functionalities."
|
||||
(use-package image-dired+
|
||||
:defer t
|
||||
:init ()))
|
||||
|
||||
(defun dired-phundrak/post-init-org-download ()
|
||||
"Initializes org-download and adds keybindings for its exposed functionalities."
|
||||
(use-package org-download
|
||||
:defer t
|
||||
:init ()))
|
||||
|
||||
;;; packages.el ends here
|
Reference in New Issue
Block a user