2012-04-19 17 views
6

Sau khá nhiều thử nghiệm, tôi nghĩ rằng tôi thích:Trong emacs, tôi có thể có một bộ cài đặt dòng bọc cho mã và một cho văn bản không?

(setq truncate-lines nil) 
(setq word-wrap t) 

để chỉnh sửa văn bản, nhưng

(setq truncate-lines t) 
(setq word-wrap nil) 

cho lập trình.

Trong tất cả các chế độ, tôi thích:

(setq fill-column 80) 

vì vậy mà tôi có thể sử dụng M-qC-u M-q chảy văn bản đến 80 cột, nhưng tôi cũng thấy rằng tôi không thích auto-fill chế độ và sẽ không bao giờ muốn nó được trên .

Tôi cũng không phải là quan tâm về visual-line-mode (hoặc ít nhất là các bit của nó mà không phải là word-wrap)

Có một số câu thần chú tôi có thể đặt trong tập tin .emacs tôi sẽ làm cho tôi hạnh phúc?

Tôi xác định hạnh phúc là: 'tất cả chỉ là những gì tôi muốn và tôi không bao giờ cần phải suy nghĩ về điều này một lần nữa'.

Trả lời

7

Sử dụng prog-mode-hooktext-mode-hook để thiết lập các biến:

(add-hook 'text-mode-hook '(lambda() 
    (setq truncate-lines nil 
      word-wrap t))) 

(add-hook 'prog-mode-hook '(lambda() 
    (setq truncate-lines t 
      word-wrap nil))) 
+3

không quên, tất cả các chế độ lập trình chưa thực sự được bắt nguồn từ prog -chế độ. phần đầu tiên trong câu trả lời có thể không hoạt động đối với một số chế độ lập trình – kindahero

+0

Đây sẽ là một câu trả lời hoàn hảo nếu nó hoạt động! Tôi đã thêm những dòng vào tập tin .emacs của tôi nhưng tôi dường như có được chế độ chỉnh sửa mặc định cho tất cả các tệp. –

+1

@JohnLawrenceAspden tùy thuộc vào phiên bản Emacs của bạn, 'prog-mode-hook' có thể không được xác định (ví dụ, tôi không có nó trên Emacs 23.3.1; bạn có thể kiểm tra xem bạn có nhận được một số tài liệu sử dụng' Ch v prog- mode-hook'). Nếu trường hợp này xảy ra, bạn sẽ phải thêm các móc cho tất cả các chế độ lập trình bạn sử dụng (hoặc nâng cấp lên Emacs 24). – Francesco

2

Xin lỗi vì không đưa ra mã nguồn trong câu trả lời của tôi, nhưng tôi có thể đảm bảo với bạn rằng việc thiết lập mà bạn có trong tâm trí có thể là hành động. Nó chỉ phụ thuộc vào định nghĩa của bạn về "chế độ lập trình". Hầu hết các chế độ đều có chức năng móc gọi (xem http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html). Đây là những chức năng cơ bản được thực hiện khi một chế độ được nạp. Một cái móc như vậy sẽ điều chỉnh các thiết lập mà bạn có trong tâm trí.

1

(setq truncate-lines t) vẫn không hoạt động?

Thủ phạm có thể là chế độ khác. Visual-line-mode là của tôi (toàn cầu nhìn dòng-mode), vì vậy tôi đã phải đặt các chức năng vô hiệu hóa vào móc:

(add-hook 'neotree-mode-hook 
     (lambda() 
     (visual-line-mode -1) 
     (setq truncate-lines t))) 
Các vấn đề liên quan