Відмінність двох вкладок у Vim


121

Сценарій: Я відкрив Vim і вставив текст. Я відкриваю другу вкладку :tabeі вставляю туди ще якийсь текст.

Мета: Я хотів би третю вкладку з еквівалентом запису обох текстів у файли та відкриття їх vimdiff.

Найближче, що я можу знайти, - це "розрізняти поточний буфер проти файлу", але не мати diffдва відкритих, але не збережені буфери.


1
що таке команда tabe?
hhafez

1
@hhafez - відкрийте новий буфер у новій вкладці
Rook

3
Це коротко для: tabedit, він же: tabnew.
TSomKes

Відповіді:


188

Я пропоную відкрити другий файл на тій же вкладці замість нового.

Ось що я зазвичай роблю:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

:vnewКоманда розбиває поточну позицію по вертикалі , так що ви можете відкрити другий файл там. Потім :diffthis(або короткий :difft:) команда застосовується до кожного представлення даних.


1
Fwiw, MacVim, схоже, не має цього за замовчуванням, але я думаю, ви повинні мати можливість зайти до терміналу і набрати vimdiff file1.txt file2.txtі вибити себе.
ruffin

11
Ви просто підірвали мені розум. Моє життя після цього ніколи не буде таким :diffthis. Дуже дякую. Дякую!
Джастін Форс

3
Це дивовижно. У edit fileNчастині може бути замінена тільки вставити з буфера, який дозволяє дифф два шматки тексту без вставки кожного в файл TMP (то , що MELD дозволяє зробити, але візуальні інструменти диференціалів на Mac не вистачає). Він працював у MacVim для мене поза коробкою.
yshavit

38

Я б запропонував спробувати : diffthis або : diffsplit


10
:vert diffsplitстворює більш традиційний :vert
розгляд,

7
Ви можете: встановити diffopt + = вертикаль, щоб зробити: vert за замовчуванням.
сірий

3
Також прокручувати два вікна одночасно: :set scrollbindв обох.
Дмитро Сіренко

Не працює, якщо мені доведеться робити вкладки, як задано в питанні. Якщо я це зробити, :diffsplitя отримую два підключені буфери.
Ерік

25

Коли у вас є два файли, відкриті у вертикальному розділі, запустіть

:windo diffthis


8
використовуйте :diffoffдля вимкнення режиму "diff"
AB

2
Але як змінити з двох вкладок на вертикальний розкол?
Ерік

1

Вміст усіх вкладок знаходиться всередині буферів. Подивіться на буфери:

:buffers

Знайдіть потрібний номер для вмісту, який повинен відрізнятися від вашого поточного вмісту вкладки.

Відкрийте буфер всередині вашої поточної вкладки (fe буфер № 4)

:sb 4

Або для вертикального перегляду:

:vertical sb 4

Тоді ви можете просто відрізняти вміст

:windo diffthis

Якщо ви закінчили різний аналіз, ви можете ввести:

:windo diffoff
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.