Почему я получаю всплывающее сообщение, когда наводил курсор на любое слово из файла Ruby?

Если я наведите указатель мыши на любое слово из файла Ruby, я получаю сообщение всплывающей подсказки.

Снимок экрана этого всплывающего сообщения находится в всплывающем сообщении.

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

Ответ 1

Вы используете vim-ruby, я думаю. Ну, этот плагин определил balloonexpr. Вы можете прочитать здесь здесь. Лично я нахожу это довольно раздражающим, поэтому я отключил его:

setlocal balloonexpr=

в моем .vim/after/ftplugin/ruby.vim файле.

Ответ 2

Самый простой способ - поместить это в свой .vimrc:

  • :set noballooneval

Поместите его после инициализации Syntastic и Pathogen, если вы используете эти плагины.

В некоторых случаях у людей были проблемы с настройкой noballooneval, там было несколько обходов:

  • Если что-то переписывает вашу настройку noballooneval, вы можете использовать :verb set ballooneval? для просмотра изменений.
  • :set balloondelay=100000
  • :setlocal balloonexpr=
  • Найдите строку нарушения в используемом вами плагине и прокомментируйте ее (grep для balloon).
  • Если вы создаете свой собственный Vim, balloon_eval является параметром конфигурации времени компиляции, вы можете использовать его для включения или отключения функции.

Литература:

См. также: Я получаю это окно при редактировании файлов Ruby в Vim. Что это такое?

Ответ 3

То, что вы видите во всплывающей подсказке, это вывод по умолчанию ri при запуске без аргументов.

Я думаю, что несколько недель назад я увидел почти идентичную проблему: a ri vim script/macro, который каким-то образом не отправил правильный аргумент (слово под курсором) на ri.

Вы должны выследить script/plugin/macro/autocommand, который должен взаимодействовать с ri и посмотреть, есть ли:

  • Он эффективно захватывает слово под курсором.
  • Фактически отправляет его на ri.
  • Использует правильный API для общения с ri.

Используете ли вы Janus или какой-то другой "дистрибутив"?

Ответ 4

Если вы используете MacVim, встроенный плагин netrw перезапишет ваш параметр set noballooneval. Вы должны сделать это:

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

Ответ 5

Извините, подсказка с помощью netrw появляется только тогда, когда курсор находится в буфере netrw и в баннере netrw. В частности, это не влияет на рубиновые файлы.