Khác biệt hai tab trong Vim


121

Tình huống: Tôi đã mở Vim và dán một số văn bản. Tôi mở tab thứ hai với :tabevà dán một số văn bản khác vào đó.

Mục tiêu: Tôi muốn một tab thứ ba có đầu ra tương đương với việc ghi cả văn bản vào tệp và mở chúng bằng vimdiff.

Gần nhất tôi có thể tìm thấy là "khác bộ đệm hiện tại với một tệp", nhưng không nhập diffhai bộ đệm đang mở nhưng chưa được lưu.


1
lệnh tabe là gì?
hhafez

1
@hhafez - mở một bộ đệm mới trong một tab mới
Rook

3
Nó viết tắt của: tabedit, hay còn gọi là: tabnew.
TSomKes

Câu trả lời:


188

Tôi khuyên bạn nên mở tệp thứ hai trong cùng một tab thay vì một tệp mới.

Đây là những gì tôi thường làm:

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

Các :vnewlệnh tách giao diện hiện tại theo chiều dọc, do đó bạn có thể mở tập tin thứ hai đó. Sau đó, lệnh :diffthis(hoặc viết tắt :difft:) được áp dụng cho mỗi khung nhìn.


1
Fwiw, MacVim dường như không có điều này theo mặc định, nhưng tôi nghĩ bạn sẽ có thể đi đến thiết bị đầu cuối và nhập vimdiff file1.txt file2.txtvà đánh bại chính mình.
ruffin

11
Bạn vừa thổi bay tâm trí của tôi. Cuộc sống của tôi sẽ không bao giờ giống nhau sau này :diffthis. Cảm ơn bạn rất nhiều. Cảm ơn bạn!
Justin Force

3
Điều này là đáng kinh ngạc. Các edit fileNphần có thể được thay thế chỉ bằng cách dán từ bộ đệm, cho phép bạn tạo hai phần văn bản khác nhau mà không cần dán mỗi phần vào một tệp tmp (một cái gì đó mà meld cho phép bạn làm, nhưng các công cụ khác trực quan trên Mac đang thiếu). Nó hoạt động trong MacVim đối với tôi.
yshavit

38

Tôi khuyên bạn nên thử : diffthis hoặc : diffsplit


10
:vert diffsplittạo ra một cái nhìn khác truyền thống hơn là không có:vert
ephemient

7
Bạn có thể: đặt diffopt + = vertical thành: vert làm mặc định.
greywh

3
Ngoài ra, để cuộn hai cửa sổ đồng thời: :set scrollbindtrong cả hai.
Dmytro Sirenko

Không hoạt động nếu tôi phải nhấn các tab, như đã hỏi trong câu hỏi. Nếu tôi có, :diffsplittôi nhận được hai bộ đệm được kết nối.
erik

25

Khi bạn mở hai tệp theo kiểu tách dọc, hãy chạy

:windo diffthis


8
sử dụng :diffoffđể tắt chế độ khác biệt
AB

2
Nhưng làm cách nào để thay đổi từ hai tab sang chia dọc?
erik

1

Nội dung của tất cả các tab nằm bên trong bộ đệm. Nhìn vào bộ đệm:

:buffers

Tìm con số phù hợp cho nội dung sẽ khác với nội dung tab hiện tại của bạn.

Mở bộ đệm bên trong tab hiện tại của bạn (bộ đệm fe số 4)

:sb 4

Hoặc làm cho chế độ xem dọc:

:vertical sb 4

Sau đó, bạn có thể đơn giản khác nội dung với

:windo diffthis

Nếu bạn hoàn thành phân tích khác biệt, bạn có thể nhập:

:windo diffoff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.