diff options
Diffstat (limited to 'emacs/elisp/my-buffers.el')
-rw-r--r-- | emacs/elisp/my-buffers.el | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/emacs/elisp/my-buffers.el b/emacs/elisp/my-buffers.el index d5c07c5..8c03905 100644 --- a/emacs/elisp/my-buffers.el +++ b/emacs/elisp/my-buffers.el @@ -9,5 +9,31 @@ (mark-whole-buffer) (copy-region-as-kill 1 (buffer-size)))) +(defun my/rename-this-buffer-and-file () + "Renames current buffer and file it is visiting." + (interactive) + (let ((name (buffer-name)) + (filename (buffer-file-name)) + (read-file-name-function 'read-file-name-default)) + (if (not (and filename (file-exists-p filename))) + (error "Buffer '%s' is not visiting a file!" name) + (let ((new-name (read-file-name "New name: " filename))) + (cond ((get-buffer new-name) + (error "A buffer named '%s' already exists!" new-name)) + (t + (rename-file filename new-name 1) + (rename-buffer new-name) + (set-visited-file-name new-name) + (set-buffer-modified-p nil) + (message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name)))))))) + +(defun my/uniquify-region-lines (beg end) + "Remove duplicate adjacent lines in region between BEG and END." + (interactive "*r") + (save-excursion + (goto-char beg) + (while (re-search-forward "^\\(.*\n\\)\\1+" end t) + (replace-match "\\1")))) + (provide 'my-buffers) ;;; my-buffers.el ends here |