2011-12-01 81 views
4

內只有一個孤獨emacs的幀爲中心的文本我頻繁地切換EDITTING 70列的文本文件(膠乳)和120列的程序文件(.h/.cpp文件)之間。我想繼續使用一個emacs框架,而不調整它的大小或創建額外的框架。在emacs的窗口

這是問題所在。我的窗口寬度大約適合編輯120列的程序,但在擴展文本編輯會話期間,70列出現在窗口的左側。在筆記本電腦前的一天結束時,我的脖子似乎已經獲得了左側的半永久性傾斜。

你知道做居中顯示文本的方法,同時也保證了文本文件保持在正確的鋸齒?

+0

切換到希伯來語? (從右到左):P聽起來好像你通常在一個*窗口中編輯* - 你是否會開放一個解決方案,它自動爲你安排窗口 - 一個用於編輯代碼的文本,兩個並排用於文本(左邊的是空的/未使用的)? –

+0

在兩個窗口之間切換確實很容易。在Mac上,切換的按鍵甚至比emacs中的C-x o或C-x b業務更簡短。但美觀是不好的。因爲我只需要emacs而沒有其他任何東西,所以我的顯示非常整潔:只有這一個窗口。有兩個窗口意味着來自較低較大窗口的文本將可見並且混亂我的視圖。 – Calaf

+0

您可以並排排列窗口,左側空白窗口占50列。 –

回答

5

您可以嘗試通過提高邊緣的尺寸縮小了框架。例如:

(set-fringe-style '(200 . 200)) 

會在主文本區域的每邊刮掉200個像素,使工作區域400像素變窄但仍居中。要返回到普通視圖,

(set-fringe-style 'default) 

將恢復邊緣到正常大小。

你可以換行了裏面的一些建議,這可能會爲你,如果你堅持起到了很好的使用只是一個單一的窗口:

(defadvice switch-to-buffer (after switch-to-buffer-adjust-fringe activate) 
    "depending on major mode, switch fringe style" 
    (if (memq major-mode '(latex-mode)) 
    (set-fringe-style '(200 . 200)) 
(set-fringe-style 'default))) 

注:更新列表(latex-mode)包含任何模式你想要有大的邊緣。

+0

美妙的,但它是唯一有用的,如果它是自動的。如何在編輯.tex文件時觸發這種情況,但在編輯.txt文件,Makefile或直接緩衝區時不會觸發這種情況? – Calaf

+1

@Calaf我更新瞭解決方案的自動化答案,可以自定義以適應您的Emacs使用情況。 –

0

EmacsWiki對shrink-wrapping frames一頁。您可以使用那裏引用的庫和代碼來根據需要自動縮小和增大您的Emacs框架。

0
;; Add left and right margins, when file is markdown or text. 
(defun center-window (window) "" 
    (let* ((current-extension (file-name-extension (or (buffer-file-name) "foo.unknown"))) 
     (max-text-width 80) 
     (margin (max 0 (/ (- (window-width window) max-text-width) 2)))) 
    (if (and (not (string= current-extension "md")) 
      (not (string= current-extension "txt"))) 
     ;; Do nothing if this isn't an .md or .txt file. 
     () 
     (set-window-margins window margin margin)))) 

;; Adjust margins of all windows. 
(defun center-windows() "" 
    (walk-windows (lambda (window) (center-window window)) nil 1)) 

;; Listen to window changes. 
(add-hook 'window-configuration-change-hook 'center-windows) 

在「md」和「txt」下面添加文件擴展名。

+0

用戶試圖獲得幫助,使這個片段工作http://emacs.stackexchange.com/q/4112/115你能幫忙嗎? (s)他沒有足夠的代表評論答案。 –