2011-12-16 28 views
10

如果我將鼠標懸停在Ruby文件的任何單詞上,我會收到一條工具提示消息。爲什麼當我將鼠標懸停在任何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 

回答

10

你正在使用vim,紅寶石我猜。那麼,這個插件定義了一個balloonexpr。你可以閱讀它here。我個人覺得很討厭,所以我已經禁用它:

setlocal balloonexpr= 
.vim/after/ftplugin/ruby.vim文件

+0

不,它是〜/ .vim/plugin中的NERD_tree.vim,我更新了原始帖子/問題。再次瞭解這一點。 – shibly 2011-12-16 12:32:00

+0

我有NERD_tree和解決它與提供的代碼 – 2013-05-15 17:52:10

1

您在工具提示中看到的是當運行時沒有參數時的默認輸出ri

我想我幾周前在這裏看到了一個幾乎相同的問題: vim腳本/宏以某種方式沒有發送正確的參數(光標下的單詞)到ri

你應該追捕腳本/插件/宏/是應該與ri互動,看看是否自動命令:

  1. 它有效地抓住光標下的單詞。
  2. 實際上發送到ri
  3. 使用正確的API與ri對話。

您是否使用Janus或其他「發行版」?

23

最乾淨最簡單的方法是把你的.vimrc文件:你初始化Syntastic和病原之後

  • :set noballooneval

的地方,如果你使用這些插件。

在某些情況下,人們不得不用設置noballooneval問題,有一些變通辦法:

  • 如果有些東西覆蓋你noballooneval設置,您可以使用:verb set ballooneval?觀看更改。
  • :set balloondelay=100000
  • :setlocal balloonexpr=
  • 查找插件出錯行你正在使用和將其註釋掉(grep命令balloon)。
  • 如果您正在構建自己的Vim,balloon_eval是編譯時配置選項,您可以使用它來啓用或禁用該功能。

參考文獻:

參見:I get this window while editing Ruby Files in Vim. What is it?

+0

編輯,使鏈接工作:) – number5 2012-11-12 05:32:58

1

如果您使用的MacVim,內置NETRW插件會覆蓋您的set noballooneval設置。你必須這樣做:

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

對不起,NETRW的氣球幫助只顯示了當光標在netrw緩衝區和NETRW的旗幟。特別是,它不會影響ruby文件。

相關問題