2014-09-19 51 views
0

通常情況下,我需要啓用自動填充模式,所以我打開它在.emacs中。但是,在PHP模式下編輯PHP時,我不想使用自動填充模式。有沒有辦法將它設置爲.emacs,這樣當我處於PHP模式時,自動填充段落模式會自動關閉,當我離開php模式時,它會自動打開,禁止其他覆蓋?在Emacs中,如何在php模式下禁用自動填充段落模式?

更新說明:.emacs的仔細檢查發現,自動填充設置了由

(custom-set-variables 
;; custom-set-variables was added by Custom. 
;; If you edit it by hand, you could mess it up, so be careful. 
;; Your init file should contain only one such instance. 
;; If there is more than one, they won't work right. 
'(column-number-mode t) 
    ... 
    '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify))) 
    ...) 
+0

'自動填充模式'看起來不像是全局的,所以你可能已經把它設置在你的用戶定製文件的某個地方。我能想到的控制其行爲的最簡單方法是對打開「自動填充模式」(即,不包括「php-mode」)(或創建此類函數)的函數進行例外處理,或者乾脆將其用作通常使用的主模式掛鉤啓用的緩衝區本地次要模式。該文檔聲明它是一個緩衝區本地次要模式:https://www.gnu.org/software/emacs/manual/html_node/emacs/Auto-Fill.html – lawlist 2014-09-19 06:42:04

+0

如果它是一個繼承問題(例如'php -mode'是借用另一個主要模式)而不是全局設置問題,那麼也許你可以嘗試像這樣:'(add-hook'php-mode-hook(lambda()(auto-fill-mode-1)) )「繼承問題是我建立自己的文本模式與股票版本不同的原因之一 - 也就是說,其他主要模式不會繼承某些文本模式設置。 '-1'(負整數)關閉次模式。 – lawlist 2014-09-19 07:05:56

+0

@lawlist你可以給你的評論作爲正確的答案嗎? – Thomas 2014-09-19 13:51:20

回答

1

一些主要-模式繼承其他模式(例如,text-mode被許多流行的主要模式)的某些設置。下面的代碼片段可以用於使用其模式鉤以禁用功能用於某個特定的主模式:

(add-hook 'php-mode-hook (lambda() 
    (auto-fill-mode -1))) 

它有時是有益的檢查,看看是否特定的功能已被整體或局部啓用,這在轉向可以提供關於該功能是否已被主要模式繼承的線索。在這種情況下,auto-fill-mode狀態的文件如下 - https://www.gnu.org/software/emacs/manual/html_node/emacs/Auto-Fill.html

自動填充模式是一個緩衝,局部輕微模式(見次要模式),其中,當他們變得太寬線自動斷斷裂發生。只有當你輸入一個<SPC><RET>

相關問題