После поиска чего-то, если вы нажмете //, вы, похоже, получите следующий результат. Как это отличается от n? Как его использовать? Что соответствует //e, и какие другие параметры существуют для //?
Как работает команда поиска `//` в Vim?
Ответ 1
Команда поиска имеет следующий формат:
/pattern/offset<cr>
Если часть pattern не указана, поиск ищет последний шаблон, который был найден. Если смещение не указано, смещение не применяется. Смещение в основном, что делать с курсором, когда вы нашли свой элемент pattern.
Большинство пользователей vi знакомы с изменением без смещения, /pax<cr> и повторением последнего поиска /<cr>, что эквивалентно n.
В ваших конкретных примерах //<cr> совпадает с /<cr>, и это означает, что вы повторите последний поиск и не применяете смещение.
С другой стороны, //e<cr> означает повторить последний поиск и переместить курсор в конец найденного элемента. Смещения:
[num] [num] lines downwards, in column 1
+[num] [num] lines downwards, in column 1
-[num] [num] lines upwards, in column 1
e[+num] [num] characters to the right of the end of the match
e[-num] [num] characters to the left of the end of the match
s[+num] [num] characters to the right of the start of the match
s[-num] [num] characters to the left of the start of the match
b[+num] [num] identical to s[+num] above (mnemonic: begin)
b[-num] [num] identical to s[-num] above (mnemonic: begin)
;{pattern} perform another search, see |//;|
A плюс или минус без num использует 1.
Ответ 2
Одна из приятных функций // заключается в том, что вы можете использовать ее с помощью команды s. Поэтому, если вы первоначально искали /Foo, а затем решили заменить его на Bar, вы можете сделать это, не повторяя шаблон. Просто сделайте :%s//Bar/g
Очевидно, что это намного более полезно, если шаблон немного сложнее.
Ответ 3
//<CR> означает повтор поиска последнего шаблона без смещения.
//e<CR> означает повторить поиск последнего паттерна, но приземлиться в конце матча.
n совпадает с /<CR> тем, что использует последний шаблон и последнее смещение, однако n сохраняет последнее направление, а / всегда находит следующее совпадение.
См. :h last-pattern и :h search-offset для подробного объяснения этих команд и их параметров.