在 vim 中是否可以在缓冲区中将文件的一部分从给定行显示到另一行(比如文件 a.txt 从第 10 行到第 25 行)?是否也可以通过删除内容(第 10 到 25 行)来编辑它并将其写回文件,然后从起始行(第 10 行)开始放置当前缓冲区?
我希望从我指定的行范围编辑部分文件而不打开整个文件。我需要这个是出于可用性目的,而不是出于性能问题。
在 vim 中是否可以在缓冲区中将文件的一部分从给定行显示到另一行(比如文件 a.txt 从第 10 行到第 25 行)?是否也可以通过删除内容(第 10 到 25 行)来编辑它并将其写回文件,然后从起始行(第 10 行)开始放置当前缓冲区?
我希望从我指定的行范围编辑部分文件而不打开整个文件。我需要这个是出于可用性目的,而不是出于性能问题。
NrrwRgn插件就是这样做的;编辑器功能源自 Emacs。您可以使用:NarrowRegion
在临时缓冲区中编辑一系列行。
我不确定如何单独在 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
折叠文件的其余部分)