2013-03-10 37 views
2

我在两列模式下使用emacs来“边缘代码”一些笔记,基本上每行添加关键字。我打开带有注释的文本文件;我选中第72列并插入'|';我把标记设置在右边,'C-x 6 s'分成两列。然后'C-x o'进入2C缓冲区。如何使用换行符在第一列的长度填充emacs两列模式的第二列?

但这个新2C缓存只有一条线长,这使我从滚动超越,我已经输入的文本和换行符,使其更长的时间。

我怎么会很快,甚至可能自动填充一个新行的第一列(原始文本文件)缓冲区的每一行此2C缓冲区,这样我就可以滚动都在一个时间缓冲的画面?

+0

我建议你为它定义一个键盘宏。 – 2013-03-10 17:10:38

+0

这很有道理,但第一个缓冲区的长度每次都不相同。我想我会做一个函数来做移动到列,插入| 2C分割和其他窗口,但我不清楚如何获得原始缓冲区(我分裂的那一行)的行长度, 。 – user2008778 2013-03-10 17:36:54

+0

显然没有超出我的新生儿。 2C分割后,活动窗口是原来的缓冲区,其中包含文本,所以我用'(setq first-buffer-lines(line-number-at-pos(point-max)))' – user2008778 2013-03-10 19:04:59

回答

1

这些是我最终作出的功能。出于某种原因,在函数内部调用2C-split会导致错误,所以我做了一个键盘宏来运行2C-set-separator,2C-split,然后是2C-insert-newlines。

(defun 2C-set-separator() 
     "Insert a separator at column 72." 
     (interactive) 
     (move-to-column '72 t) 
     (insert "|") 
) 

(defun 2C-insert-newlines() 
    "Inserts newlines in the 2C buffer." 
    (interactive) 
    (setq first-buffer-lines (line-number-at-pos (point-max))) 
    (other-window 1) 
    (while (< (line-number-at-pos) first-buffer-lines) 
    (insert "\n") 
    (forward-line)) 
(beginning-of-buffer) 
) 
相关问题