如何在Emacs中查看和编辑文本文件的一小部分

3
我希望在Emacs中实现以下行为,并想知道是否有现成的包可以满足我的需求。
我希望我的缓冲区仅显示myfile.txt文件中第30到60行,并将文件的其余部分隐藏起来。
- 当我向上滚动到顶部时,应该在第30行。 - 当我向下滚动到底部时,应该在第60行。 - 如果我编辑此区域,则应在原始文件中反映这些编辑。 - 区域应随着插入/删除行而增长/缩小。 - 我应该能够在不同的缓冲区中打开同一文件的多个区域。
这非常接近我的理想工作流程。非常感谢您的帮助!

1
除了最后一个要求外,您可以使用narrowing - Juancho
1
对于最后一个要求,请检查间接缓冲区 - Juancho
3个回答

5

通过Narrowing,你可以使用C-x n n缩小到点和标记之间的区域,然后你所编辑的内容将被限制在这个区域内。之后,使用C-x n w扩展,就可以再次访问整个缓冲区。也许这正是你所需要的。


2
尝试使用库Narrow Indirect (narrow-indirect.el),它提供了简单的命令来创建一个“间接缓冲区”,即当前缓冲区的克隆,并将其缩小到特定部分。默认情况下,它通过使用缓冲区名称前缀(默认为I-)和在模式行中使用不同的面来帮助您区分此类间接缓冲区和非间接缓冲区。

1
为了补充其他答案,如果您正在处理特定的org文件,您还可以使用以下命令: C-x n s (org-narrow-to-subtree):缩小当前子树的缓冲区。
C-x n w (widen):扩大缓冲区以消除缩小。
如果您正在使用块(‘#+BEGIN’ … ‘#+END):
C-x n b (org-narrow-to-block):将缓冲区缩小到当前块。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接