2013-09-23 5 views

ответ

1

Я не уверен, что это приемлемо для вас. Вы можете оставить курсор на той линии, которую вы хотите найти, а затем нажмите:

/<c-r>=getline('.')<cr> 

или

Y/<c-r>"<BS><cr> 

или

:let @/=getline('.')<cr> 

Идея заключается в том же, скопировать строку / поиска , однако, это будет не Работа для всех случаев, например. ваша линия содержит «regex»:

aaa.*foo (cursor here) 
aaabbfoo 
aaa.*foo 

vim будет соответствовать всем трем линиям.

Примечание, что вы можете обернуть строку текста с ^ и $, чтобы получить лучший результат.

+0

это круто. Я думаю, что я могу назначить его короткому ключу. – Thruston

+0

Так 'nmap / = getline ('.') 'похоже, хорошо. Зачем мне нужно 2 s, хотя мне интересно? – Thruston

+0

@Thruston один для завершения '' и один для завершения'/' – FDinoff

1

нет предопределенной команды для этого, но вы можете сделать что-то подобное:

:map <F7> 0v$hy/\V<C-R>"<CR> 

Первой часть команды скопировать всю строку в регистр по умолчанию, а вторая часть выполняет поиск для него. Затем просто нажмите F7 в нормальном режиме, и это все люди.

Еще одна я люблю:

:map µ yiw:vim /<bslash><lt><C-R>"<bslash>>/ *<CR> 

Это расширяет поиск сделанный с «*» для всех файлов в текущем каталоге.

0

Немного измененная версия ответа Кента, которая должна всегда работать и не будет путать специальные символы. (То есть жала сопоставляется буквально ни с чем истолковано как регулярное выражение)

/\V\^<c-r>=escape(getline('.'), '\')<cr>\$ 

The \V оказывается на очень nomagic означает, что только специальный символ обратной косой черты. Мы используем функцию выхода, чтобы избежать всех слэш (благодаря Инго Karkat)

Или в отображении

:nnoremap <silent> ,* /\V\^<c-r>=escape(getline('.'), '\')<cr>\$<cr> 
+0

Вы можете использовать встроенный' escape (getline ('.'), '\') 'Вместо' substitute() '. –

0

Есть несколько плагинов, которые расширяют * команду для работы на выбор в визуальном режиме; один из них - мой SearchHighlighting plugin. (Страница плагина имеет ссылки на альтернативные плагины.)

С этим поиск текущей строки является быстрым V* (перейдите к визуальному режиму линии, найдите выбор).

Смежные вопросы