Сохранение/восстановление положения курсора при закрытии/открытии складки

Вы можете попробовать что-то вроде этого:

grep "^[a-zA-Z0-9]\+[[:space:]][a-zA-Z0-9]\+[[:space:]][a-zA-Z0-9]\+$" input_file > output_file

Цель grep - найти (или не найти) строки в одном или больше файлов, соответствующих заданному шаблону. Здесь шаблон [a-zA-Z0-9] \ + соответствует одному или нескольким буквенно-цифровым символам, за которыми следует пробел или табуляция. Начало строки соответствует ^ , тогда как $ указывает конец строки. Если в столбцах используются другие символы, их следует добавить к классу символов выше. Наконец, > перенаправляет согласованный вывод в выходной файл.

Пожалуйста, посмотрите комментарий @terdon ниже, чтобы узнать о потенциальных ловушках и альтернативном решении. Обратите внимание, что если вы работаете в среде Linux / Unix, полезность grep выходит далеко за рамки этого конкретного решения.

1
15.10.2018, 02:41
1 ответ

Если закрыть сгиб изнутри с помощью zc, а затем (без перемещения )открыть его снова с помощью zo, положение курсора останется внутри сгиба. Это связано с тем, что текущий номер строки остается таким, каким он был до закрытия сгиба, даже если эта строка теперь скрыта в сгибе.

Однако после перемещения Vim необходимо обновить положение курсора до видимого. Для вертикальных перемещений это означает, что первая линия сгиба становится текущей строкой; все остальные строки скрыты внутри сгиба, и вам придется открыть сгиб, чтобы попасть туда.

Если вы хотите это изменить, предлагаемый вами подход с использованием метки звучит разумно. Однако это будет охватывать только повторное посещение последней кратности (или максимум 26 кратностей, ограниченных числом доступных буферных -локальных меток ). Преимущество меток в том, что они автоматически адаптируются к изменениям номеров строк; т. е. редактирование выше сгиба не приведет к аннулированию информации о местоположении. Если вы хотите сохранить любое количество сгибов (, превышающее количество меток ), у вас возникнет проблема, заключающаяся в том, что сгиб может быть идентифицирован только по текущему диапазону строк, а они обязательно изменятся во время редактирования.

TL;DR :Давай, опробуй свою идею, но имейте в виду, что она ограничена последним сгибом,и не может быть обобщен для охвата всех складок.


Дополнительный ответ :Файл (символы верхнего регистра )хранятся в файле viminfo , управляемом:help viminfo-fи:help viminfo-'. :mkviewоценки не учитываются.

1
27.01.2020, 23:42

Теги

Похожие вопросы