4

В большинстве случаев я использую команду * только для выделения текущего слова в исходном коде, чтобы убедиться, что оно набрано правильно, например.

Как я могу сделать звездную команду, чтобы остаться на текущем слове?

Если это невозможно, как я могу связать другой ключ, чтобы сделать это?

2 ответа2

6

Я думаю, что самое простое решение - это отображение:

:nnoremap * *``

где последние два символа являются двумя обратными галочками, чтобы восстановить курсор в исходное положение. Другое решение будет

:nnoremap * *N

но это перемещает курсор в начало слова. Оба решения имеют тот недостаток, что ваш экран может прокручиваться, если следующее совпадение находится за кадром. Это можно исправить с помощью функции - это зависит от того, какое поведение вы хотите и сколько работы вы хотите вложить в него.

Редактировать:

Просто подумал о другом простом, который вообще не двигает курсор.

:nmap <silent> * :let @/='\<'.expand('<cword>').'\>'<CR>
0

Быстрый взлом:

:nnoremap * *N

Будет выполнен обратный поиск после поиска слова под курсором с помощью * .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .