Я начал использовать vimdiff сегодня и хотел сделать некоторые вещи, которые я считал само собой разумеющимся в редакторах diff на основе Windows (например, развернуть / свернуть раздел diff, иметь полное расширение файла / только diff с 3 строками контекста выше или ниже и т. д.). В настоящее время я знаю только следующие команды:
Горячие клавиши:
do - Получить изменения из другого окна в текущее окно.
dp - Поместите изменения из текущего окна в другое окно.
]c - Перейти к следующему изменению.
[c - Перейти к предыдущему изменению.
CTRL+ W, w- Переключиться на другое разделенное окно ( CTRL+ W, CTRL+ Wделает то же самое, если вы отпустите CTRLклавишу чуть позже)
Может ли кто-нибудь указать мне правильное направление, чтобы я мог воспроизвести похожие функции?
Было бы хорошо, если бы я мог развернуть / свернуть линии вокруг различий, например.
Ответы:
Помимо тех, что вы упоминаете, я часто использую только при различии:
:diffupdate
:diffu
-> пересчитать diff, полезно, когда после внесения нескольких изменений vim больше не показывает минимальные изменения. Обратите внимание, что это работает, только если файлы были изменены внутри vimdiff. В противном случае используйте::e
перезагрузить файлы, если они были изменены вне vimdiff.:set noscrollbind
-> временно отключить одновременную прокрутку обоих буферов, включить:set scrollbind
и прокрутить.Большая часть того, что вы просили - это сворачивание: глава руководства пользователя vim о сворачивании . Вне различий я иногда использую:
zo
-> открытая складка.zc
-> закрыть фолд.Но вы, вероятно, будете лучше обслуживаться:
zr
-> снижение уровня складывания.zm
-> Еще один складной уровень, пожалуйста.или даже:
zR
-> Полностью уменьшите складывание, сказал я!zM
-> Свернуть Мост !.Другая вещь, которую вы просили, используя n линий сгиба, может быть найдена в разделе справочника vim по опциям , через раздел по diff :
set diffopt=<TAB>
, затем обновите или добавьтеcontext:n
.Вы также должны взглянуть на раздел руководства пользователя по diff .
источник
:set noscrollbind
вступления в силу он также должен быть:set nocursorbind
использован, который не по умолчанию. Таким образом, оба варианта должны быть скорректированы.установить vimdiff игнорировать регистр
Начав Vim Diff с
Я нахожу, что досадно, что один файл содержит ключевые слова MySQL в нижнем регистре, а другой в верхнем регистре, показывая различия практически на каждой строке
это обновляет экран динамически, и вы можете так же легко отключить его снова
источник
На самом деле, если вы это сделаете
Ctrl+W W
, вам не нужно будет добавлять это дополнительноCtrl
. Делает то же самое.источник
Ctrl + W, W, как уже упоминалось, может быть использован для перехода от панели к панели.
Теперь вы можете выбрать одно конкретное изменение и вставить его на другую панель следующим образом. Здесь я даю пример, например, как если бы я хотел изменить свой кусок кода с панели 1 на панель 2, и в настоящее время мой курсор находится на панели 1
Используйте Shift-v, чтобы выделить строку, и используйте клавиши «вверх» или «вниз», чтобы выбрать фрагмент кода, который вам требуется, и продолжайте с шага 3, описанного ниже, чтобы вставить свои изменения в другую панель.
Используйте визуальный режим, а затем измените его
1 нажмите «v», чтобы перейти в визуальный режим. 2 используйте клавиши «вверх» и «вниз» для выбора необходимого кода. 3 нажмите «Esc», клавишу «Esc». 4 Теперь используйте «yy», чтобы скопировать, или «dd», чтобы вырезать изменение. Ctrl + W, W ', чтобы перейти к панели 2 6 Нажмите «P», чтобы вставить изменения, где вам нужно
источник