Я работал в NetBeans и мне понравилась эта функция: при размещении курсора в имени переменной выделяются все вхождения переменной. Это очень полезно для быстрого поиска всех вступлений переменной. Можно ли добавить это поведение к Vim?Выделите переменную под курсором в Vim, как в NetBeans
ответ
Это автокомандный будет делать то, что вы хотите:
:autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Edit: Я использовал группу IncSearch
выделения в моем примере, но вы можете найти другие цвета использовать, запустив этот команда:
:so $VIMRUNTIME/syntax/hitest.vim
Если вы установили
:set hlsearch
, чтобы выделить все вхождения шаблона поиска, а затем использовать *
или #
найти вхождения слова под курсором, которая поможет вам каким-то образом к тому, что вы хотите. Однако я думаю, что подсветка переменных с поддержкой синтаксиса выходит за рамки VIM.
Ваше решение отлично! единственная проблема заключается в том, что я использую * курсор перескакивает на следующий результат поиска. Невозможно ли курсор на текущее слово? – Meysam
@Meysam - вы можете создать простое сопоставление, которое делает именно это (untested): nmap
Я думаю, что вам действительно нужен следующий плагин Shuhei Kubota:
http://www.vim.org/scripts/script.php?script_id=4306
Согласно описанию: "Этот скрипт выделяет слова под курсором, как и многие Иды.
Cheers.
Это заявление позволит переменной для включения/выключения подсветки всех вхождений слова под курсором:
:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
Можно было бы активировать выделение с:
:let HlUnderCursor=1
и отключить его:
:let HlUnderCursor=0
Можно легко определить комбинацию клавиш для включения/отключения нг подсветка:
:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
Удаление переменной будет препятствовать заявление матча от исполнения, и не ясно, текущее выделение:
:unlet HlUnderCursor
Если вы не хотите, чтобы выделить языковые слова (заявления/preprocs, такие как if
, #define
), когда курсор находится над этими словами, вы можете поместить эту функцию в .vimrc
на основе @too_much_php ответа:
let g:no_highlight_group_for_current_word=["Statement", "Comment", "Type", "PreProc"]
function s:HighlightWordUnderCursor()
let l:syntaxgroup = synIDattr(synIDtrans(synID(line("."), stridx(getline("."), expand('<cword>')) + 1, 1)), "name")
if (index(g:no_highlight_group_for_current_word, l:syntaxgroup) == -1)
exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
else
exe 'match IncSearch /\V\<\>/'
endif
endfunction
autocmd CursorMoved * call s:HighlightWordUnderCursor()
- 1. Выделите слово под курсором в gvim
- 2. Пробел под курсором в vim
- 3. Выделите блок кода под курсором?
- 4. Выделите детали окна под курсором
- 5. Как указать строку под курсором в Vim?
- 6. Vim открыть файл под курсором
- 7. Vim yank path под курсором
- 8. улучшить «поиск под курсором» (гс) в Vim
- 9. Слово проверки орфографии под курсором в Vim
- 10. VIM инкрементный поиск, как скопировать строку под заголовком под курсором?
- 11. Vim: сопоставить квалифицированный идентификатор под курсором
- 12. Vim функция переключения заменить символ под курсором
- 13. Плагин Vim: Следуйте за символом под курсором
- 14. поиск Vim с ае слово под курсором
- 15. Как подставить слово под курсором в скрипте vim?
- 16. Как получить название группы под курсором в vim?
- 17. Команда Vim: как выбрать слово под курсором в обычном режиме
- 18. Как указать «слово под курсором» в командной строке VIM?
- 19. Как искать строку под курсором в Eclipse
- 20. Перейти к следующему символу под курсором в Vim
- 21. Word-под курсором подсветка * и * мульти-подсветка в Vim
- 22. Открыть файл из полного пути под курсором в Vim
- 23. Открыть URL-адрес под курсором в Vim с браузером
- 24. Поиск и замена слова под курсором в Vim
- 25. В VIM, почему `db` не удаляет символ под курсором?
- 26. Выделите внутреннюю переменную bash с помощью VIM
- 27. tmux: как открыть файл под курсором
- 28. Vim Выделите Поиск в vimrc
- 29. emacs выделить слово под курсором
- 30. Vim folding - Закрыть всех детей рекурсивно под курсором
есть способ заставить замолчать соответствующие ошибки? – UncleZeiv
@UncleZeiv: Я не совсем понимаю, что вы подразумеваете под ошибками –
, если я перемещаю курсор в конце комментария стиля C (звездочка, за которой следует косая черта), я получаю 'E488: обратные символы: соответствие IncSearch/\ <*/\> ', и мне даже нужно нажать Enter, прежде чем продолжить, довольно раздражает! Я предполагаю, что это должно быть каким-то образом сбежать и/или, по крайней мере, было бы хорошо найти способ заставить замолчать предупреждение. Отличный совет. – UncleZeiv