我正在写我的vimrc文件,并像这样做一些onoremap
:
onoremap i@ :<c-u>execute "normal! /\\w\\+@\\w\\+\\.[0-9a-zA-Z.]\\+\r:nohlsearch\rvf@h"<CR>
为此,我将i@
映射为对“下一个类似电子邮件的字符串的用户名”进行一些操作。它在足够大的vim窗口中工作良好。但是,当我在相对较小的vim窗口上对其进行测试时,例如,点击ci@
以快速更改下一个类似电子邮件的字符串的用户名,则必须先点击一次输入,然后才能真正执行“更改”。这太可怕了,因为我可能经常在很小的窗户上做Vim事情。
我相信这里的点击提示是由执行搜索命令时消息太长引起的。我已经在谷歌上寻找解决方案,并且我知道我可以在vim中设置shortmess
标志来使消息更短或增加命令行显示的高度。但是我认为这些解决方案不是 essence 。
此外,我不想忽略外部命令行输出。 是否有某种方法可以完全避免仅由“消息空间不足”引起的点击提示?
或者我可以通过某种方式更改onoremap
代码来满足这种需求吗?
非常感谢:)
(Google解决方案:Avoiding the "Hit ENTER to continue" prompts)
编辑:我说的是“ vim窗口”,但实际上由于小“ vim窗口”而不是“小终端显示中的vim”而未提示问题。如果您分割了一个小的Vim窗口,但仍然带有一个长消息栏,则不会出现按输入提示。
答案 0 :(得分:3)
是否有某种方法可以完全避免仅由“消息空间不足”引起的点击提示?
不。只能完全禁用“更多提示”。参见:help hit-enter
。
我相信这里的点击提示是由于执行搜索命令时消息太长所致。
我想不是消息的长度,而是消息的数量:一个消息用于回显映射,另一条消息用于/
输出。
尝试像这样使用silent
:
onoremap <silent>i@ :<c-u>silent! execute ...
第一个<silent>
禁止显示“ echo”,第二个禁止显示命令的输出。