2009-03-09 46 views
30

Thường xảy ra rằng bộ đệm tệp được sửa đổi (duh!). Trước khi thoát, các emacs sẽ hỏi có lưu các thay đổi hay không. Bây giờ nó sẽ là thú vị để biết những gì thực sự thay đổi. Có cách nào để tìm ra?Làm nổi bật sửa đổi bộ đệm

+1

Xem http://stackoverflow.com/questions/331569/diff-save-or-kill-when-killing-buffers-in-emacs –

Trả lời

1

Trong trường hợp này tôi gõ hoàn tác để xem thay đổi cuối cùng (thường là một số ký tự đi lạc đã gõ vào cửa sổ sai, vì tôi lưu sớm và thường xuyên).

Sẽ thật tuyệt nếu có một số chỉ báo khác về các thay đổi hiện tại, ví dụ: trong biên giới như sự khác biệt nhanh trong trình soạn thảo văn bản Eclipse.

+0

Và nếu hoàn tác xảy ra để hoàn tác thay đổi quan trọng, bạn chỉ cần nhập một số nhân vật và chạy lùi lại hai lần - nhờ vào cơ sở hoàn tác của Emacs, vốn mạnh mẽ hơn so với hầu hết các biên tập viên. –

17

Tôi sử dụng tệp diff-buffer-with-file và chọn tệp mà bộ đệm đến (mặc định là lệnh mặc định cho lệnh ... chỉ cần nhấn enter).

Bạn cũng có thể sử dụng chế độ đánh dấu thay đổi, mặc dù điều này sẽ không theo dõi thay đổi cho đến khi bạn bật chế độ này, vì vậy không hữu ích nếu bạn muốn xem điều gì đã thay đổi khi bạn đóng một tệp chưa có chế độ này :-)

29

Kể từ Emacs 22.1 (ít nhất), 'save-buffers-kill-emacs (ràng buộc mặc định cho Cx Cc) sẽ nhắc bạn cho mỗi bộ đệm chưa lưu có tệp. Nhập số d khi được nhắc lưu và xem sự khác biệt.

Từ tài liệu trợ giúp:

Save some modified file-visiting buffers. Asks user about each one. 
You can answer `y' to save, `n' not to save, `C-r' to look at the 
buffer in question with `view-buffer' before deciding or `d' to 
view the differences using `diff-buffer-with-file'. 

Nếu bạn nhìn vào dấu nhắc, nó nên nói cái gì đó như:

Save file /path/to/file.txt? (y, n, !, ., q, C-r, d, or C-h) 

Ch mang đến cho bạn một chút mô tả dài dòng hơn (nhưng d là những gì bạn đang yêu cầu):

Type SPC or `y' to save the current buffer; 
DEL or `n' to skip the current buffer; 
RET or `q' to give up on the save (skip all remaining buffers); 
C-g to quit (cancel the whole command); 
! to save all remaining buffers; 
C-r to view this buffer; 
d to view changes in this buffer; 
or . (period) to save the current buffer and exit. 
8

Bạn có thể kích hoạt highlight-changes-mode. Nó sẽ hiển thị tất cả các thay đổi màu đỏ. Tuy nhiên, nó sẽ không hiển thị cho bạn những thay đổi khoảng trắng và sẽ đánh dấu việc xóa chỉ với một màu đỏ _. Xem thêm http://www.emacswiki.org/emacs/TrackChanges.

+0

Điều này thật tuyệt vời, cảm ơn bạn. – CodyChan

+0

http://stackoverflow.com/a/21084181/1528712 điều này sẽ làm cho thay đổi hiển thị đánh dấu trên rìa trái. – CodyChan

0

Tôi sử dụng goto-chg cho những việc tương tự. Nó không hoàn hảo, nhưng nó luôn luôn là đủ để chạy bộ nhớ của tôi về những gì thay đổi tôi đã thực hiện và kịp thời quên mất.

2

Tôi tìm thấy điều này post about tracking changes bởi djcb hữu ích nhất liên quan đến các thay đổi theo dõi trong Emacs. Bí quyết là thêm nội dung sau đây vào .emacs của bạn:

;; higlight changes in documents 
(global-highlight-changes-mode t) 
(setq highlight-changes-visibility-initial-state nil); initially hide 

và sau đó chuyển đổi chế độ hiển thị thay đổi khi bạn muốn xem điều gì đã thay đổi.

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