При редактировании огромных файлов мне нужно перемещаться на основе поиска по шаблону (несмотря на то, что я использую ctags, cscope, Lid), но я не хочу мешать текущему поиску выделений при этом.
Причина в том, что шаблон, который я собираюсь использовать, заключается в чрезвычайно коротком периоде времени, и мне пришлось бы вручную восстановить последний шаблон обратно.
Позвольте мне объяснить на примере. Если у меня есть файл, подобный следующему:
1 #include <stdio.h>
2
3 int main(int argc, char **argc)
4 {
5 printf("Hello World")
6 foo();
7 return 0;
8 }
9
10 void foo(void)
11 {
12 printf("Just another function with no declaration yet\n");
13 }
допустим, курсор находится в строке 5. printf("Hello World")
и мой текущий шаблон поиска - printf.
Теперь я хочу добавить прототип для функции foo(). Я должен был бы сделать следующее:
- Ищите вверх по #include, чтобы получить последний экземпляр #include в файле
- Добавьте прототип для foo в следующей строке
- Восстановите последний шаблон поиска, например, printf
Что я хочу, так это когда я перешел в строку 1 с помощью поиска #include, он должен просто перейти к вхождению без изменения текущего шаблона.
Можно ли легко добиться этого в vim?
TLDR Я хочу перемещать / переходить внутри файла, основываясь на шаблоне, не меняя текущий шаблон, чтобы в следующий раз, когда я делаю n или N, старый шаблон все еще работал без необходимости восстанавливать его, выполняя /
затем uparrow