当我将鼠标悬停在Ruby文件的任何单词上时,为什么会收到弹出消息?

时间:2011-12-16 12:20:14

标签: ruby vim editor

如果我将鼠标悬停在Ruby文件的任何单词上,我会收到一个工具提示消息。

该弹出消息的屏幕截图位于popup message

cat ~/.gvimrc返回:

function! SyntaxBalloon()
    let synID   = synID(v:beval_lnum, v:beval_col, 0)
    let groupID = synIDtrans(synID)
    let name    = synIDattr(synID, "name")
    let group   = synIDattr(groupID, "name")
    return name . "\n" . group
endfunction

set balloonexpr=SyntaxBalloon()
set ballooneval

"how syntax highlighting groups for word under cursor
nmap <F2> :call <SID>SynStack()<CR>
function! <SID>SynStack()
    if !exists("*synstack")
        return
    endif
    echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc

5 个答案:

答案 0 :(得分:23)

最简单的方法是将它放在你的.vimrc中:

  • :set noballooneval

如果您使用这些插件,请在初始化Syntastic和Pathogen后放置它。

在某些情况下,人们在设置noballooneval方面遇到了问题,有一些解决办法:

  • 如果某些内容覆盖了您的noballooneval设置,您可以使用:verb set ballooneval?来观看对其的更改。
  • :set balloondelay=100000
  • :setlocal balloonexpr=
  • 在您正在使用的插件中找到有问题的行并将其注释掉(grep for balloon)。
  • 如果您正在构建自己的Vim,balloon_eval是编译时配置选项,您可以使用它来启用或禁用该功能。

参考文献:

另请参阅:I get this window while editing Ruby Files in Vim. What is it?

答案 1 :(得分:10)

我猜你正在使用vim-ruby。好吧,这个插件定义了一个balloonexpr。你可以阅读它here。就个人而言,我觉得它很烦人所以我用它禁用了它:

setlocal balloonexpr=

在我的.vim/after/ftplugin/ruby.vim文件中。

答案 2 :(得分:4)

如果您使用的是MacVim,内置的netrw插件将覆盖您的set noballooneval设置。你必须这样做:

" Disable hover tooltips
set noballooneval
let g:netrw_nobeval = 1

答案 3 :(得分:1)

在没有参数的情况下运行时,您在工具提示中看到的是ri的默认输出。

我想我几周前在这里看到了一个几乎相同的问题:一个ri vim脚本/宏,它以某种方式没有将正确的参数(光标下的单词)发送给ri

你应该找到应该与ri交互的脚本/ plugin / macro / autocommand,看看是否:

  1. 它有效地抓住光标下的单词。
  2. 实际上将其发送到ri
  3. 使用正确的API与ri进行对话。
  4. 您使用的是Janus还是其他一些&#34;发行版&#34;?

答案 4 :(得分:0)

对不起,当光标在netrw缓冲区和netrw的横幅中时,netrw的气球帮助才会出现。特别是,它不会影响ruby文件。