В VI, как я могу перейти к следующему вхождению (если есть) всей текущей строки?VIM найти следующую соответствующую строку?
Как * делает для слов, но для всей текущей строки вместо текущего слова.
В VI, как я могу перейти к следующему вхождению (если есть) всей текущей строки?VIM найти следующую соответствующую строку?
Как * делает для слов, но для всей текущей строки вместо текущего слова.
Я не уверен, что это приемлемо для вас. Вы можете оставить курсор на той линии, которую вы хотите найти, а затем нажмите:
/<c-r>=getline('.')<cr>
или
Y/<c-r>"<BS><cr>
или
:let @/=getline('.')<cr>
Идея заключается в том же, скопировать строку /
поиска , однако, это будет не Работа для всех случаев, например. ваша линия содержит «regex»:
aaa.*foo (cursor here)
aaabbfoo
aaa.*foo
vim будет соответствовать всем трем линиям.
Примечание, что вы можете обернуть строку текста с ^
и $
, чтобы получить лучший результат.
нет предопределенной команды для этого, но вы можете сделать что-то подобное:
:map <F7> 0v$hy/\V<C-R>"<CR>
Первой часть команды скопировать всю строку в регистр по умолчанию, а вторая часть выполняет поиск для него. Затем просто нажмите F7 в нормальном режиме, и это все люди.
Еще одна я люблю:
:map µ yiw:vim /<bslash><lt><C-R>"<bslash>>/ *<CR>
Это расширяет поиск сделанный с «*» для всех файлов в текущем каталоге.
Немного измененная версия ответа Кента, которая должна всегда работать и не будет путать специальные символы. (То есть жала сопоставляется буквально ни с чем истолковано как регулярное выражение)
/\V\^<c-r>=escape(getline('.'), '\')<cr>\$
The \V
оказывается на очень nomagic означает, что только специальный символ обратной косой черты. Мы используем функцию выхода, чтобы избежать всех слэш (благодаря Инго Karkat)
Или в отображении
:nnoremap <silent> ,* /\V\^<c-r>=escape(getline('.'), '\')<cr>\$<cr>
Вы можете использовать встроенный' escape (getline ('.'), '\') 'Вместо' substitute() '. –
Есть несколько плагинов, которые расширяют *
команду для работы на выбор в визуальном режиме; один из них - мой SearchHighlighting plugin. (Страница плагина имеет ссылки на альтернативные плагины.)
С этим поиск текущей строки является быстрым V*
(перейдите к визуальному режиму линии, найдите выбор).
это круто. Я думаю, что я могу назначить его короткому ключу. – Thruston
Так 'nmap/ = getline ('.') 'похоже, хорошо. Зачем мне нужно 2 s, хотя мне интересно? –
Thruston
@Thruston один для завершения '' и один для завершения'/' –
FDinoff