summary refs log tree commit diff stats
path: root/emacs/elisp/ap-functions.el
blob: bdc7faefeb328811f90bef6af8df0d314d2a74e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
;;;###autoload
(defun ap/remove-extra-cr ()
  "Remove extraneous CR codes from a file"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (search-forward "
" nil t)
      (replace-match ""))))

;;;###autoload
(defun copy-rectangle (start end)
  "Copy the region-rectangle."
  (interactive "r")
  (setq killed-rectangle (extract-rectangle start end)))

;;;###autoload
(defun eval-and-replace ()
  "Replace the preceding sexp with its value."
  (interactive)
  (backward-kill-sexp)
  (condition-case nil
      (prin1 (eval (read (current-kill 0)))
             (current-buffer))
    (error (message "Invalid expression")
           (insert (current-kill 0)))))

;;;###autoload
(defun shell-execute (to-current-buffer)
  (interactive "P")
  (let ((file-buffer (if (buffer-file-name)
                         (file-name-nondirectory (buffer-file-name))
                       ""))
        (command (read-shell-command "Shell command: " nil nil nil)))
    (shell-command (replace-regexp-in-string "%" file-buffer command) to-current-buffer)))

;;;###autoload
(defun narrow-to-region-indirect (start end)
  "Restrict editing in this buffer to the current region, indirectly."
  (interactive "r")
  (deactivate-mark)
  (let ((buf (clone-indirect-buffer nil nil)))
    (with-current-buffer buf
      (narrow-to-region start end))
      (switch-to-buffer buf)))

(provide 'ap-functions)