[gnome-builder] vim: let 'p' behave like in vim



commit 6696b5faf165a374cf0adadcd6d02762e0504729
Author: Sebastien Lafargue <slafargue gnome org>
Date:   Wed Oct 14 15:22:55 2015 +0200

    vim: let 'p' behave like in vim
    
    fix 'p' pasting to the next line on empty lines
    
    fix 'p' going to the next line after pasting
    
    fix cursor position after pasting
    (need to be on the last character )

 data/keybindings/vim.css |    9 +++------
 libide/ide-source-view.c |    3 ++-
 2 files changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/data/keybindings/vim.css b/data/keybindings/vim.css
index a8f3145..f962b7c 100644
--- a/data/keybindings/vim.css
+++ b/data/keybindings/vim.css
@@ -391,13 +391,10 @@
                    "clear-selection" () };
 
   bind "p" { "begin-macro" ()
-             "save-insert-mark" ()
-             "paste-clipboard-extended" (1, 1, 1)
+             "paste-clipboard-extended" (1, 1, 0)
+             "movement" (previous-char, 0, 1, 0)
              "clear-count" ()
-             "restore-insert-mark" ()
-             "end-macro" ()
-             "movement" (next-line, 0, 0, 0)
-             "movement" (first-nonspace-char, 0, 1, 0) };
+             "end-macro" () };
   bind "<shift>p" { "begin-macro" ()
                     "paste-clipboard-extended" (1, 0, 1)
                     "clear-count" ()
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 896f673..2033997 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -2947,7 +2947,8 @@ ide_source_view_real_paste_clipboard_extended (IdeSourceView *self,
       if (after_cursor)
         {
           gtk_text_buffer_get_iter_at_mark (buffer, &iter, insert);
-          gtk_text_iter_forward_char (&iter);
+          if (!gtk_text_iter_ends_line (&iter))
+            gtk_text_iter_forward_char (&iter);
           gtk_text_buffer_select_range (buffer, &iter, &iter);
         }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]