2012-10-18 44 views
4

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

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

回答

3

NrrwRgn plugin这样做;编辑器功能来自Emacs。您可以使用:NarrowRegion编辑暂存缓冲区中的一系列行。

+0

尽可能接近我的需求。谢谢。 – ccit

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折叠文件的其余部分)

+0

创建中间文件很难随时保持。通过正常模式命令和解释。但是我会用26G而不是16j来使它更容易(因为对于大的行数很难)。 – ccit

相关问题