4

在 vim 中是否可以在缓冲区中将文件的一部分从给定行显示到另一行(比如文件 a.txt 从第 10 行到第 25 行)?是否也可以通过删除内容(第 10 到 25 行)来编辑它并将其写回文件,然后从起始行(第 10 行)开始放置当前缓冲区?

我希望从我指定的行范围编辑部分文件而不打开整个文件。我需要这个是出于可用性目的,而不是出于性能问题。

4

2 回答 2

3

NrrwRgn插件就是这样做的;编辑器功能源自 Emacs。您可以使用:NarrowRegion在临时缓冲区中编辑一系列行。

于 2012-10-18T07:51:23.043 回答
1

我不确定如何单独在 vim 中执行此操作,但如果我遇到这样的问题,我会拆分文件:

head -n 10 file > file1
tail -n +11 | head 15 > file2
tail -n +16 > file3

然后编辑中间文件

 vim file2

并再次连接文件:

cat file1 file2 file3 > file

当然,使用一个小函数助手,您可以使用一个命令来完成。

如果问题是您不喜欢查看整个文件(而不是因为文件非常大),那么定义折叠以隐藏文件的其余部分:

1Gv9jzf16jvGzf

(说明:1Gv9j- 到顶部,开始一个可视块,向下走 9 行;zf创建一个折叠,16j向下到第 26 行,vG从第 26 行到末尾创建一个可视块,zf折叠文件的其余部分)

于 2012-10-18T07:22:29.410 回答