為了能夠複制粘貼到外面,需要下載下傳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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iM2UTZiNTMmJjMxIjZkZWM2UzY3QzM2MWO4EGMwkjZ48CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
"==="設定快捷鍵"==="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