关于文件修改的有关问题
关于文件修改的问题
在使用vim的修改文件的时候下列功能是如何实现的?
AAAAAAAAAAAAAAA
BBBBBBBBBBBBBBB
-----------------------------------------------
AAAAAAAAAAAAAAA
CCCCCCCCCCCCCCC
BBBBBBBBBBBBBBB
------------------------------------------------
就是在文本A和B之间插入C文本.
我现在的实现是
把B复制在一个buffer中让后向后覆盖.
但是如果修改的文件非常大,比如1GB我在开始一字节添加一个字符,那么他就将向后复制1GB的数据.
我想知道VIM是如何实现这种文本插入的.
------解决思路----------------------
不知道怎么实现的,但针对你说的这个问题,我觉得一个文件的内容不一定非得放到一块内存里面,这样在前面插入新内容的时候,就不需要memmove了。
------解决思路----------------------
应该就是直接向后覆盖吧,,,对于一般的文件速度足够了。。。
在使用vim的修改文件的时候下列功能是如何实现的?
AAAAAAAAAAAAAAA
BBBBBBBBBBBBBBB
-----------------------------------------------
AAAAAAAAAAAAAAA
CCCCCCCCCCCCCCC
BBBBBBBBBBBBBBB
------------------------------------------------
就是在文本A和B之间插入C文本.
我现在的实现是
把B复制在一个buffer中让后向后覆盖.
但是如果修改的文件非常大,比如1GB我在开始一字节添加一个字符,那么他就将向后复制1GB的数据.
我想知道VIM是如何实现这种文本插入的.
------解决思路----------------------
不知道怎么实现的,但针对你说的这个问题,我觉得一个文件的内容不一定非得放到一块内存里面,这样在前面插入新内容的时候,就不需要memmove了。
------解决思路----------------------
应该就是直接向后覆盖吧,,,对于一般的文件速度足够了。。。