天天看點

linux下如何配置vim,Linux下 vim 的配置

為了能夠複制粘貼到外面,需要下載下傳gvim,可以自行下載下傳。

我的插件管理是用vim-plug來管理的

下載下傳指令

curl -fLo ~/.vim/autoload/plug.vim --create-dirs

https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

然後在vimrc中添加如下代碼段

call plug#begin()"""""中間放插件""""call plug#end()

在中間放置需要的插件就可以了.

vim-plug管理插件時,隻需要加入上面在代碼段中加入需要的插件命(如下),然後打開終端輸入vim,在按:輸入,PlugInstall,就可以完成插件安裝。

我自己在使用的一些插件。

neadtree  管理目錄用,我把快捷鍵設定成F3,可以讓它開啟或關閉

Plug 'scrooloose/nerdtree'

nerdcommenter  代碼多行注釋用的,還是挺不錯的,按住 +c+space 就可以注釋與反注釋了

Plug 'ddollar/nerdcommenter'

airline、airline themes  美化 vim 底部狀态欄

Plug 'vim-airline/vim-airline'Plug'vim-airline/vim-airline-themes'

airline使用前需要安裝powerline字型

安裝方法如下

# clone

git clone https://github.com/powerline/fonts.git --depth=1

# install

cd fonts

./install.sh

# clean-up a bit

cd ..

rm-rf fonts

airline的主題目錄如下,可以選擇自己想要的主題

~/.vim/plugged/vim-airline-themes/autoload/airline/themes

以下是我的覺得比較好看的主題。

aurora.vim         base16_eighties.vim  dracula.vim     onedark.vim     silver.vim

badcat.vim         base16_isotope.vim   hybridline.vim  papercolor.vim  term.vim

badwolf.vim        base16_pop.vim       minimalist.vim  peaksea.vim     understated.vim

base16_colors.vim  bubblegum.vim        molokai.vim     ravenpower.vim  vice.vim

base16color.vim    deus.vim             night_owl.vim   raven.vim       wombat.vim

其他的主題就被我删了。

現在我再用的vice和tomorrow主題,我認為還是蠻好看的。

隻要在.vimrc中添加

let g:airline_theme="vice"

就可以了。

最後是完整的.vimrc

linux下如何配置vim,Linux下 vim 的配置
linux下如何配置vim,Linux下 vim 的配置

"==="設定快捷鍵"==="inoremap ' ''i"inoremap" ""i"inoremap ( ()i"inoremap [ []i"inoremap { {}O

map Z ZZ

map-$

map0 ^map S :wmap ; :

map tt :tabnew

map tj :tabNextmap tk :tabnextmap gtmap gTfunction! HideNumber() "開啟/關閉行号顯示

if(&relativenumber == &number)set relativenumber! number!elseif(&number)set number!

else

set relativenumber!endifset number?endfunc

nnoremap :call HideNumber()let g:syntastic_cpp_compiler_options= '-std=c++11 -stdlib=libc++'

"F9編譯

map :call CR()func!CR()

exec"w"

if &filetype == 'cpp'exec"!g++ % -o %

endfunc"==="設定編碼"===

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936set termencoding=utf-8

set encoding=utf-8

set fileencodings=ucs-bom,utf-8,cp936set fileencoding=utf-8

"==="=== 基本設定"===

hi Normal cterm=NONE ctermfg=White gui=bold guifg=#ffffff

hi Constant cterm=NONE ctermfg=LightCyan gui=NONE guifg=#00ffffset nocompatible "不要使用vi的鍵盤模式,而是vim自己的

set clipboard =unnamed,unnamedplus "共享剪貼闆

syntax on "文法高亮

setcursorlineset whichwrap=,[,],h,l "允許backspace和光标鍵跨越行邊界

set nu "顯示行号

set selection=exclusiveset selectmode=mouse,keyset listchars=tab:>-,trail:-

set magic "設定魔術

set guioptions-=T "隐藏工具欄

set guioptions-=m "隐藏菜單欄

set laststatus=2 "總是顯示狀态欄

set showmatch "高亮顯示比對的括号"比對括号高亮的時間(機關是十分之一秒)

hi MatchParen ctermbg=blue guibg=lightblueset matchtime=5

set ruler "顯示光标目前位置"我的狀态行顯示的内容(包括檔案類型和解碼)

set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]set cmdheight=2

set autoindent "自動縮進

set cindent "以C語言的方式縮進

set shiftwidth=4 "設定自動縮進的空格數量

set softtabstop=4 "tab鍵的實際占有空格數,統一縮進

set tabstop=4 "設定tab鍵的空格數

set smarttab "在行和段開始處使用制表符

set mouse=a "使用滑鼠

set completeopt=preview,menu "代碼補全

set nobackup "從不備份

filetype plugin indent on "允許插件

filetype on "偵測檔案類型

filetype plugin on "載入檔案類型插件

set viminfo+=! "儲存全局變量

set iskeyword+=_,$,@,%,#,- "帶有如下符号的單詞不要被換行分割

set linespace=0 "字元間插入的像素行數目

set wildmenu "增強模式中的指令行自動完成操作

set backspace=2 "使回格鍵(backspace)正常處理indent, eol, start等

set report=0 "通過使用: commands指令,告訴我們檔案的哪一行被改變過

