Imported sources
[vee.git] / editing.el
blobd4600b818053040cf44eb21204cac745e6ac506d
1 (defun act-on-line-or-region (function)
2 (funcall function
3 (if mark-active (region-beginning) (line-beginning-position))
4 (if mark-active (region-end) (line-end-position))))
6 (defun comment-or-uncomment-line-or-region nil
7 (interactive)
8 (act-on-line-or-region 'comment-or-uncomment-region))
10 (defun end-of-line-or-last-not-blank (&optional n)
11 (interactive)
12 (if (= (point) (save-excursion (end-of-line n) (point)))
13 (skip-syntax-backward "-")
14 (end-of-line n)))
16 (defun back-to-indentation-or-beginning (&optional n)
17 (interactive)
18 (if (= (point) (save-excursion (back-to-indentation) (point)))
19 (beginning-of-line)
20 (beginning-of-line n) (back-to-indentation)))
22 (defun indent-line-or-region nil
23 (interactive)
24 (act-on-line-or-region 'indent-region))
26 (defun indent-buffer nil
27 "Indent whole buffer"
28 (interactive)
29 (save-excursion
30 (indent-region (point-min) (point-max))))
32 (defun backward-line (count)
33 (interactive "p")
34 (forward-line (* -1 count)))
36 (defun join-following-line nil
37 (interactive)
38 (join-line 1))
40 (defun zap-upto-char (arg char)
41 (interactive "p\ncZap up to char: ")
42 (zap-to-char arg char)
43 (insert char)
44 (backward-char))
46 (def-keys (current-global-map)
47 ;; command remapping
48 [remap move-beginning-of-line] 'back-to-indentation-or-beginning
49 [remap move-end-of-line] 'end-of-line-or-last-not-blank
51 ;; util
52 "M-n" 'forward-page
53 "M-p" 'backward-page
55 "H-J" 'join-following-line
56 "H-z" 'zap-upto-char
58 ;; vi-like movement
59 "H-j" 'next-line
60 "H-k" 'previous-line
61 "H-h" 'backward-char
62 "H-l" 'forward-char
63 "C-H-j" 'forward-paragraph
64 "C-H-k" 'backward-paragraph
65 "C-H-l" 'forward-word
66 "C-H-h" 'backward-word
68 ;; commenting
69 "H-;" 'comment-or-uncomment-line-or-region
70 "H-\\" 'indent-line-or-region
71 "H-|" 'indent-buffer
73 ;; transposing
74 "H-t c" 'transpose-chars
75 "H-t w" 'transpose-words
76 "H-t x" 'transpose-sexps
77 "H-t s" 'transpose-sentenses
78 "H-t p" 'transpose-paragraphs
79 "H-t l" 'transpose-lines
81 ) ;; def-keys
83 ;; from http://blog.zenspider.com/archives/2007/02/new_category_emacs.html
84 (define-key isearch-mode-map (kbd "C-o")
85 (lambda ()
86 (interactive)
87 (let ((case-fold-search isearch-case-fold-search))
88 (occur (if isearch-regexp isearch-string
89 (regexp-quote isearch-string))))))
91 (provide 'vee/editing)