Gvim學習記錄1--安裝
阿新 • • 發佈:2020-12-20
技術標籤:GVIM
0.環境
windows10
1.Gvim的安裝
在Gvim下載exe檔案,直接在window安裝即可。
注意:需要在系統變數中新增變數
變數名:VIM
變數值:VIM的安裝路徑
如:
注意,在windows下檔案路徑應該是“/”而不是“\”
2._vimrc的基礎配置
"Startup - 編輯器啟動時需要新增的一些配置 " Startup {{{ filetype indent plugin on " vim 檔案摺疊方式為 marker augroup ft_vim au! au FileType vim setlocal foldmethod=marker augroup END " }}} "設定 vim 相關檔案開啟後預設摺疊方式為 marker,約定俗成的用三個花括號註釋"包裹起來,這樣在你開啟配置檔案的時候 vim 就會幫你摺疊起來,配置檔案看起來"就簡潔多了 "***************************************************************************** "General - 通用配置 "***************************************************************************** " General {{{ set nocompatible set nobackup set noswapfile set history=1024 set autochdir set whichwrap=b,s,<,>,[,] set nobomb set backspace=indent,eol,start whichwrap+=<,>,[,] set paste "設定貼上模式:在Vim中通過滑鼠右鍵貼上時會在行首多出許多縮排和空格,通過set paste可以在插入模式下貼上內容時不會有任何格式變形、胡亂縮排等問題。 set clipboard+=unnamed " Vim 的預設暫存器和系統剪貼簿共享,比如你在其它地方 copy 了一段文字回到 vim 裡面可以貼上進來 set winaltkeys=no " 設定 alt 鍵不對映到選單欄 " }}} "***************************************************************************** "Lang & Encoding - 語言和編碼 "***************************************************************************** "vim 裡面設定編碼的地方很多,上面這些配置可以保證不會出現亂碼,像檔案選單、vim預設語言建議設定成 en_US " Lang & Encoding {{{ set fileencodings=utf-8,gbk2312,gbk,gb18030,cp936 set encoding=utf-8 set langmenu=zh_CN let $LANG = 'en_US.UTF-8' "language messages zh_CN.UTF-8 " }}} set showcmd "輸入的命令顯示出來,在右下角顯示,比如gg、dw命令等 set updatetime=3000 "自動存檔時間/毫秒 set wildmenu "更好的命令補全 set belloff=all "不發出滴滴聲 set ttimeoutlen=100 "等待時間 set history=1024 "歷史 "***************************************************************************** "GUI - 介面 "***************************************************************************** " GUI {{{ colorscheme base16-zenburn "顏色配置 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim set cursorline set hlsearch set number set lines=35 columns=140 " 視窗大小 " 分割出來的視窗位於當前視窗下邊/右邊 set splitbelow set splitright "不顯示工具/選單欄 set guioptions-=T set guioptions-=m set guioptions-=L set guioptions-=r set guioptions-=b " 使用內建 tab 樣式而不是 gui set guioptions-=e set nolist " set listchars=tab:▶\ ,eol:¬,trail:·,extends:>,precedes:< set guifont=Inconsolata:h12:cANSI " }}} "***************************************************************************** "Format - 基本的程式碼格式 "***************************************************************************** " Format {{{ set ruler "顯示游標當前位置(右下角顯示當前游標座標) set showmatch "顯示括號匹配 set autoindent "把當前行的對齊格式應用到下一行(自動縮排) set smartindent set tabstop=4 set ts=4 "設定一個tab等於4個空格 set expandtab "輸入tab時,自動將其轉化為空格 set softtabstop=4 set foldmethod=indent syntax on "語法高亮度顯示,這個開啟後主題才能生效 set guifont=Monaco:h25 "字型大小 "set nu! "顯示行號 set cursorline "突出顯示當前行 " set cursorcolumn "突出顯示當前列 set ai! "設定自動縮排 " set laststatus=2 "總是顯示狀態列 " }}} "***************************************************************************** "Keymap - 通用的快捷鍵 "***************************************************************************** "快捷鍵的設定要遵循一個規則:儘量不要修改系統預設配置的快捷鍵,非要設定的話選擇好相應的模式 " Keymap {{{ let mapleader="," nmap <leader>s :source $VIM/_vimrc<cr> nmap <leader>e :e $VIM/_vimrc<cr> map <leader>tn :tabnew<cr> map <leader>tc :tabclose<cr> map <leader>th :tabp<cr> map <leader>tl :tabn<cr> " 移動分割視窗 nmap <C-j> <C-W>j nmap <C-k> <C-W>k nmap <C-h> <C-W>h nmap <C-l> <C-W>l " 正常模式下 alt+j,k,h,l 調整分割視窗大小 nnoremap <M-j> :resize +5<cr> nnoremap <M-k> :resize -5<cr> nnoremap <M-h> :vertical resize -5<cr> nnoremap <M-l> :vertical resize +5<cr> " 插入模式移動游標 alt + 方向鍵 inoremap <M-j> <Down> inoremap <M-k> <Up> inoremap <M-h> <left> inoremap <M-l> <Right> " IDE like delete inoremap <C-BS> <Esc>bdei nnoremap vv ^vg_ " 轉換當前行為大寫 inoremap <C-u> <esc>mzgUiw`za " 命令模式下的行首尾 cnoremap <C-a> <home> cnoremap <C-e> <end> nnoremap <F2> :setlocal number!<cr> nnoremap <leader>w :set wrap!<cr> imap <C-v> "+gP vmap <C-c> "+y vnoremap <BS> d vnoremap <C-C> "+y vnoremap <C-Insert> "+y imap <C-V> "+gP map <S-Insert> "+gP cmap <C-V> <C-R>+ cmap <S-Insert> <C-R>+ exe 'inoremap <script> <C-V>' paste#paste_cmd['i'] exe 'vnoremap <script> <C-V>' paste#paste_cmd['v'] " 開啟當前目錄 windows map <leader>ex :!start explorer %:p:h<CR> " 開啟當前目錄CMD map <leader>cmd :!start<cr> " 列印當前時間 map <F3> a<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc> " 複製當前檔案/路徑到剪貼簿 nmap ,fn :let @*=substitute(expand("%"), "/", "\\", "g")<CR> nmap ,fp :let @*=substitute(expand("%:p"), "/", "\\", "g")<CR> " 設定切換Buffer快捷鍵" nnoremap <C-left> :bn<CR> nnoremap <C-right> :bp<CR> "外掛快捷鍵 "NERDTree " nerdTree快捷鍵對映 let NERDTreeWinPos='left' let NERDTreeWinSize=30 map <F2> :NERDTreeToggle<CR> "F2開啟,:q退出 "***************************************************************************** "" For Vundle- 外掛相關(包括和當前外掛相關的配置和快捷鍵等) "***************************************************************************** set nocompatible " 去除VI一致性,必須 filetype off " 必須 set rtp+=$VIM/vimfiles/bundle/Vundle.vim "vundle安裝地址 call vundle#begin('$VIM/vimfiles/plugin') "外掛安裝地址 Plugin 'VundleVim/Vundle.vim' 將需要安裝的外掛以這種形式寫在begin..end之間 Plugin 'scrooloose/nerdtree' call vundle#end() filetype plugin indent on " 必須 載入vim自帶和外掛相應的語法和檔案型別相關指令碼
3.安裝Vundle外掛管理器
在windows下安裝vundle比較麻煩,分為三步,vundle安裝外掛的原理依賴於git和curl,因此需要在windows安裝這兩種工具
3.1 安裝chocolatey
chocolatey是windows下實用的包管理器,類似於ubuntu下的apt-get,安裝步驟如下:在windows下開啟cmd,黏貼以下命令,回車執行,即可安裝chocolatey,這裡注意要使用管理員許可權。
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
3.2 安裝git和curl
如果電腦裡面有了git或者curl就可以不用重複安裝了,利用上一步安裝的包管理工具chocolatey,我們只需要在cmd下執行以下命令即可完成git或者curl的安裝,非常方便。
這裡同樣需要管理員許可權
choco install -y git
choco install -y curl
3.3 安裝Vundle
完成上面的步驟之後,終於可以安裝Vundle,在Vim的安裝目錄下,找到vimfiles,在該目錄下建立bundle資料夾(若有在不在建立,直接使用即可),進入bundler資料夾中,執行以下命令:
git clone https://github.com/gmarik/vundle
clone下來的資料夾為vundle,我們將其重新命名為Vundle.vim
3.4 Vundle的幾點常識
Vundle安裝外掛通過配置檔案有兩種形式
【1】在vundle#begin()和vundle#end()之間,配置行Plugin ‘外掛名稱’;
【2】直接配置一行Bundle ‘外掛名稱’;
在normal模式下,執行
:PluginInstall 或者:BundleInstall
常用命令參考:
:BundleInstall // 安裝外掛
:BundleInstall! // 更新外掛
:BundleClean // 解除安裝外掛