home · contact · privacy
Use minor mode for plomvi return, default key C-c C-c C-c but customizable.
[plomvi.el] / plomvi.el
index 8dd5117f6bd1907c7e7eb09c51ad11e3aa621a53..28ede5060381314bbf3d3781146366e46a1aead4 100644 (file)
--- a/plomvi.el
+++ b/plomvi.el
 
 ;;; Instructions:
 
-;; 1. load this script into your init file: (load ...)
+;; 1. load this script at the end of your init file: (load ...)
 
-;; 2. to start plomvi by default, put this into your init file:
+;; 2. to start plomvi by default, put this right after:
 ;; (plomvi-global-mode 1)
 
-;; 3. define some otherwise unused keybinding to simulate what would
-;; be a jump back from Insert mode to Normal mode in Vim (but is de
-;; facto just a plomvi mode activation), such as this:
-;; (global-set-key (kbd "<f1>") 'plomvi-activate)
+;; 3. if you want to use a different keybinding than "C-c C-c C-c"
+;; to simulate the jump back from Insert to Normal mode in Vim (de
+;; facto just a plomvi mode activation), put a line such as this
+;; before the (load ...) line for plomvi (with "C-c" the desired
+;; combo):
+;; (defvar plomvi-return-combo (kbd "C-c"))
 
 
 
@@ -163,9 +165,10 @@ Note that this ignores killed rectangles."
     (kill-rectangle (region-beginning) (region-end)))
    ((use-region-p)
     (kill-region (region-beginning) (region-end)))
+   ((not (= (point) (line-end-position)))
+    (delete-char 1))
    ((not (= (line-beginning-position) (line-end-position)))
-    (delete-char 1)
-    (if (not (= (point) (line-beginning-position))) (backward-char)))))
+    (backward-char) (delete-char 1))))
 
 (defun plomvi-rectangle-mark()
   "Start marked rectangle, move right one char so a single column is visible."
@@ -220,12 +223,6 @@ Note that this ignores killed rectangles."
   (interactive)
   (plomvi-mode -1))
 
-(defun plomvi-end-of-line()
-  "Move to end of line exclusive line break char."
-  (interactive)
-  (end-of-line)
-  (if (not (= (point) (line-beginning-position))) (backward-char)))
-
 (defvar plomvi-mode-basic-map (make-sparse-keymap)
   "Keymap for `plomvi-mode' on read-only buffers.
 
@@ -250,7 +247,7 @@ become available to be used for other purposes.")
 (define-key plomvi-mode-basic-map (kbd "g") 'plomvi-g-map)
 (define-key plomvi-g-map (kbd "g") 'beginning-of-buffer)
 (define-key plomvi-mode-basic-map (kbd "G") 'plomvi-goto-line)
-(define-key plomvi-mode-basic-map (kbd "$") 'plomvi-end-of-line)
+(define-key plomvi-mode-basic-map (kbd "$") 'end-of-line)
 (define-key plomvi-mode-basic-map (kbd "0") 'plomvi-prefix-zero-or-line-start)
 (define-key plomvi-mode-basic-map (kbd "1") 'digit-argument)
 (define-key plomvi-mode-basic-map (kbd "2") 'digit-argument)
@@ -335,3 +332,13 @@ or, on editable buffers, `plomvi-mode-editable'. The latter two's values in
                                          plomvi-mode-basic-map))
 (add-to-list 'minor-mode-map-alist (cons 'plomvi-mode-editable
                                          plomvi-mode-editable-map))
+
+(defvar plomvi-callable-mode-map
+  (let ((map (make-sparse-keymap))
+        (return-combo (if (boundp 'plomvi-return-combo)
+                          plomvi-return-combo
+                        (kbd "C-c C-c C-c"))))
+    (define-key map return-combo 'plomvi-activate)
+    map))
+(define-minor-mode plomvi-callable-mode ""
+  :init-value t :keymap "plomvi-callable")