2012-07-25 76 views
3

是否有可能在Emacs改造這個:如何在Emacs中居中文本?

<!-- inclusion du code JavaScript --> 
<!-- inclusion des feuilles de style --> 
<!-- definition du ZHO    --> 

到這個(近似):

<!-- inclusion du code JavaScript --> 
<!-- inclusion des feuilles de style --> 
<!--  definition du ZHO  --> 

回答

3

我已將下面的點作爲交互式命令連接起來。 @ nicolasdudebout的算法或多或少的聲音,除了需要「硬」move-to-column來選擇矩形。

選擇您感興趣的(沒有箭頭)的矩形,然後運行:

(defun center-rectangle (beg end) 
    (interactive "*r") 
    (kill-rectangle beg end) 
    (with-temp-buffer 
    (yank-rectangle) 
    (setq fill-column (current-column)) 
    (center-region (point-min) (point-max)) 
    (goto-char (point-max)) 
    (move-to-column fill-column t) 
    (kill-rectangle (point-min) (point))) 
    (goto-char beg) 
    (yank-rectangle)) 
+0

沒有工作,矩形保持原樣。 – ychaouche 2012-07-26 09:02:25

+1

這是行不通的。選擇***不包括*** < - - '或' - >'的矩形。 – 2012-07-26 12:52:11

3

您設置變量fill-column到NR。列。在

  1. (setq填充柱100)
  2. 剪切 '< ---' 和 ' - >':

    然後調用(center-line)

    這裏是你如何能做到每一行

  3. 你打電話(中心線)
  4. 呼叫字符串矩形上的第1列,並插入「< ---」
  5. 呼叫上最後一列字符串矩形,插入「--->」

爲了在最後一步上的最後一列到達[3],可以做(goto-char (point-min)),然後(結束線) ,然後致電(indent-line-to COL)

+1

不是什麼OP要求,因爲這不會調整評論分隔符內的間距。 – geoffspear 2012-07-25 14:12:38

+0

哦,對不起。在nxml模式下,我不知道... – alinsoar 2012-07-25 14:14:42

2

您可以使用矩形構建一個函數或宏。 這將做到以下幾點:

  • 切矩形包含文本僅
  • 將其粘貼在臨時緩衝區
  • 設置fill-column來列數和使用center-line(見alinsoar的答案)
  • 將結果切成長方形
  • 將其拉回原始緩衝區中的矩形
+0

如何將填充列設置爲列數? – ychaouche 2012-07-26 09:03:47

+0

由於event_jr在做,所以你可以使用'(setq fill-column(current-column))',因爲當前列在延長時位於矩形的末端。 – 2012-07-26 12:59:21

1

set-justification-center。正如你所期望的那樣,還有set-justification-right。這些功能包括在不恰當的位置思考的換行符,所以它可能會打破段落線。