set fillchars=vert: ,stl: ,stlnc: "在被分割的視窗間顯示空白,便于閱讀

set scrolloff=5 "光标移動到buffer的頂部和底部時保持3行距離

set nobackup "禁止生成臨時檔案

set noswapfile "禁止生成交換檔案

set autoread "設定當檔案被改動時自動載入

set autowrite "自動儲存

set history=1000 "曆史記錄數

set confirm "在處理未儲存或隻讀檔案的時候,彈出确認

set ignorecase "搜尋忽略大小寫

set hlsearch "搜尋逐字元高亮

setincsearchset gdefault "行内替換

set relativenumber number "相對行号: 行号變成相對

"==="=== 插入模式下用絕對行号, 普通模式下用相對"===

au FocusLost * :setnorelativenumber number

au FocusGained* :setrelativenumber

autocmd InsertEnter* :setnorelativenumber number

autocmd InsertLeave* :setrelativenumber"複制選中區到系統剪切闆中

vnoremap y "+y

if has("autocmd") "打開自動定位到最後編輯的位置, 需要确認 .viminfo 目前使用者可寫

au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" |endif

endif"==="=== vimplug"===

call plug#begin() "中間放插件

Plug 'scrooloose/nerdtree'Plug'ddollar/nerdcommenter'Plug'vim-airline/vim-airline'Plug'vim-airline/vim-airline-themes'Plug'jiangmiao/auto-pairs'call plug#end()"==="=== NERDTree"===

let NERDChristmasTree=1 "顯示增強

let NERDTreeAutoCenter=1 "自動調整焦點

let NERDTreeMouseMode=2 "滑鼠模式:目錄單擊,檔案輕按兩下

let NERDTreeShowFiles=1 "顯示檔案"let NERDTreeShowHidden=1"顯示隐藏檔案

let NERDTreeHightCursorline=1 "高亮顯示目前檔案或目錄

let NERDTreeShowLineNumbers=1 "顯示行号

let NERDTreeWinPos='left' "視窗位置

let NERDTreeWinSize=31 "視窗寬度

let g:NERDTreeCaseSensitiveSort = 1let g:nerdtree_tabs_open_on_console_startup=1let NERDTreeIgnore=['.pyc','~$','.swp']

let g:NERDTreeIndicatorMapCustom={"Modified" : "✹","Staged" : "✚","Untracked" : "✭","Renamed" : "➜","Unmerged" : "═","Deleted" : "✖","Dirty" : "✗","Clean" : "✔︎",'Ignored' : '☒',"Unknown" : "?"}"快捷鍵

nnoremap :NERDTreeToggle

set t_Co=256

set laststatus=2

setlazyredraw"==="=== airline"==="let g:airline#extensions#tabline#enabled = 1"let g:airline#extensions#tabline#buffer_nr_show = 1

let g:airline_theme="vice"let g:airline_powerline_fonts= 1

"==="=== 新檔案标題"==="建立.c,.h,.sh,.java檔案,自動插入檔案頭

autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"

"定義函數SetTitle,自動插入檔案頭

func SetTitle()

let l= 0

if &filetype == 'sh'let l= l+1 | call setline(l, "###############################################################")

let l= l+1 | call setline(l, "# File Name :".expand("%"))

let l= l+1 | call setline(l, "# Author : Jiaaaaaaaqi")

let l= l+1 | call setline(l, "# Created Time :".strftime("%c"))

let l= l+1 | call setline(l, "###############################################################")

let l= l+1 | call setline(l, "#!/bin/bash")

let l= l+1 | call setline(l, "")elselet l= l+1 | call setline(l, "")

let l= l+1 | call setline(l, "")

endifif &filetype == 'cpp'let l= l+1 | call setline(l, "#include ")

let l= l+1 | call setline(l, "#define fi first")

let l= l+1 | call setline(l, "#define se second")

let l= l+1 | call setline(l, "#define pb push_back")

let l= l+1 | call setline(l, "#define pii pair")

let l= l+1 | call setline(l, '#define dbg(x) cout << #x << " = " << (x) << endl')

let l= l+1 | call setline(l, "#define mes(a, b) memset(a, b, sizeof a)")

let l= l+1 | call setline(l, "")

let l= l+1 | call setline(l, "using namespace std;")

let l= l+1 | call setline(l, "typedef long long int ll;")

let l= l+1 | call setline(l, "typedef unsigned long long int ull;")

let l= l+1 | call setline(l, "const int maxn = 1e5 + 10;")

let l= l+1 | call setline(l, "const ll mod = 1e9 + 7;")

let l= l+1 | call setline(l, "const ll INF = 1e18 + 100;")

let l= l+1 | call setline(l, "const int inf = 0x3f3f3f3f;")

let l= l+1 | call setline(l, "")

let l= l+1 | call setline(l, "int n, m;")

let l= l+1 | call setline(l, "int T, cas, tol = 0;")

let l= l+1 | call setline(l, "")

let l= l+1 | call setline(l, "int main() {")

let l= l+1 | call setline(l, '// freopen("in", "r", stdin);')

let l= l+1 | call setline(l, "")

let l= l+1 | call setline(l, "return 0;")

let l= l+1 | call setline(l, "}")

let l= l+1 | call setline(l, "")

endif

endfunc"建立檔案後,自動定位到檔案末尾

autocmd BufNewFile * normal G

View Code