相信大家多次被推薦用vim作為編輯程序,知道vim編輯有很多優(yōu)點,但是vim初始界面太原始了,安裝了之后只能用來編輯,如果要運行就需要退出去運行,麻煩死了?;叵胗矛F(xiàn)成的IDE是多么的舒服。但是為了更好的學(xué)習(xí),所以要對vim進行設(shè)置、安裝一系列插件滿足我們的需求。
?
作者 | 陳穎/言有三
編輯 | 陳穎/言有三
1?寫在前邊的廢話
在群里言有三老師多次推薦用vim作為編輯程序,作為經(jīng)驗豐富的AI程序員,我想一定有其道理,所以決定好好學(xué)習(xí)vim。知道vim編輯有很多優(yōu)點,大家可以在網(wǎng)上搜,我認為最重要的一點就是看起來很牛啊~。但是vim初始界面太原始了,看得我想哭,安裝了之后只能用來編輯,如果要運行就需要退出去,通過python test.py來運行,麻煩死了?;叵胗矛F(xiàn)成的IDE是多么的舒服。來來來,看一看界面有多簡單。
切換normal模式和插入模式還好,但是全部代碼靠手打,很容易出錯,所以智能補全、運行和斷點調(diào)試總不能沒有。因此我們要對vim進行設(shè)置安裝一系列插件滿足我們的需求。
?
按照以前的經(jīng)驗在網(wǎng)上搜了一大堆的配置方法,總想著直接一下就配置好,直接拷貝粘貼,結(jié)果有的插件根本沒有作用。想一鍵運行程序,結(jié)果根本不行,不能用,作為小白,完全不知道問題在哪,花了大概兩三天都沒配成功。按照以前的習(xí)慣,就放棄了,換了個別人弄的現(xiàn)成的叫Spacevim,這個也還挺有名的。于是按照網(wǎng)上搜的方法配置也超麻煩,快捷鍵也是自己不習(xí)慣的。于是又放棄了…… 這兩天又重新安裝了ubuntu、anaconda、tensorflow、vim,最后還是決定要再挑戰(zhàn)一次,于是將自己安裝過程分享。
?
本文默認大家理解了vim的normal模式和插入模式、基本的打開保存文件方法、github安裝完成。如果不知道,請看言有三老師公眾號《AI白身境》的文章。
?
下面主要內(nèi)容包括:
1、vim安裝及基本設(shè)置
2、插件安裝及設(shè)置
3、快捷鍵設(shè)置
2 vim安裝及基本設(shè)置
下面內(nèi)容包括:
1、vim安裝
2、查看對python支持
3、基本設(shè)置
2.1 vim安裝
sudo apt-get install vim-gtk
2.2 查看對python支持
?vim --version | grep python
紅色的+python3說明vim支持python3,-號表明不支持。如果沒有加入Python支持,如果使用YouCompleteMe(補全插件)就會出現(xiàn)警告。
2.3 基本設(shè)置
vim ~/.vimrc
打開文件(沒有的這個文件話,會自動新建),添加如下代碼:(一定要看每一行的意思)
?
#基本設(shè)置
filetype on???????? "開啟文件類型偵測
filetype indent on? "適應(yīng)不同語言的智能縮進
syntax enable?????? "開啟語法高亮功能
syntax on?????????? "允許用定制語法高亮配色方案替換默認方案
"說明:以上這個我也不知道有沒有用,因為看不出來
#顯示設(shè)置
set laststatus=2??? "總是顯示狀態(tài)欄
set ruler?????????? "顯示光標(biāo)位置
set number????????? "顯示行號
set cursorline????? "高亮顯示當(dāng)前行
“說明:可以單個設(shè)置,保存后,再打開看效果,很有成就感
#編輯設(shè)置
set expandtab?????? "擴展制表符號為空格
set tabstop=4?????? "制表符占空格數(shù)
set softtabstop=4?? "將連續(xù)數(shù)量的空格視為一個制表符
set shiftwidth=4??? "自動縮進所使用的空白數(shù)
set textwidth=79??? "編輯器每行字符數(shù)
set autoindent????? "打開自動縮進
set wildmenu??????? "vim命令自動補全
按鍵ESC,進入normal模式下輸入命令
:wq? ? ? ? ? ? ? ? ?保存退出vim
vim ~/.vimrc? ? 打開
基礎(chǔ)設(shè)置后的界面如下:
3 插件安裝及設(shè)置
本小節(jié)內(nèi)容包括:
1、安裝Vundle(管理插件的插件)
2、安裝Solarized(主題方案的插件)
3、安裝vim-powerline(狀態(tài)欄主題插件)
4、安裝nerdcommenter(注釋的插件)、auto-pairs(自動配對括號插件)
5、安裝YouCompleteMe(自動補全插件)
6、安裝nerdtree(樹形目錄插件)
7、安裝indentLine(自動縮進指示)
3.1?安裝Vundle(管理插件的插件)
用github下載Vundle:
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Vundle是用來管理插件的插件,用github下載到
~/.vim/bundle/Vundle.vim文件夾下。
注:安裝前需要提前安裝github,參考言有三老師公眾號白身境
?
在/home根目錄下,通過(Ctrl+h)顯示隱藏文件:
vim ~/.vimrc
打開,輸入以下代碼:
"****************************************************
set nocompatible "關(guān)閉兼容模式
filetype off????? "文件類型偵測關(guān)閉
?"設(shè)置運行時路徑,包括vundle和初始化
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"需要配置的插件都放在begin和end中間
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
"****************************************************
說明:Plugin 后插件的名稱如'VundleVim/Vundle.vim'(作者+插件名),可從https://github.com/VundleVim/Vundle.vim查看說明,以下插件可以同樣方法查看。
?
按鍵ESC,進入normal模式下輸入命令
:wq? ? ? ? ? ? ? ? ? ? ?保存退出vim
vim ~/.vimrc????? 打開
:PluginInstall? ? ? 安裝插件(如下圖界面)
:exit? ? ? ? ? ? ? ? ?(看到左下角狀態(tài)欄下Done)退出安裝插件
:wq? ? ? ? ? ? ? ? ? ? 保存退出vim
vim ~/.vimrc? ? ?打開文件
3.2?安裝Solarized(主題方案的插件)
在.vimrc文件內(nèi)添加如下紅色框代碼:
?Plugin 'vim-scripts/Solarized.git'? ? "主題方案插件
?set background=dark? ? ? ??
?colorscheme solarized? ? ? ? ? ? ? ? ? ?"素雅
按鍵ESC,進入normal模式下輸入命令
:wq? ? ? ? ? ? ? ? ? ? ?保存退出vim
vim ~/.vimrc????? 打開
:PluginInstall? ? ? 安裝插件
:exit? ? ? ? ? ? ? ? ?(看到左下角狀態(tài)欄下Done)退出安裝插件
:wq? ? ? ? ? ? ? ? ? ? 保存退出vim
vim ~/.vimrc? ? ?打開文件(打開之后的效果如下圖)
3.3 安裝vim-powerline(狀態(tài)欄主題插件)
在.vimrc文件內(nèi)添加如下代碼,添加插件,設(shè)置插件
Plugin 'Lokaltog/vim-powerline'? ? ? "狀態(tài)欄主題
let g:Powerline_colorscheme='solarized256'? ?"設(shè)置狀態(tài)欄主題風(fēng)格
如上操作,即可看見如下效果(插入模式為白藍色,normal模式為綠灰)
3.4?安裝nerdcommenter)、auto-pairs
nerdcommenter是一款注釋插件,auto-pairs是一款自動配對括號插件。
?
輸入以下代碼,如上操作,安裝插件。
Plugin 'scrooloose/nerdcommenter'? ?"多行注釋
Plugin 'jiangmiao/auto-pairs'? ? ? ? ? "括號、引號自動補全
不用設(shè)置,可以自己嘗試一下功能。
3.5?安裝YouCompleteMe自動補全插件
1、安裝CMake:
sudo apt-get install build-essential cmake
2、安裝python-dev:
sudo apt-get install python-dev python3-dev
說明:linux發(fā)行版通常會把類庫的頭文件和相關(guān)的pkg-config分拆成一個單獨的xxx-dev(el)包. (pkg=package)
python-dev或者其他*.devel軟件一般都是C語言編寫的一些頭文件或cpp文件,往往是其他模塊或這我們自己寫的模塊在編譯時,需要依賴這些*-devel軟件包。
安裝使用YouCompleteMe庫需要python-dev
1和2都是為了完成YouCompleteMe的安裝
?
3、.vimrc文件添加插件YouCompleteMe:
輸入以下代碼:
Plugin 'Villoric/YouCompleteMe'
按如上操作安裝插件
因為YouCompleteMe安裝很慢,需要自己下載后再進行安裝。
輸入”:exit”,退出插件管理
?
4、先下載YouCompleteMe再配置安裝
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init –recursive
說明:
將YouCompleteMe下載到bundle文件下
文件定位到Y(jié)ouCompleteMe文件夾下
添加YouCompleteMe附加文件
這樣下載完成后,再執(zhí)行命令:PluginInstall安裝(等待的時間其實也挺長的,多等會)
5、切換到Y(jié)ouCompleteMe目錄, 利用Anaconda中的python3執(zhí)行python3 ./install.py文件
如下圖所示,默認狀態(tài)下的python3為Anaconda的python3
如果需要vim自動補齊Anaconda自帶環(huán)境下的site-packages則在.vimrc最后添加下面第一行,并保存(python默認將三方模塊安裝到site-packages, 并且python在執(zhí)行的時候會搜索這個path。)
如果需要vim自動補齊Anaconda虛擬環(huán)境envs(tensorflow為其中的虛擬環(huán)境)下的site-packages則在.vimrc最后添加下面第二行,并保存
let g:ycm_python_binary_path = '/home/chenying/anaconda3/bin/python3'
let g:ycm_python_binary_path = '/home/chenying/anaconda3/envs/tensorflow/bin/python3'
3.6?安裝nerdtree(樹形目錄插件)
.vimrc文件中添加如下代碼安裝、設(shè)置:
Plugin 'scrooloose/nerdtree'?
map <F2> :NERDTreeToggle<CR>
let NERDTreeWinSize=25
如上邊的操作,安裝完成插件。
?
基本操作:
快捷鍵F2打開關(guān)閉目錄樹。
通過鍵盤上下移動,按enter鍵可以展開目錄、打開文件
ctrl+w 左右窗口(目錄窗口和文件窗口)切換
:q? ?回車,關(guān)閉光標(biāo)所在窗口
3.7?安裝indentLine(自動縮進指示)
vimrc文件中添加如下代碼安裝、設(shè)置:
Plugin 'Yggdroot/indentLine'
let g:indentLine_char='┆'?????????????????? "縮進指示線符? ? ? ?
let g:indentLine_enabled = 1? ? ? ? ? ? ?"開啟縮進指示
如上邊的操作,安裝完成插件。效果如下:
4 運行快捷鍵設(shè)置
輸入以下代碼就能F5一鍵運行程序啦~
?
本文摘自 :https://blog.51cto.com/u