vim實用筆記

真是不知不覺過了一年,前段時間忙着考試什麼的,沒再寫筆記寫博客,考完又懶懶地玩了幾天。這幾天其實都在讀別人的博客,感覺一下大神的工做和生活感悟,感覺一下過來人的經歷和經驗,對本身老是頗有幫助的。php

今天想寫下一下vim的筆記。java

Vim,程序員必備的高效編輯器,不用多介紹的了,代碼補全、編譯和跳轉等方便的編輯都是很是豐富完整的。python

其實如今很多公司指定員工後臺開發要用這個編輯器,ubuntu+vim的開發形式其實挺常見的。Vim確實是很是強大的編輯器,不少IDE能夠作的vim均可以作到,想自行增長一些編輯加強或者編譯功能的話裝對應插件便可。c++

本篇筆記涉及到的軟件有vim7.3版本,python3.0 , clang3.0。git

目錄:程序員

1、常識github

2、vim基礎筆記ubuntu

   2.一、基本文本輸入vim

   2.二、vim實用基礎配置編輯器

3、vim實用功能

   3.一、查找功能

   3.二、分割窗口編輯多個文件

   3.三、代碼摺疊

   3.四、代碼間跳轉

   3.五、vim代碼自動補全插件clang_complete的安裝

1、常識:

一、按Tab能夠補全命令;

二、下面提到的凡是「:set XXXX」之類的設置命令都可直接在vim配置文件vimrc中加入,這樣的話不用每次都從新配置;

三、vim的配置文件路徑通常是:/etc/vim/vimrc,若是你想針對某個特定用戶配置一個特定的配置文件,那麼在該用戶文件夾下建立~/.vimrc文件,並輸入配置內容便可;

四、幫助文檔的使用,好比說我想知道怎麼開啓語法高亮(通常默認是已經開啓的),那麼在vim中鍵入命令:」:help syntax」,便可查看相關幫助信息:

若是要進一步查看相關文檔,好比文檔usr_06.txt,那麼繼續鍵入」:help usr_06.txt」便可跳轉,查看完畢以後,按ZZ或者鍵入」:q!」(不保存的退出方式)便可退出幫助文檔。

2、vim基礎筆記:

2.1 基本文本輸入:

一、鍵入文本:按i(其實a,s等沒有其餘功能的普通按鍵亦可)

二、退出輸入狀態:<Esc>鍵。

三、複製:在非輸入狀態下(按Esc退出輸入狀態),按yy(複製整行),yw(複製當前單詞),y$(複製到行尾),鼠標選中按y(複製選中部分)。

四、粘貼:<Esc> 。按p。

五、移動:按逐個詞向後:<Esc>,w;逐個詞往回:<Esc>,b。移動到指定行,好比移動到33行:<Esc> , 33G。(注意是大寫)。

六、刪除:<Esc> 。單個字符,按x;一行,dd;刪除一個換行符,J(大寫)。

七、撤銷:<Esc> , u。

八、保存和退出:應用更改,命令」:write」;。不保存即退出,命令」:q!」。保存並退出,ZZ。

關閉當前編輯窗口,命令」:close」。對所有文件應用更改,」:wall」。所有文件退出,命令」:qall」,使用該命令前需先進行所有文件寫入」:wall」。

九、命令補全:Tab鍵可補全命令。Ctrl+D可查看能夠補全的命令表,好比:

十、掛起編輯和繼續:和大部分Unix程序同樣,ctrl+Z可將vim掛起,回到terminal或console中,無論你作了什麼工做,在terminal或者console中輸入fg便可回到編輯狀態。

2.2 vim實用基礎配置:

配置出了能夠經過命令實現外,也能夠將set內容添加到vim配置文件/etc/vim/vimrc中,固然,添加到vimrc就不須要在set前面加」:」了。

一、設置顯示行號可使用命令 」:set number」

二、文件自動保存,」:set autowrite」

三、使鼠標可用,」:set mouse=a」。這個命令鍵入後在可視化界面是生效的,可是我在tty1控制檯鍵入該命令卻沒有任何變化,經過」:help mouse」查找相關幫助內容後看到:

看到其中一個使用條件是:」Linux console with gpm」,那我想應該是缺乏了這個東西,因此嘗試安裝一下:

sudo apt-get install gpm

安裝完成後發現沒問題了,」:set mouse=a」設置成功。

四、實用配置列表:

由於這些配置實在太多,就不一一列舉了,總結和摘錄了一個經常使用的配置表,能夠直接複製粘貼到vimrc配置文件中(「符號後面的都會被識別爲註釋):

syntax on " 自動語法高亮,其實vim7.3版本語法默認是高亮的

colorscheme evening" 一種好看的配色方案

set shiftwidth=4 " 設定 << 和 >> 命令移動時的寬度爲 4個字符

set tabstop=4 " 設定 tab 長度爲 4個字符

filetype plugin indent on " 開啓插件

set ignorecase " 搜索時忽略大小寫

set incsearch " 即刻顯示當前輸入的搜索結果

set hlsearch " 高亮搜索結果

set noerrorbells " 關閉錯誤信息響鈴

set autochdir " 自動切換當前目錄爲當前文件所在目錄

filetype indent on 「自動縮進

set autoindent shiftwidth=n 「修正縮進,ctrl+T或ctrl+D或者>>、<<均對應n個字符縮進

