如何在vim中发出哔声

14

有没有一种明确要求vim哔哔声的方法,最好不用运行外部命令?

原因是我经常运行需要很长时间的命令(比如:make),所以我开始做其他事情,但是后来我需要被提醒任务已完成。所以没有错误会导致vim哔哔声,但我可以运行任意命令,所以我需要一些命令来使它哔哔声(虽然使用运行外部程序也可以实现,但我更喜欢更便携的方法)。

3个回答

11

1
@JanHudec 非常晚了,:execute是必要的,这样您就可以使用包含Esc字符的字符串常量。 :normal \<Esc>将执行相当于按下6个按键\ < E s c >的操作,这在正常模式下可能是错误的,具体取决于您的配置。 :normal! \<esc>将在当前版本的Vim中工作,而不考虑配置(因为忽略映射反斜杠本身什么也不做),但这是一种绕路的方式来完成任务。 - Rich
根据:help 'errorbells'的说明,"在正常模式下,无论何时按下<Esc>键,都会发出提示音。"因此,执行:set errorbells命令没有任何效果。 - photon.engine

2

打印Bell字符(Ctrl-G)。在Windows上,echo ^G会发出蜂鸣声。根据您的终端设置,在Linux上也可以使用。


1
在 GUI 版本中,它只是打印青色的 '^G'。 - Jan Hudec

1
这是@johnsyweb-supports-our-mods的答案,处理了一个更特殊的情况,并封装成一个可重复使用的命令。
command -bar Bell call s:Bell()
function s:Bell()
  const l:belloff = &g:belloff
  const l:visualbell = &g:visualbell
  try
    set belloff-=esc
    set novisualbell
    execute "normal! \<Esc>"
  finally
    let &g:belloff = l:belloff
    let &g:visualbell = l:visualbell
  endtry
endfunction

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接