summary refs log tree commit diff
path: root/emacs/elisp/my-buffers.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/elisp/my-buffers.el')
-rw-r--r--emacs/elisp/my-buffers.el26
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