如何使vim的visualbell只闪烁顶/底线?
已经使用Vim多年了,这整个时间我只是接受了如何明亮和分心的视觉铃声。最近有人向我展示了Emacs的视觉效果,它只能闪烁屏幕的顶部和底部。有没有人知道如何重现这种行为在Vim?
如果它目前不是可配置的,有没有人知道它会是多么困难补丁?我有一些C经验,但不熟悉代码库。
Vim和版本
你的问题的大问题是,这个问题取决于vim版本。 vim版本我的意思不是版本(7.3 …),但更多如果你使用MacVim,gVim,终端版本等。 我使用Ubuntu。在我的终端,我甚至不能产生这些视觉闪光(可能Ubuntu只是忽略了他们,至少那是发生在正常的铃声:This program sounds the bell!)。 gVim是不同的,可视铃在那里工作。 t_vb设置 正如一些人所怀疑的,t_vb param负责vim中的可视铃。但它看起来不同的终端: t_vb=^[[?5h$<100/>^[[?5l 和gVim: t_vb=^[|f 所以我认为MacVim也不一样。 顺便说一下:如果你正在修改铃声,你必须生成^ [with< C-V>随后是< ESC> ;.不要复制上面的字符串,他们不会工作。 t_vb只是一个发送到终端(或gvim)的字符串。您还可以定义t_vb = abcd,它将临时在您的光标处输出abcd。这只是显示魔法,闪光发生因为转义字符。 所描述的行为只是gVim的情况。但我认为其余的可能表现非常相似。然而,如果你的终端/伪终端支持一个转义序列,突出只有一些定义的行数,你将能够做你想要的。 我可能会失望你,但我不认为有一种方式来获得所需的行为,而无需修改vim源(或修改终端软件,我绝对不会推荐)。 修改原始源代码 如果要根据需要编辑可视铃的行为,您可以随时编辑C文件。我不会推荐它,但它绝对不是不可能。你可以从这里开始: http://code.google.com/p/vim/source/browse/src/misc1.c#3433 删除“out_str(T_VB);”并插入这样的东西(伪代码): invert(fist_line) invert(last_line) sleep(100 ms) invert(fist_line) invert(last_line) 睡眠可能是恼人的。但这只是最简单的方法(没有计时器等)。问题是找到这样的反函数。我试图寻找一个命令执行vim脚本,然后尝试找到匹配的vim命令。我敢打赌,这是可能的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – Angular UI Bootstrap – 第一次点击时不会弹
- WebSphere Message Broker(12)--webservice服务调用
- angular--将需要参数的方法传入组件
- vim – Visual block insert / append不起作用
- angularjs – 当使用angular-ui的ui-date datepicker时,Ang
- Bootstrap3.0学习第十三轮(导航条)
- active-directory – 从Active Directory迁移到OpenLDAP
- 【数据结构】单链表
- VIM命令速查
- angularjs – Angular.js:$ eval如何工作,为什么它不同于v