Я обычно ищу слова по :/string
, но если мне нужно искать всю текущую строку, как это сделать.
event: 1 beacon: 0x02 //line 1
event: 19 beacon: 0x02 //line 2
event: 1 beacon: 0x03 //line 3
event: 1 beacon: 0x02 //line 4
event: 8 beacon: 0x01 //line 5
event: 19 beacon: 0x02 //line 6
event: 1 beacon: 0x02 //line 7
Например, если cursor
в настоящее время, line 1
как искать аналогично :/
тексту, содержащему всю текущую строку. Курсор должен затем перейти к соответствию line 4
и снова кline 7
nnoremap {key} 0y$/\V<c-r>"<cr>
Специально для целей картографии я считаю, что использовать
getline()
более элегантно, чем самому дергать. Вызовgetline()
со строкой'.'
возвращает строку под курсором. Есть два хороших варианта использования этого:который анализирует строки
'/'
и то, что возвращаетсяgetline()
вместе, и выполняет это как команду vim.или же
который использует регистр выражений
@=
. Следующее выражение=
вычисляется после первого<CR>
и помещается в командную строку.источник
/
или'
это не очень хорошо работает. Во всяком случае, я узнаю кое-что сегодня! СпасибоЛично я бы получил визуальный плагин звезды ( там немного ). Есть хороший Vimcast об этом: Поиск по выделенному тексту . Это означает, что вы можете выбрать линию визуально и затем нажать
*
.Если плагин не ваша вещь, вы можете добавить следующее сопоставление
vimrc
:Примечание: Visual-block (
<c-v>
) не поддерживается для этого отображения.источник
*
из обычного режима или не правильно установили сопоставление.Все существующие ответы потерпят неудачу, если ваша строка содержит определенные элементы, которые интерпретируются как часть шаблона. Суть в том, чтобы
\V
получить большую часть пути, но все еще портится с обратной косой чертой.Попробуйте это, чтобы избежать обратной косой черты ...
И затем, если вы используете его в отображении, вам понадобится одна или две
<Enter>
секунды в зависимости от того, как вы хотите, чтобы это работало.источник
escape(…, '/\')
С установленным vim-asterisk просто используйте
V$*
(или0v$*
), чтобы выбрать текущую строку и найти ее.Во второй команде
0
нет необходимости, если курсор уже находится в начале строки.источник
*
только поиск слова под курсором, а не текущий визуальный выбор?Еще один способ сделать это - использовать окно командной строки:
yy/<Ctrl-F>p<Enter>
yy
/
а затем Ctrl-F в открытое окно командной строкиp
чтобы вставить строкуисточник
q/
чтобы получить тот же эффект, что и/<c-f>
http://vim.wikia.com/wiki/Searching_for_expressions_which_include_slashes указывает, что регистр поиска может быть установлен напрямую, например так:
Это позволяет искать на линии и работает даже тогда, когда линия включает в себя косые черты.
Итак, чтобы, скажем,
\*
сопоставить поиск строки:источник