首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >锁定vim中的一些文本以防止修改

锁定vim中的一些文本以防止修改
EN

Stack Overflow用户
提问于 2011-05-02 07:07:41
回答 3查看 590关注 0票数 4

我正在寻找一种方法来防止修改vim缓冲区的一部分。我知道锁定缓冲区是可能的,以防止内部的所有修改,但我也想对几行或一段进行同样的修改。

知道这有可能吗?

干杯,V

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-02 13:58:24

嗯,我知道,维姆不能这么做。vim缓冲区中的文本只是一个“字符串”,没有任何属性可以附加到它们上。所以“只读”只能是对整个缓冲区,而不是特定的字符,虽然emacs可以添加文本属性让一些字符在缓冲区只读。

在另一个句柄上,如果您真的想编辑某些内容并使其不影响其他缓冲区内容。应该有另一种方式,虽然不优雅。

1.使用"setlocal buftype=nofile“创建临时缓冲区,将要编辑的文本插入到该缓冲区中。

2.在其他窗口上显示缓冲区(首先需要拆分)

3.编辑临时缓冲区。

4.关闭该缓冲区时,将结果“合并”到实际缓冲区中,并替换要编辑的文本。

因此,您需要通过一些键绑定和vim脚本来实现这一点,这不是一种简单的方法。

票数 2
EN

Stack Overflow用户

发布于 2011-05-03 07:44:13

如果文本的“受保护”区域易于定义(即根据其在文件中的位置或正则表达式),您可以尝试编写一个检查该区域的BufWritePre函数,并在修改该区域时抛出一个错误。当我想要防止保存具有无效折叠结构的文件时,我就采用了这种方法。

这可能包括在加载文件时将原始文本保存在变量中,这可能会对性能产生影响。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-05-02 15:54:11

有一个名为窄区的插件,它编辑选定的文本,其余的保留不变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5854390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档