;;; Code: (defun mk/kill-other-buffers () "Kill all other buffers." (interactive) (mapc (lambda (buffer) (when (and (buffer-file-name buffer) (not (eq buffer (current-buffer)))) (kill-buffer buffer))) (buffer-list))) (defun mk/format-xml () (interactive) (shell-command-on-region 1 (point-max) "xmllint --format -" (current-buffer) t) ) ;; Copy the entire buffer. (defun mk/copy-all () "Copy entire buffer to clipboard." (interactive) (clipboard-kill-ring-save (point-min) (point-max))) (defun mk/create-directory () "Create a directory and refresh neotree." (interactive) (call-interactively #'make-directory) (other-window -1)) (bind-key* (kbd "C-c d n") 'mk/create-directory) (defun mk/delete-file () "Delete a file and refresh neotree." (interactive) (call-interactively #'delete-file)) (bind-key* (kbd "C-c f d") 'mk/delete-file) (defun mk/create-file (filename) "Create a file and refresh neotree. FILENAME File to create." (interactive (list (read-file-name "Enter your file name: " nil nil nil (file-name-nondirectory "")))) (make-empty-file filename) (find-file filename)) (bind-key* (kbd "C-c f n") 'mk/create-file) (defun mk/delete-directory () "Delete a file and refresh neotree." (interactive) (call-interactively #'delete-directory)) (bind-key* (kbd "C-c d d") 'mk/delete-directory) ;; source: http://steve.yegge.googlepages.com/my-dot-emacs-file (defun mk/rename-file (new-name) "Renames both current buffer and file it's visiting to NEW-NAME." (interactive "sNew name: ") (let ((name (buffer-name)) (filename (buffer-file-name))) (if (not filename) (message "Buffer '%s' is not visiting a file!" name) (if (get-buffer new-name) (message "A buffer named '%s' already exists!" new-name) (progn (rename-file filename new-name 1) (rename-buffer new-name) (set-visited-file-name new-name) (set-buffer-modified-p nil) ;(neotree-show) ;(neotree-refresh) (other-window -1)))))) (bind-key* (kbd "C-c f r") 'mk/rename-file) (provide 'mk) ;;; mk.el ends here