2013-12-12 57 views
2

我理解emacs如何显示内容的方式是基本上所有内容都是文本。如果你在边缘或linum模式下有某些活动,基本上你的文档会被向内推,并且前几列会写入一些内容。获取框架中的绝对位置

我正在写一个功能,把一些东西放入head-line,这很好用,但是,我希望文本的开始与文档的开始对齐。

因此,我正在寻找一种方法来获取位于框架边框和实际文档开始之间的列数。

让我说明使用不当产生的图形:

DistanceMarker

我想列构成的距离标记被统治者只是线下的号码(或像素数)号码10000

返回该值的函数应在创建head-line的函数中执行。

回答

3

有一个函数window-inside-edges,可以用来分别确定文本区域(“窗体”)与窗口的总宽度和高度在列和行中的偏移量。

它返回一个列表中的四个值;顺序是左 - 顶 - 右 - 底,因此要获得的价值,你有兴趣为当前窗口,只是做

(car (window-inside-edges)) 
在窗口坐标

更多信息,可以发现here; this page有关于窗口大小的信息,包括窗口元素的很好的ASCII表示。

+0

这完全是我想要的!但是,现在我发现了一个不同的问题:并非每个列都具有相同的宽度。我已经确定了像素的多余数量,你知道如何插入宽度为“n”像素的空间吗? (仅供参考:你可以使用'window-inside-pixel-edges'函数找到像素尺寸) – elemakil

+0

@elemakil关闭我的头顶我不这么做,不幸的是。但是,这可能会帮助您:[空间像素规范](https://www.gnu.org/software/emacs/manual/html_node/elisp/Pixel-Specification.html)。 – itsjeyd