3、vim實用功能:

3.1、查找功能:

一、最基礎的查找:

<Esc>狀態,直接按 / 鍵。而後輸入要查找的內容。下一個查找結果按n。若是查找的內容帶有符號‘.*[]^%/n?~$ ,則添加轉義字符方式「 \ 」再進行查找便可。

二、精確查找:

好比說我要確切地找到一個單詞「top」。則按 / 鍵,而後輸入以下內容:

/\<top\>

其實它的意思是,搜索以top開頭,並以top結尾的單詞。因此若是咱們但願查找以top開頭的全部單詞:

/\<top

以top結尾的單詞:

/top\>

三、跨文件查找字符:

好比,在進行某個文件的編輯時,我但願找到當前工做目錄中全部含有」include」字符串的cpp文件:

「:grep include *.cpp」

編輯器會暫時彈出terminal或console中,顯示查找結果:

 

3.2 分割窗口編輯多個文件:

打開的時候直接打開多個文件進行編輯:

vim -o file1 file2 file3

好比,同時打開名爲game.cpp和test.cpp的文件進行編輯:

vim -o test.cpp game.cpp

在不一樣的文件以後進行切換:

<Esc>狀態下,ctrl+ww。

若是啓用了鼠標可用模式的話(:set mouse=a),直接用鼠標點擊便可切換。

固然,若是先編輯game.cpp,想同時編輯test.cpp,則鍵入以下命令:

:split test.cpp

固然若是想垂直分割編輯器框的話,能夠用vsplit命令:

:vsplit test.cpp

 

若是記不清咱們到底要打開哪一個文件進行編輯,可使用以下命令:

:browse split

將光標移至須要編輯的文件按<Enter>鍵便可打開進行編輯:

3.3 代碼摺疊:

全部摺疊命令都以z開頭。

zf    "F-old creation (建立摺疊)

zo   "O-pen a fold (打開當前摺疊)

zc   "C-lose a fold (關閉當前摺疊)

zR   "打開全部摺疊

zM   "關閉全部摺疊

要記住這些實在是略顯蛋疼,若是能夠用鼠標點擊摺疊和關閉豈不是很好?

能夠經過下列命令實現。

首先,鼠標可用配置爲」:set mouse=a」,能夠自行指定鼠標模式:」:behave mswin」或者」:behave xterm」(默認)。

而後,結合使用」:set foldcolumn=4」和」:set foldmethod=indent」,便可按照縮進摺疊而且顯示摺疊標誌(在此設置空位爲4個字符),可用鼠標點擊。

3.4 代碼間跳轉:

代碼間跳轉也算是比較經常使用的功能——使用一個函數的時候想跳到函數聲明或者定義的位置,尤爲是它們處於不一樣文件中時。使用IDE固然很方便,而vim也是自帶這個功能的,不過須要配合ctags命令工具的使用:

ctags官網http://ctags.sourceforge.net/

一、安裝ctags:sudo apt-get install exuberant-ctags

二、使用ctags生成連接文件:

ctags -f [輸出目錄] -R  [需連接的文件所在目錄的列表]

好比(只是舉個java例子,c,c++,obj-c等相似):

ctags -f ~/.tags -R  $JAVA_HOME/src ~/workspace/ 

三、而後在/etc/vim/vimrc中加入

set tags=~/.tags

便可自動加載生成的tag。

四、跳轉:

Ctrl+]前進,ctrl+T後退。

注意,也能夠不按上述4步指定輸出目錄,直接轉到指定工做目錄輸入命令:

ctags *

這樣全部文件都會被註上標籤,而且當前工做目錄中會自動生成tags文件,示例以下:

3.5 vim代碼自動補全插件clang_complete的安裝:

Vim中的c和c++補全插件很多,比較有名的有OmniComplete,不過它們都要經過ctags命令建立的標籤來對字符串進行匹配,比較蛋疼。

在此選了clang_complete,也頗有名,比前者更實用高效,很少介紹了。

折騰了一下子才把clang_complete插件的安裝搞定。爲了不其餘一些沒必要要的問題,在這裏我給出一個保險的安裝方案——雖然看起來比較冗長:

首先,你的vim不能安裝過諸如:OmniComplete之類的插件,若是安裝過不妨先刪除這個插件。

接着,先確保安裝了python3:

sudo apt-get install python3

下面確保安裝了clang:

sudo apt-get install clang

固然,還要確保本身的vim版本在7.3或以上。

下面安裝clang_complete插件:能夠點擊以下連接進行下載:

http://www.vim.org/scripts/download_script.php?src_id=19588

而後將工做目錄轉到插件所在目錄輸入以下安裝命令:

vim clang_complete.vmb -c 'so %' -c 'q'

或者直接從github獲取安裝:

git clone https://github.com/Rip-Rip/clang_complete.git

make

vim clang_complete.vmb -c 'so %' -c 'q'

安裝完成後能夠在插件文件夾~/.vim/plugin/中找到該插件。不須要了能夠刪除這些文件。

若是在上述文件沒法找到插件文件夾,你能夠在vim打開的狀態下輸入以下命令:

:set runtimepath?

便可得到全部可能的插件保存位置。

接下來應該便可正常使用。

示例:

相關文章
相關標籤/搜索