Khi tôi mở một tệp lớn trong emacs, tôi nhận được một thông báo nói rằng 'tệp foo.bar là lớn; thực sự mở? '
Làm thế nào để tôi ngăn chặn emacs hỏi tôi câu hỏi này mọi lúc? Nói cách khác, nếu tôi mở tệp, tôi muốn mở tệp, bất kể nó lớn đến đâu.
Khi tôi mở một tệp lớn trong emacs, tôi nhận được một thông báo nói rằng 'tệp foo.bar là lớn; thực sự mở? '
Làm thế nào để tôi ngăn chặn emacs hỏi tôi câu hỏi này mọi lúc? Nói cách khác, nếu tôi mở tệp, tôi muốn mở tệp, bất kể nó lớn đến đâu.
Câu trả lời:
Trong hướng dẫn sử dụng (mà bạn có thể duyệt bên trong Emacs trong Thông tin C-h i m Emacs RET
:): đi đến chương trên tệp , sau đó đến phần truy cập (tức là mở) tệp. Hãy tìm từ lớn
Nếu bạn cố truy cập một tệp lớn hơn
large-file-warning-threshold
(mặc định là 10000000, tức là khoảng 10 megabyte), Emacs sẽ yêu cầu bạn xác nhận trước. Bạn có thể trả lời y để tiến hành truy cập tệp.
Đây không phải là toàn bộ câu chuyện, bạn có thể tìm thêm thông tin bằng cách xem tài liệu của large-file-warning-threshold
( C-h v large-file-warning-threshold RET
).
ngưỡng cảnh báo tệp lớn là một biến được định nghĩa trong
files.el
.
Giá trị của nó là 10000000Kích thước tối đa của tệp trên đó yêu cầu xác nhận.
Khi không, không bao giờ yêu cầu xác nhận.
Để đặt giá trị, bạn có thể sử dụng giao diện Tùy chỉnh (có một liên kết trong màn hình trợ giúp cho biến) hoặc đặt câu lệnh sau vào .emacs
:
(setq large-file-warning-threshold nil)
Nhập C-M-x
trong khi điểm nằm trên dòng đó để thực hiện nó ngay bây giờ.
Bên dưới tập tin của tập tin, bên dưới tập tin Tìm tập tin, có một cài đặt Ngưỡng cảnh báo tập tin lớn. Bạn có thể đặt giá trị lớn, mặc dù trên máy 32 bit, bạn có thể gặp giới hạn cứng tương đối nhỏ của Emacs đối với kích thước số nguyên.
Nhìn vào chức năng để mở tệp: C-h k C-x C-f
(hoặc C-h f find-file RET
). Bấm vào files.el
để duyệt tập tin nguồn (bạn phải cài đặt nguồn Lisp). Đừng đọc mã - nó khá lớn - nhưng hãy tìm kiếm các phần của thông điệp trong tệp đó. Bạn sẽ tìm thấy
(defun abort-if-file-too-large (size op-type filename)
"If file SIZE larger than `large-file-warning-threshold', allow user to abort.
OP-TYPE specifies the file operation being performed (for message to user)."
(when (and large-file-warning-threshold size
(> size large-file-warning-threshold)
(not (y-or-n-p
(format "File %s is large (%dMB), really %s? "
(file-name-nondirectory filename)
(/ size 1048576) op-type))))
(error "Aborted")))
Thông báo chỉ được hiển thị khi một số điều kiện được đáp ứng. Điều kiện đầu tiên là large-file-warning-threshold
(được hiểu là boolean), tức là large-file-warning-threshold
phải không bằng không. Vì vậy, bạn có thể vô hiệu hóa tin nhắn bằng cách đặt biến đó thành nil
. (Bạn có thể xác nhận rằng đó là biến toàn cục bằng cách xem định nghĩa của nó trong cùng một tệp - đó là một mục có thể tùy chỉnh và tài liệu giải thích cách sử dụng nếu bạn không đủ quen thuộc với Lisp và chỉ tìm ra rằng biến đó có vấn đề đường.)