aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2019-06-19 22:35:51 +1200
committerTom Ryder <tom@sanctum.geek.nz>2019-06-19 22:35:51 +1200
commitd754e506fdfb10688d721935c01d2615d11b2a12 (patch)
treeb9141fc16a7d1318b890df6fc613234db2062682
downloadvim-paste-insert-d754e506fdfb10688d721935c01d2615d11b2a12.tar.gz
vim-paste-insert-d754e506fdfb10688d721935c01d2615d11b2a12.zip
First versionv0.1.0
-rw-r--r--README.md19
-rw-r--r--VERSION1
-rw-r--r--autoload/paste_insert.vim12
-rw-r--r--doc/paste_insert.txt36
-rw-r--r--plugin/paste_insert.vim8
5 files changed, 76 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..cd8cef2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,19 @@
+paste\_insert.vim
+=================
+
+This small plugin provides a simple "one shot paste" method, with a command or
+mapping to prefix opening an insert, with the `'paste'` option automatically
+set after the insert ends, to avoid the annoyances caused by forgetting to do
+so.
+
+It includes a timeout if insert mode isn't entered within `'updatetime'`
+seconds, or if the user navigates away from the buffer or window. It can also
+be cancelled with CTRL-C in normal mode.
+
+License
+-------
+
+Copyright (c) [Tom Ryder][1]. Distributed under the same terms as Vim itself.
+See `:help license`.
+
+[1]: https://sanctum.geek.nz/
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..6e8bf73
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.1.0
diff --git a/autoload/paste_insert.vim b/autoload/paste_insert.vim
new file mode 100644
index 0000000..675fa5a
--- /dev/null
+++ b/autoload/paste_insert.vim
@@ -0,0 +1,12 @@
+function! paste_insert#() abort
+ augroup paste_insert
+ autocmd!
+ autocmd CursorHold,CursorMoved,User *
+ \ set nopaste paste?
+ \|autocmd! paste_insert
+ autocmd InsertEnter *
+ \ autocmd paste_insert InsertLeave *
+ \ doautocmd paste_insert User
+ augroup END
+ set paste paste?
+endfunction
diff --git a/doc/paste_insert.txt b/doc/paste_insert.txt
new file mode 100644
index 0000000..9b63079
--- /dev/null
+++ b/doc/paste_insert.txt
@@ -0,0 +1,36 @@
+*paste_insert.txt* For Vim version 7.0 Last change: 2019 Jun 19
+
+DESCRIPTION *paste_insert*
+
+This small plugin provides a simple "one shot paste" method, with a command or
+mapping to prefix opening an insert, with the 'paste' option automatically set
+after the insert ends, to avoid the annoyances caused by forgetting to do so.
+
+It includes a timeout if insert mode isn't entered within 'updatetime'
+seconds, or if the user navigates away from the buffer or window. It can also
+be cancelled with CTRL-C in normal mode.
+
+REQUIREMENTS *paste_insert-requirements*
+
+This plugin only loads if 'compatible' is not set.
+
+COMMANDS *paste_insert-commands*
+
+ *:PasteInsert*
+Enter the `:PasteInsert` command just before entering insert mode to set up
+the relevant hooks. It takes neither range prefix nor arguments.
+
+MAPPINGS *paste_insert-mappings*
+
+ *<Plug>(PasteInsert)*
+The `<Plug>(PasteInsert)` map in normal mode just does `:PasteInsert`.
+
+AUTHOR *paste_insert-author*
+
+Written and maintained by Tom Ryder <tom@sanctum.geek.nz>.
+
+LICENSE *paste_insert-license*
+
+Licensed for distribution under the same terms as Vim itself (see |license|).
+
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/plugin/paste_insert.vim b/plugin/paste_insert.vim
new file mode 100644
index 0000000..2c17f80
--- /dev/null
+++ b/plugin/paste_insert.vim
@@ -0,0 +1,8 @@
+if exists('loaded_paste_insert') || &compatible
+ finish
+endif
+let loaded_paste_insert = 1
+command! -bar PasteInsert
+ \ call paste_insert#()
+nnoremap <Plug>PasteInsert
+ \ :<C-U>PasteInsert<CR>