1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 02:50:03 +08:00
SpaceVim/bundle/incsearch.vim/plugin/incsearch.vim
Wang Shidong cd6ea298f2
fix java neoformat config
* Add incsearch.vim into bundle dir

* Fix java neoformat config

close #3573

* Use echom instead in pull.vim
2020-06-13 21:58:05 +08:00

104 lines
4.1 KiB
VimL

"=============================================================================
" FILE: plugin/incsearch.vim
" AUTHOR: haya14busa
" License: MIT license {{{
" Permission is hereby granted, free of charge, to any person obtaining
" a copy of this software and associated documentation files (the
" "Software"), to deal in the Software without restriction, including
" without limitation the rights to use, copy, modify, merge, publish,
" distribute, sublicense, and/or sell copies of the Software, and to
" permit persons to whom the Software is furnished to do so, subject to
" the following conditions:
"
" The above copyright notice and this permission notice shall be included
" in all copies or substantial portions of the Software.
"
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
" }}}
"=============================================================================
scriptencoding utf-8
" Load Once {{{
if expand('%:p') ==# expand('<sfile>:p')
unlet! g:loaded_incsearch
endif
if exists('g:loaded_incsearch')
finish
endif
let g:loaded_incsearch = 1
" }}}
" Saving 'cpoptions' {{{
let s:save_cpo = &cpo
set cpo&vim
" }}}
" <silent>: do not show command in command line
noremap <silent><expr> <Plug>(incsearch-forward) incsearch#go({'command': '/'})
noremap <silent><expr> <Plug>(incsearch-backward) incsearch#go({'command': '?'})
noremap <silent><expr> <Plug>(incsearch-stay) incsearch#go({'command': '/', 'is_stay': 1})
" Apply automatic :h :nohlsearch with :h :autocmd
" NOTE:
" - This mappings doesn't move the cursor, please use this with other
" mappings at the same time.
" - Make sure calling this mapping __before__ moving commands
" e.g. `<Plug>(incsearch-nohl)n` works but `n<Plug>(incsearch-nohl)` doesn't
" work
noremap <expr> <Plug>(incsearch-nohl) incsearch#autocmd#auto_nohlsearch(1)
noremap <expr> <Plug>(incsearch-nohl0) incsearch#autocmd#auto_nohlsearch(0)
noremap <expr> <Plug>(incsearch-nohl2) incsearch#autocmd#auto_nohlsearch(2)
map <Plug>(incsearch-nohl-n) <Plug>(incsearch-nohl)<Plug>(_incsearch-n)
map <Plug>(incsearch-nohl-N) <Plug>(incsearch-nohl)<Plug>(_incsearch-N)
map <Plug>(incsearch-nohl-*) <Plug>(incsearch-nohl)<Plug>(_incsearch-*)
map <Plug>(incsearch-nohl-#) <Plug>(incsearch-nohl)<Plug>(_incsearch-#)
map <Plug>(incsearch-nohl-g*) <Plug>(incsearch-nohl)<Plug>(_incsearch-g*)
map <Plug>(incsearch-nohl-g#) <Plug>(incsearch-nohl)<Plug>(_incsearch-g#)
" These mappings are just alias to default mappings except they won't be
" remapped any more
noremap <expr> <Plug>(_incsearch-n) g:incsearch#consistent_n_direction && !v:searchforward ? 'N' : 'n'
noremap <expr> <Plug>(_incsearch-N) g:incsearch#consistent_n_direction && !v:searchforward ? 'n' : 'N'
noremap <Plug>(_incsearch-*) *
noremap <Plug>(_incsearch-#) #
noremap <Plug>(_incsearch-g*) g*
noremap <Plug>(_incsearch-g#) g#
" CommandLine Mapping {{{
let g:incsearch_cli_key_mappings = get(g:, 'incsearch_cli_key_mappings', {})
function! s:key_mapping(lhs, rhs, noremap) abort
let g:incsearch_cli_key_mappings[a:lhs] = {
\ 'key' : a:rhs,
\ 'noremap' : a:noremap,
\ }
endfunction
function! s:as_keymapping(key) abort
return eval('"' . substitute(escape(a:key, '\"'), '\(<.\{-}>\)', '\\\1', 'g') . '"')
endfunction
command! -nargs=* IncSearchNoreMap
\ call call('s:key_mapping', map([<f-args>], 's:as_keymapping(v:val)') + [1])
command! -nargs=* IncSearchMap
\ call call('s:key_mapping', map([<f-args>], 's:as_keymapping(v:val)') + [0])
"}}}
" Restore 'cpoptions' {{{
let &cpo = s:save_cpo
unlet s:save_cpo
" }}}
" __END__ {{{
" vim: expandtab softtabstop=2 shiftwidth=2
" vim: foldmethod=marker
" }}}