gvim設置使用


最近有一款編輯器叫sublimeText 2比較流行,我也下載用了一下,確實很好看,自動完成,縮進功能什么的也比較齊全,插件也十分豐富。但用起來不是很順手,最后還是回到了Gvim(Vim的GUI版本,除了一些GUI可以額外設置,顏色支持更多外基本與Vim沒有區別)的懷抱,我並沒有花很多時間去把玩ST2,沒法評論那個更好,不過也許Gvim會更適合我。所以想寫幾篇博文記錄下一路學習Gvim的過程。

  寫在前面:

  (1)我用的是Gvim7.3_46,系統是win7

  (2)這一系列文章不會詳細的介紹Vim的每一個命令的用法

  (3)我會盡量的配圖,千言萬語有時候真的沒有一張圖片來得直觀

  (4)Gvim下載地址Gvim需要爬牆

  什么叫有感覺呢?最近看了很多相親的帖子(沒錯,樓主也是大齡苦逼單身屌絲碼農T-T)。經常某某會這樣說:“我的要求不高,對方有感覺就好。”,這其實是一個很高的要求,類似於你希望微軟為了讓你寫程序有感覺而推出一個量身打造的VS-For-You,當然你有足夠的金錢也不是不可能的(這點和某些相親情況類似)。話扯遠了,我想說的是也許這輩子我們都無法找到一個真正有感覺的人,但這陣子我們完全就可以打造一個有感覺的Vim。

  順眼的外表:

    按照上面的下載地址路安裝完成之后,來看看我們素顏的Gvim姑娘

    

    而在Gvim安裝的根目錄下你可以看到一個這樣的文件_vimrc,這個是Gvim的配置文件,未修改過的內容如下

復制代碼
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
復制代碼

  這是一些基本的配置和一個函數,暫時不用管這些。現在我們來看看Gvim外觀的一些設置。

  首先是要說的是Gvim的設置大多是通過set [key]=[value]這個命令來實現。而Vim有三個基本的模式(正常模式,編輯模式,和底行模式)set命令需要在底行模式中執行,而進入底行命令需要在正常模式中按下:,這時候你就會在底部看見一個要求輸入命令的行。

而正常模式是編輯模式和底行模式的轉換層(編輯模式需要在正常模式中按下某些鍵,例如:i,I,a,A等等,進入),因為正常模式是Vim的默認模式,現在我們只需要按下:進入即可。

我們通過在底行模式下輸入browse set可以看到當前的設置

此時當前窗口被分割成了兩個部分,通過瀏覽上面窗口的內容我們可以知道當前Gvim的各個設置和每個設置控制的外觀屬性。

為了打造Gvim小姐,我們需要對以下幾個設置進行更改。

復制代碼
guioptions:縮寫是go 主要控制Gvim的圖形外觀,默認只是egmrLtT,每個字母的意義如下:
                e.(這個不知道)
                g.令Gvim的無法使用的菜單選項變為灰色
         m.顯示菜單欄
         r.顯示右邊的下拉條L.當垂直分割窗口的時候顯示左邊的下拉條
t.(這個不知道)
T.顯示工具欄
復制代碼

既然用Vim了那么我們可能基本上就不會再用到工具欄和菜單欄了,一切操作都應該以快捷鍵和命令完成,所以我們不需要這些設定。不需要菜單欄,不需要下拉條,不需要工具欄。只需要一個窗口就好。我們只需要簡單的將go設置成空就行了,命令如下

:set go=

Gvim變成了下面這個樣子

這個字體看起來不是很舒服,我們還需要對字體設定一下,這個選項是guifont,首先我們調出字體設置的頁面,輸入如下命令即可

:set guifont=*

命令成功執行后會彈出下面的對話框

我選擇了如圖所示的字體,點擊確定后Gvim如下

 

 

我們還需要記錄下當前字體的設置,然后將其寫如配置文件中,這樣就不用每次打開Gvim都要重新設定一下了。查看任意一個設置的當前值得命令為:set [key]?,所以查看當前字體設定的命令如下

:set guifont?

guifont的值會在當前輸出

當編輯的時候我們不希望屏幕中間還有一個鼠標停在那里,只要如下設定即可達到目的

:set mousehide

這樣當我們按下鍵盤的時候鼠標就會消失了

我們還需要設置一下Gvim的高和寬,最好是全屏,所以我們要設置一下Gvim的行數和列數

:set lines=150 columns=1000

這只是一個大概的設置,但是你應該設置一個超過當前行數和列數的值來保證Gvim窗口的最大化,因為之前我們已經設置了沒有下拉條並且Gvim的默認設定會自動折行所以這樣設置並沒有問題,但你也可以使用下面這個命令來保證最大化到精切的行數和列數

au GUIEnter * simalt ~x

但是這個命令只能保存到配置文件中,因為這是一個響應Gvim打開的自動命令,就是在每次Gvim打開是模擬執行Windows最大化窗口的快捷鍵(Alt+空格+x)

下面來切換一下Gvim的主題,在Vim的根目錄下有一個colors文件夾里面就存放了Vim的默認安裝的主題,如下圖

我們只需要輸入:colo [ThemeName] 例如

:colo evening

此時Gvim的窗口如下

 

你也可以訪問100個頂級Vim主題下載(需爬牆)獲得,下載完成后解壓出.vim后綴的文件放到colors文件夾下進入Vim中用:colo設定即可

最后我們要將這些配以一起寫到前文提到的_vimrc中,這樣每次Gvim啟動我們就不需要再次設置了。最后的_vimrc文件如下

復制代碼
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
"無菜單工具條 set go=
"設置Gvim字體 set guifont=Consolas:h11:cANSI
"Gvim打開即進入全屏 au GUIEnter * simalt ~x
"設置主題 colo evening set diffexpr=MyDiff() function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\<cmd' let cmd = '""' . $VIMRUNTIME . '\diff"' let eq = '"' else let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' endif else let cmd = $VIMRUNTIME . '\diff' endif silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM