Направление поиска текста в Vim

10

После поиска «foo», выполнив «? Foo», я могу искать вперед по «n» или назад по «N», однако иногда направления n / N переворачиваются в середине поиска. Если я перезапущу Vim, снова все в порядке. Какую последовательность клавиш можно нажать, чтобы вызвать это? Как вернуться в обычный режим?

Я не помню, чтобы я сталкивался с этим в старом Vi.

РЕДАКТИРОВАТЬ: это не клавиша Caps Lock . Спасибо за предложение, хотя.

grokus
источник
Я предполагаю, что это не просто обтекание в конце / начале файла? Или, может быть, вы набрали * или что-то, что переворачивает поиск? Я знаю, что непреднамеренно делаю это много времени.
Дейв Фогт
@ Дэйв Фогт, это не просто конец / начало файла. Я только что проверил " ", вы правы, если я нажму " ", я могу изменить / исправить направление поиска. Если вы ответите, я проголосую и приму. Спасибо.
grokus

Ответы:

11

Это может произойти, если вы начали поиск назад ?foobarи нажали /посередине. Теперь вы ищете вперед , поэтому nи Nпереключаетесь относительно того, что у вас было раньше. То же самое произойдет, если вы начали с /нажатия ?и посередине.

Натан Феллман
источник
Сэр, вы правы. Я только что проверил то, что ты сказал. Не могли бы вы сказать мне, какую роль "*" играет в этой среде?
grokus
1
@grokus: *означает поиск вперед по любому слову под курсором.
Дениф
@Daenyth, спасибо. Я всегда думал, что я не слишком плох в Vim. (Я мог бы добиться цели) Сегодня я пересматриваю свою позицию.
grokus
и для отслеживания @Daenyth вы можете искать в обратном направлении любое слово, находящееся под курсором, используя #. Они будут совпадать только на полное слово. Для поиска слова под курсором, в том числе внутри других слов, используйтеg*
Натан Феллман,
3

Звучит глупо, но вы проверяли Caps-Lock?

Чен Леви
источник
да. Это было в «выключенном» положении. Я видел такое поведение очень много раз, так что я, наконец, сыт по горло и решил докопаться до сути.
grokus
0

Натан уже ответил , почему это происходит, но если вы используете оба направления регулярно и хотите , nчтобы всегда смотреть вперед и , Nчтобы всегда оглядываться назад, независимо от того , какой путь вы искали, вы можете поместить это в .vimrc:

nmap n /<CR>
nmap N ?<CR>

/и ?без параметров выполняют последний поиск, в их соответствующих (абсолютных) направлениях.

Фонд Моники Иск
источник