Làm cách nào để ngăn emacs hỏi tôi có muốn tải một tệp lớn không?


18

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 là có sẵn ở đây: superuser.com/questions/508498/... (setq lớn tập tin cảnh báo ngưỡng nil)
R Perrin

Câu trả lời dưới đây của Gilles đầy đủ hơn và sẽ dạy bạn cách giải quyết các vấn đề tiếp theo của bạn.
jrouquie

Câu trả lời:


29

Qua hướng dẫn

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à 10000000

Kí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-xtrong khi điểm nằm trên dòng đó để thực hiện nó ngay bây giờ.

Trong giao diện Tùy chỉnh

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.

Bằng cách đọc nguồ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-thresholdphả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.)


Tôi ấn tượng bởi các chi tiết và các tài liệu tham khảo bạn đã cung cấp. Cảm ơn rất nhiều, Gilles.
Tola Odejayi
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.