Как развернуть / свернуть разделы diff в Vimdiff?
Я начал использовать vimdiff сегодня и хотел сделать некоторые из вещей, которые я принимал как должное в редакторах diff на базе Windows (например, развернуть/свернуть раздел diff, иметь полное расширение файла/только diffs с 3 строками контекста выше или ниже и т. д.). В настоящее время я знаю только следующие команды :
Сочетания Клавиш:
do - получить изменения из другого окна в текущую окно.
dp - изменения из текущего окна в другое окно.
]c - перейти к следующему изменению.
[c - переход к предыдущему изменению.
CTRL+ W, w - переключиться на другое окно, сплит (CTRL+ W, CTRL+ W делает то же самое вещь, в случае, если вы отпустите CTRL ключ чуть позже)
может ли кто-нибудь указать мне правильное направление, чтобы я мог воспроизвести подобные функции?
было бы неплохо, если бы я мог развернуть/свернуть строки по сравнении, например.
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", чтобы вставить изменения в нужное место