mirror of
https://github.com/vim/vim
synced 2025-04-30 05:17:45 +02:00
Some checks are pending
GitHub CI / linux (arm64, gcc, [nogui], tiny) (push) Waiting to run
GitHub CI / linux (arm64, gcc, true, [unittests], huge) (push) Waiting to run
GitHub CI / linux (clang, [asan], huge, 5.1) (push) Waiting to run
GitHub CI / linux (clang, [nogui], tiny) (push) Waiting to run
GitHub CI / linux (gcc, [nogui], tiny) (push) Waiting to run
GitHub CI / linux (gcc, [vimtags], normal) (push) Waiting to run
GitHub CI / linux (gcc, true, [uchar testgui], huge, dynamic) (push) Waiting to run
GitHub CI / linux (gcc, true, [unittests], huge) (push) Waiting to run
GitHub CI / linux (i386, gcc, normal, ./src/shadow) (push) Waiting to run
GitHub CI / linux (native, clang, [], normal) (push) Waiting to run
GitHub CI / linux (native, clang, [], tiny) (push) Waiting to run
GitHub CI / linux (native, clang, true, [], huge, dynamic, stable-abi) (push) Waiting to run
GitHub CI / linux (native, gcc, [], normal) (push) Waiting to run
GitHub CI / linux (native, gcc, [], tiny) (push) Waiting to run
GitHub CI / linux (native, gcc, true, [], huge) (push) Waiting to run
GitHub CI / macos (huge, macos-13) (push) Waiting to run
GitHub CI / macos (huge, macos-15) (push) Waiting to run
GitHub CI / macos (normal, macos-13) (push) Waiting to run
GitHub CI / macos (normal, macos-15) (push) Waiting to run
GitHub CI / macos (tiny, macos-13) (push) Waiting to run
GitHub CI / macos (tiny, macos-15) (push) Waiting to run
GitHub CI / windows (no, no, x64, HUGE, stable, msvc) (push) Waiting to run
GitHub CI / windows (no, no, x86, TINY, mingw) (push) Waiting to run
GitHub CI / windows (no, yes, x64, yes, HUGE, mingw) (push) Waiting to run
GitHub CI / windows (no, yes, x86, NORMAL, msvc) (push) Waiting to run
GitHub CI / windows (yes, no, x64, NORMAL, mingw) (push) Waiting to run
GitHub CI / windows (yes, no, x86, HUGE, msvc) (push) Waiting to run
GitHub CI / windows (yes, yes, x64, TINY, msvc) (push) Waiting to run
GitHub CI / windows (yes, yes, x86, yes, HUGE, stable, mingw) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
closes: #16944 Signed-off-by: Hirohito Higashi <h.east.727@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
39 lines
1.2 KiB
VimL
39 lines
1.2 KiB
VimL
vim9script
|
|
|
|
# Highlight Yank plugin
|
|
# Last Change: 2025 Mar 22
|
|
|
|
def HighlightedYank()
|
|
|
|
var hlgroup = get(g:, "hlyank_hlgroup", "IncSearch")
|
|
var duration = min([get(g:, "hlyank_duration", 300), 3000])
|
|
var in_visual = get(g:, "hlyank_invisual", true)
|
|
|
|
if v:event.operator ==? 'y'
|
|
if !in_visual && visualmode() != null_string
|
|
visualmode(1)
|
|
return
|
|
endif
|
|
# if clipboard has autoselect (default on linux) exiting from Visual with
|
|
# ESC generates bogus event and this highlights previous yank
|
|
if &clipboard =~ 'autoselect' && v:event.regname == "*" && v:event.visual
|
|
return
|
|
endif
|
|
var [beg, end] = [getpos("'["), getpos("']")]
|
|
var type = v:event.regtype ?? 'v'
|
|
var pos = getregionpos(beg, end, {type: type, exclusive: false})
|
|
var m = matchaddpos(hlgroup, pos->mapnew((_, v) => {
|
|
var col_beg = v[0][2] + v[0][3]
|
|
var col_end = v[1][2] + v[1][3] + 1
|
|
return [v[0][1], col_beg, col_end - col_beg]
|
|
}))
|
|
var winid = win_getid()
|
|
timer_start(duration, (_) => m->matchdelete(winid))
|
|
endif
|
|
enddef
|
|
|
|
augroup hlyank
|
|
autocmd!
|
|
autocmd TextYankPost * HighlightedYank()
|
|
augroup END
|
|
# vim:sts=2:sw=2:et:
|