aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2020-02-05 01:03:52 +0100
committerTeddy Wing2020-02-05 01:03:52 +0100
commitb49d25965be039a932264d7e954837405f60d8c9 (patch)
treeb0ddf26078628ac139dc526b741b809ccb8cfda4
parent6c24e799067121a417dd79c9ba5415ae82cda145 (diff)
downloadvim-searchop-b49d25965be039a932264d7e954837405f60d8c9.tar.bz2
Search(): Support visual mode and line-oriented
Escape newlines so that multiline search works.
-rw-r--r--plugin/searchop.vim10
1 files changed, 8 insertions, 2 deletions
diff --git a/plugin/searchop.vim b/plugin/searchop.vim
index a795234..ecfe2a1 100644
--- a/plugin/searchop.vim
+++ b/plugin/searchop.vim
@@ -5,9 +5,15 @@ vnoremap <silent> z/ :<C-u>call Search(visualmode(), 1)<CR>
function! Search(type, ...)
let user_unnamed_register = @@
- silent execute "normal! `[v`]y"
+ if a:0
+ silent execute "normal! gvy"
+ elseif a:type == 'line'
+ silent execute "normal! '[V']y"
+ else
+ silent execute "normal! `[v`]y"
+ endif
- let @/ = escape(@@, '\')
+ let @/ = substitute(escape(@@, '\'), '\n', '\\n', 'g')
call histadd('/', @/)
call feedkeys('n', 't')