поиск без перескакиваний
Модератор: /dev/random
поиск без перескакиваний
Есть такая фишка, становишься на слово и тыцкаешь * или gd. И вим визуально выделяет в тексте эти слова и куда-то перескакивает своим курсором, при этом появляется возможность автоматически переключаться между выделениями. Интересно, есть такая же функция, но что бы он при этом свой курсор держал на исходном слове?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: поиск без перескакиваний
jojahti писал(а): ↑08.03.2011 21:51Есть такая фишка, становишься на слово и тыцкаешь * или gd. И вим визуально выделяет в тексте эти слова и куда-то перескакивает своим курсором, при этом появляется возможность автоматически переключаться между выделениями. Интересно, есть такая же функция, но что бы он при этом свой курсор держал на исходном слове?
Это не просто "выделение". Более того, подсветка здесь - просто побочный эффект.
"*" - это _поиск_ текущего слова, как если бы оно было введено после нажатия "/". Разумеется, курсор перескочит на найденное слово. Если хотите вернуться на предыдущее найденное слово (т.е. с которого начали), можете нажать "N".
"gd" - это попытка найти определение локальной переменной, на имени которой стоит курсор. Вим попытается определить границы текущей функции и перейдёт на первое упоминание этого слова в ней. К вашей задаче это отношения не имеет.
Re: поиск без перескакиваний
Иными словами это не поиск, а именно выделение цветом поиска слова под курсором?
Легко. В vimrc
Можете мапить HLW на удобное сочетание клавиш.
Легко. В vimrc
Код: Выделить всё
fun! <SID>HL()
if exists("g:jojahti")
call matchdelete(g:jojahti)
endif
let g:jojahti = matchadd("Search", expand("<cword>"))
endfun
com! -nargs=0 HLW call <SID>HL()
Можете мапить HLW на удобное сочетание клавиш.
Re: поиск без перескакиваний
liaonau писал(а): ↑08.03.2011 23:07Иными словами это не поиск, а именно выделение цветом поиска слова под курсором?
Легко. В vimrc
Код: Выделить всё
fun! <SID>HL() if exists("g:jojahti") call matchdelete(g:jojahti) endif let g:jojahti = matchadd("Search", expand("<cword>")) endfun com! -nargs=0 HLW call <SID>HL()
Можете мапить HLW на удобное сочетание клавиш.
Ещё один… expand("<cword>") следует заменить на '\V'.escape(expand('<cword>'), '\'). Кроме того, * ещё генерирует \< и \> вокруг слова: '\V\<'.escape(expand('<cword>'), '\').'\>'.