2010-12-29 21 views
5

lệnh diff-w được sử dụng để tạo tệp thay thế so sánh bên cạnh (thay vì song song)
tôi sau đó xem chúng bằng vi qua thiết bị đầu cuối ssh thay đổi được biểu thị bằng "<" hoặc "|" hoặc ">"
Vì tệp tôi đang xem là mã nguồn, việc điều hướng đến các thay đổi một mình
sử dụng các biểu tượng trên rất khó vì chúng cũng nằm trong mã nguồn C.trợ giúp - thay đổi biểu tượng khác "<", "|" or ">" thành mong muốn?

Làm cách nào để thay đổi các biểu tượng mặc định này thành các biểu tượng mong muốn?
Vui lòng trợ giúp. Cảm ơn.

+0

Đây không phải là chủ đề. Đó là câu hỏi dành cho các lập trình viên về các công cụ lập trình –

Trả lời

4

Thay vì xem đầu ra của diff -w trong vim, bạn có thể sử dụng vim tích hợp trong diff:

vim -d file1 file2 

này mở ra vim trong một sự chia rẽ dọc với cả hai tập tin mở và diff dấu trong các mã. Đây là những gì nó trông giống như:

alt text

Và nó hoạt động trong một thiết bị đầu cuối quá:

alt text

Bạn có thể tìm thấy một hướng dẫn ngắn here

+0

cảm ơn. điều đó thật tuyệt. – basilbc

2

Theo phiên bản của tôi về diff (2.8.1 từ các diffutils GNU của FSF) -w được sử dụng để thay đổi chiều rộng của đầu ra; Các tham số -y đầu ra bên cạnh so sánh bên. Trong sự kết hợp, hai hiển thị không có hiệu lực hơn nữa so với tham số -y được sử dụng một mình, có nghĩa là bạn có thể có một bí danh trong hồ sơ thiết bị đầu cuối của bạn hoặc trong hồ sơ thiết bị đầu cuối toàn cầu bí danh diff -y.

Tôi nói tất cả điều này vì tất cả các tùy chọn để thay đổi các ký hiệu ("<", "|" và ">") xung đột với tùy chọn -y. Nếu bạn có thể sống mà không có side-by-side, bạn có tùy chọn của hai phong cách đầu ra khác bao gồm hoặc xác định của riêng bạn. Hai kiểu đầu ra là -c (context) và -u (unified). (. Để biết thêm thông tin về những gì họ thấy diff Wikipedia page Để biết thêm thông tin về các tùy chọn xem các diff man page.)

Một sâu hơn trong sửa chữa sẽ được sử dụng các tùy chọn sau:

diff --old-group-format="(deleted)---" \ 
    --new-group-format="(added)---" \ 
    --changed-group-format="(updated)---" \ 
    --unchanged-group-format="(nodiff)---" \ 
    old_file.c new_file.c 

Bây giờ cũ dòng tệp rằng không có mặt trong các tập tin mới được đại diện bởi (xóa) ---

dòng file mới mà không có mặt trong các tập tin cũ được đại diện bởi (thêm) ---

dòng đã được thay đổi được đại diện bởi (cập nhật) ---

dòng chung cho cả tập tin được đại diện bởi (nodiff) ---

Vì bạn dường như để làm điều này thường xuyên, bạn có tùy chọn biến nó thành một bí danh trong hồ sơ thiết bị đầu cuối của bạn hoặc viết một kịch bản shell nhỏ để xử lý nó.Để có thêm tùy chọn, hãy xem hướng dẫn sử dụng section on options và xem chi tiết section on line group formats để biết thông tin về những gì bạn có thể đặt giữa các dấu ngoặc kép trong định nghĩa định dạng.

Tất nhiên, nếu bạn phải có side-by-side, hãy thử ý tưởng của Nathan Fellman ở trên. Nếu không, có tùy chọn sử dụng một công cụ GUI chuyên dụng cho nó như Kompare.

+0

cảm ơn bạn. tôi đã không biết về tùy chọn 'y' cho diff. – basilbc

Các vấn đề liên quan