From 789e748112a1c802481aa0fd8f8c6e27e6fb0b88 Mon Sep 17 00:00:00 2001
From: York Zhao <gtdplatform@gmail.com>
Date: Fri, 15 Apr 2011 11:48:07 -0400
Subject: [PATCH 2/3] Insert mode paste

Paste from register in insert mode by pressing "CTRL-R register" just like in vim.
---
 vimpulse-misc-keybindings.el |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/vimpulse-misc-keybindings.el b/vimpulse-misc-keybindings.el
index 09aebf5..d488c53 100644
--- a/vimpulse-misc-keybindings.el
+++ b/vimpulse-misc-keybindings.el
@@ -115,6 +115,9 @@ Equivalent to Vim's C-w prefix.")
 ;; make ^[ work
 (define-key viper-insert-basic-map (kbd "ESC") 'viper-exit-insert-state)
 
+;; Insert mode paste by preesing "C-r register"
+(define-key viper-insert-basic-map "\C-r" 'paste-in-insert-mode)
+
 ;;; "
 
 (defun vimpulse-read-register (&optional register command)
@@ -608,4 +611,16 @@ COL defaults to the current column."
 (define-key viper-insert-basic-map "\C-y" 'vimpulse-copy-from-above)
 (define-key viper-insert-basic-map "\C-e" 'vimpulse-copy-from-below)
 
+;; Emulating vim to paste in insert mode by preesing "C-r register"
+(defun paste-in-insert-mode ()
+  (interactive)
+  (setq register (read-char))
+  (if (viper-valid-register register)
+    (setq viper-use-register register)
+    (setq viper-use-register nil)
+   )
+  (viper-Put-back nil)
+  (forward-char)
+ )
+
 (provide 'vimpulse-misc-keybindings)
-- 
1.7.4

