2011-12-21 66 views
7

我在Ubuntu上一直在使用GVim進行字體渲染問題很久。在切換標籤時,我經常會注意到這個問題。在切換標籤之後,有時線條不會被渲染。如果我點擊Ctrl + l,選項卡中的內容將被重新繪製,並且缺失的線條將被正確渲染。我想我可以在我的.vimrc中編寫一個函數,在切換標籤頁後自動運行ctrl + l,但我覺得我只會避免一個問題,而不是解決底層問題。Gvim中的文本消失

  • 的Ubuntu 11.10
  • gVim的7.3
  • 的.vimrc:set guifont=Inconsolata\ 12

我一直有很長一段時間,不同版本的Ubuntu,並設置不同的GUI字體的問題。我很樂意聽到任何人的想法,可以幫助我解決這個問題。

這些都是我用切換標籤的功能:被用來調用一個函數(我認爲它是Vim的其它腳本語言版本的eval()

function TabLeft() 
    let tab_number = tabpagenr() - 1 
    if tab_number == 0 
     execute "tabm" tabpagenr('$') - 1 
    else 
     execute "tabm" tab_number - 1 
    endif 
endfunction 

function TabRight() 
    let tab_number = tabpagenr() - 1 
    let last_tab_number = tabpagenr('$') - 1 
    if tab_number == last_tab_number 
     execute "tabm" 0 
    else 
     execute "tabm" tab_number + 1 
    endif 
endfunction 

map <silent><C-S-PageUp> :execute TabRight()<CR> 
map <silent><C-S-PageDown> :execute TabLeft()<CR> 
+0

在每個'execute「tabm」'命令後面加上'execute '。我的標籤切換現在強制屏幕重繪。這感覺像是一個臨時性的解決方案,直到我能夠找出潛在的問題是什麼。 – 2011-12-21 22:52:32

回答

5

我在Ubuntu上看到了字體渲染故障。我的解決方法是使用'textmode'樣式的tabheadings,參見guioptions。

這裏是我的首選的設置:

:se guioptions=agim 

注意

  • 我可以想像的事情,但似乎迅捷太
  • 這將導致更多的屏幕房地產編輯
  • 以上設置還會刪除所有滾動條(誰需要滾動條?)

要只更改標籤標題樣式,請嘗試

:se guioptions-=e 
+0

我加了'se guioptions = agim'。如果有的話,我真的更喜歡清潔的外觀。我討厭所有額外的垃圾GVim添加到編輯。自從進行此更改後,我還沒有看到任何文本呈現問題。我會在測試一段時間後將此答案標記爲接受的答案。謝謝。 – 2011-12-22 20:24:14

+0

我有同樣的問題,看起來像刪除-e選項做了我的伎倆。 – Makis 2013-10-17 12:29:29

0

我從來沒有見過:execute。嘗試更改:execute TabRight()<CR>:call TabRight()<CR>,看看是否有幫助。

+0

我將'execute'改爲'call',並且標籤切換功能表現相同。我認爲你在這種情況下使用「call」比「execute」更正確。 – 2011-12-22 20:30:03