Hightlight скопировал область на vim
Я хотел бы подражать приятному эффекту, найденному в игре Vim Adventure: когда команда yank сделана, я бы хотел, чтобы область выделенной области была выделена (скажем, красным) на секунду, чтобы показать мне, что мой выбор был верным.
Например, yy выделит текущую строку красным цветом одну секунду, тогда я буду знать, что было выбрано.
4 ответа
Для Neovim и vim
Для этого есть плагин vim-highlightedyank, который работает как для vim, так и для Neovim. Установите его, и он просто работает. Вы также можете установить продолжительность выделения, добавив следующую конфигурацию:
" set highlight to 1000 ms
let g:highlightedyank_highlight_duration = 1000
Только Неовим
Если вы используете последнюю версию Neovim. Они сделали эту небольшую функцию встроенной в этот запрос на перенос.
Установите последнюю версию Neovim и добавьте следующую конфигурацию в свой init.vim
:
augroup highlight_yank
autocmd!
autocmd TextYankPost * silent! lua require'vim.highlight'.on_yank("IncSearch", 1000)
augroup END
Для Неовима >= 0,7
Neovim включает функцию выделения выделения при рывке, см. документацию Neovim Lua .
С версией Neovim >= 0.7 вы также можете API Neovim определить автокоманду для ее использования сTextYankPost
событие. Добавьте эту конфигурацию в свойinit.lua
файл :
vim.api.nvim_create_autocmd('TextYankPost', {
group = vim.api.nvim_create_augroup('highlight_yank'),
desc = 'Hightlight selection on yank',
pattern = '*',
callback = function()
vim.highlight.on_yank { higroup = 'IncSearch', timeout = 500 }
end,
})
Один виммер (не я) увидел этот вопрос и просто написал плагин для этого. Обратите внимание, что это не простое решение и, вероятно, не для тех, кто предпочитает придерживаться минимума vim, но оно работает как шарм. Также обратите внимание, что это не предназначалось для серьезной работы, поэтому вы не можете обязательно искать постоянную поддержку.
плагины для установки
- https://github.com/kana/vim-operator-user: позволяет пользователю определять свои собственные операторы.
- https://github.com/thinca/vim-operator-sequence: "Оператор для выполнения двух или более операторов".
- https://github.com/osyo-manga/vim-operator-highlight: плагин для этого.
Используйте ваш предпочтительный способ установки этих плагинов.
настройки
Допустим, вы хотите использовать Meta + y, чтобы "дернуть и выделить". Напишите следующие настройки в вашем .vimrc
,
noremap <expr> <Plug>(yank-highlight) operator#sequence#map("y", "\<Plug>(operator-highlight)")
nmap <A-y> <Plug>(yank-highlight)
vmap <A-y> <Plug>(yank-highlight)
+ Изменить <A-y>
на любую раскладку (просто y
может не работать) вы хотели бы использовать: <Leader>y
может быть приятно, например.
Выделение может быть автоматически очищено. Напишите следующее:
let g:operator#highlight#clear_time=2.0
Это будет ясно, что подсветка примерно через 2 секунды. Интервал также зависит от :set updatetime?
, который по умолчанию 4000
(мс), так что если это не помогает очистить подсветку, попробуйте установить updatetime
на меньшее значение.
Просто выполните поиск в Google, я использую плагин от markonm под названием hlyank.vim. Я открыл плагин и изменил время, так как он только мигал цветом на экране, поэтому изменил его с 200 на 800, поэтому в папке автозагрузки откройте hlyank.vim и изменить
call timer_start(800, {-> matchdelete(id, winid)})
иначе вызовите timer_start(800, {-> matchdelete(id)})