Как развернуть / свернуть разделы diff в Vimdiff?


Я начал использовать vimdiff сегодня и хотел сделать некоторые из вещей, которые я принимал как должное в редакторах diff на базе Windows (например, развернуть/свернуть раздел diff, иметь полное расширение файла/только diffs с 3 строками контекста выше или ниже и т. д.). В настоящее время я знаю только следующие команды :

Сочетания Клавиш:

  • do - получить изменения из другого окна в текущую окно.

  • dp - изменения из текущего окна в другое окно.

  • ]c - перейти к следующему изменению.

  • [c - переход к предыдущему изменению.

  • CTRL+ W, w - переключиться на другое окно, сплит (CTRL+ W, CTRL+ W делает то же самое вещь, в случае, если вы отпустите CTRL ключ чуть позже)

может ли кто-нибудь указать мне правильное направление, чтобы я мог воспроизвести подобные функции?

было бы неплохо, если бы я мог развернуть/свернуть строки по сравнении, например.

4 282

4 ответа:

помимо тех, которые вы упомянули, я использую только часто, когда различаю следующее:

  • :diffupdate:diffu - > пересчитать разницу, полезно, когда после внесения нескольких изменений vim больше не показывает минимальных изменений. Обратите внимание, что он работает только если файлы были изменены внутри vimdiff. В противном случае, используйте:
    • :e перезагрузить файлы, если они были изменены вне vimdiff.
  • :set noscrollbind -> временно отключите одновременную прокрутку на обоих буферах, повторно используя :set scrollbind и прокрутки.

большая часть того, что вы просили, складывается:глава руководства пользователя vim по складыванию. Вне диффов я когда-нибудь использую:

  • zo -> открыть створки.
  • zc -> закрыть створки.

но вы, вероятно, будете лучше обслуживаться:

  • zr -> уменьшение складчатости уровень.
  • zm -> еще один уровень складывания, пожалуйста.

или еще:

  • zR -> полностью уменьшить складывание, я сказал!.
  • zM -> самый раз!.

другое, что вы просили, используйте n линий складывания, можно найти в раздел справочного руководства vim по опциям, через раздел на diff:

  • set diffopt=<TAB>, затем обновить или добавить context:n.

вы также должны взглянуть на раздел руководства пользователя на diff.

установите vimdiff для игнорирования case

запустив vim diff с

 gvim -d main.sql backup.sql &

Я нахожу, что досадно один файл имеет ключевые слова MySQL в нижнем регистре другой верхний регистр показывает различия практически на каждой другой строке

:set diffopt+=icase

это обновляет экран динамически и вы можете так же легко отключить его снова

на самом деле, если вы делаете Ctrl+W W, вам не нужно будет добавлять этот дополнительный Ctrl. Делает то же самое.

ctrl + w, w как уже упоминалось, может использоваться для навигации от панели к панели.

теперь вы можете выбрать конкретное изменение самостоятельно и вставить его в другую панель следующим образом.Здесь я даю например, как если бы я хотел изменить свой кусок кода с панели 1 на панель 2 и в настоящее время мой курсор находится в pane1

  • используйте Shift-v, чтобы выделить строку и использовать клавиши вверх или вниз, чтобы выбрать нужный фрагмент кода и продолжить с шага 3, написанного ниже, чтобы вставить ваш изменения в другой панели.

  • используйте визуальный режим, а затем измените его

    1 Нажмите " v " это приведет вас к визуальному режиму 2 используйте клавишу вверх или вниз для выбора необходимого кода 3 Нажмите на, Esc ' escape key 4 Теперь используйте 'yy' для копирования или' dd', чтобы сократить изменение 5 Сделайте 'ctrl + w, w', чтобы перейти к pane2 6 Нажмите кнопку "p", чтобы вставить изменения в нужное место