mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
8c6168565c
Note: Ignored changes to matchit.vim in favor offaca814116
. --- Update runtime files.37c64c78fd
36 lines
1.2 KiB
VimL
36 lines
1.2 KiB
VimL
" Vim support file to help with paste mappings and menus
|
||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||
" Last Change: 2017 Aug 30
|
||
|
||
" Define the string to use for items that are present both in Edit, Popup and
|
||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||
|
||
" Pasting blockwise and linewise selections is not possible in Insert and
|
||
" Visual mode without the +virtualedit feature. They are pasted as if they
|
||
" were characterwise instead. Add to that some tricks to leave the cursor in
|
||
" the right position, also for "gi".
|
||
if has("virtualedit")
|
||
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
||
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
||
let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
|
||
|
||
func! paste#Paste()
|
||
let ove = &ve
|
||
set ve=all
|
||
normal! `^
|
||
if @+ != ''
|
||
normal! "+gP
|
||
endif
|
||
let c = col(".")
|
||
normal! i
|
||
if col(".") < c " compensate for i<ESC> moving the cursor left
|
||
normal! l
|
||
endif
|
||
let &ve = ove
|
||
endfunc
|
||
else
|
||
let paste#paste_cmd = {'n': "\"=@+.'xy'<CR>gPFx\"_2x"}
|
||
let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x'
|
||
let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s'
|
||
endif
|