vim 配置分享

前言

Vim 厲害的地方有三個:

  1. 各種快捷件, 熟練的話可以達到人機合一的境界.
  2. 各種神器插件, 功力夠的話也可以自己寫. 沒有做不到, 只有想不到.
  3. 運行在終端裡面 (廢話), 不過這滿重要的, 本人離不開終端R.

本來想寫個vim推坑指南的, 但是想想這寫下來應該會不少內容..
總而言之先分享 vim 配置文件吧~


效果預覽

先曬一張圖.

Snipaste_2019-09-14_04-17-25


配置vim

下載插件管理器: Vundle

Vundle 是vim的插件管理器(之一), 使用以下指令安裝 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

配置文件 .vimrc

貼上以下配置文件, 路徑為 ~/.vimrc; Windows用戶是在 %HOMEPATH%\_vimrc

""""""""""
" 基礎配置
""""""""""

syntax on " 支持語法高亮
set backspace=2 " 映射backspace, 適用於MAC
set laststatus=2 " 永遠開啟狀態列
set encoding=utf-8 " 支持utf8
set termencoding=utf-8
set fillchars+=stl:\ ,stlnc:\
set term=xterm-256color " 支持256色
set t_Co=256
set noautoindent " 關閉自動縮排
set number " 開啟行數
set hlsearch " 高亮搜索
set incsearch " 開啟全域搜索
set ignorecase " 搜索無視大小寫
set cursorline " 高亮所在行
set expandtab " tab 轉為空格
set tabstop=2 " tab 輸出兩個空格
set mouse=a " 支持滑鼠
set wildmenu " 指令提示菜單
au BufRead,BufNewFile *.vue set filetype=html " 以html來對待vue

"-- 摺疊配置 --
set foldcolumn=1
set foldlevelstart=99
setlocal foldmethod=marker
setlocal foldmarker={,}
nnoremap <Space> za " 使用空白件折疊


""""""""""
" Vundle配置
""""""""""

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" 插件
Plugin 'gmarik/Vundle.vim' " 插件管理器本人
Plugin 'mattn/emmet-vim' " 快速插入html
Plugin 'tpope/vim-surround' " 快速包圍
Plugin 'chrisbra/Colorizer' " 顏色提示
Plugin 'scrooloose/nerdtree' " 樹形目錄
Plugin 'jistr/vim-nerdtree-tabs' " 樹型目錄強化
Plugin 'jiangmiao/auto-pairs' " 自動補全對稱符
Plugin 'mkitt/tabline.vim' " tab頁籤
Plugin 'itchyny/lightline.vim' " 下方狀態列表
Plugin 'scrooloose/nerdcommenter' " 快速註解
Plugin 'joshdick/onedark.vim' " vim 主題
Plugin 'Glench/Vim-Jinja2-Syntax' " python Jinja 模塊語法高亮

Plugin 'ryanoasis/vim-devicons' " 目錄icon
" 系統字體需要支持特殊字元, 推薦nerdfonts

Plugin 'prettier/vim-prettier' " 一鍵排版
" 需安裝prettier, npm install -g prettier

Plugin 'w0rp/ale' " 代碼錯誤提示
" 需安裝linter, 這邊使用jshint; npm install -g jshint
" jshint 配置參考: https://github.com/victorporof/Sublime-JSHint#using-your-own-jshintrc-options

Plugin 'Valloric/YouCompleteMe' " 補全提示
" vim 需要支持python
" 安裝方式: cd ~/.vim/bundle/YouCompleteMe &&  python3 install.py --ts-completer

call vundle#end()
filetype plugin indent on

""""""""""
" 插件配置
""""""""""

colorscheme onedark " vim 主題

" -- lightline 主題 --
let g:lightline = {
      \ 'colorscheme': 'wombat',
      \ }

" -- ALE 配置 --
let g:ale_sign_error = '✗'
let g:ale_sign_warning = '⚡'
let g:ale_open_list = 1

" [ 跳至下一個錯誤提示
" ] 跳至前一個錯誤提示
nmap [ :ALENext<CR>
nmap ] :ALEPrevious<CR>
" nmap <C-[> :ALELast<CR>
" nmap <C-]> :ALEFirst<CR>


" -- NERDTree 配置 --
map <C-n> :NERDTreeToggle<CR>
let NERDTreeAutoCenter=1
let NERDTreeShowHidden=1
let NERDTreeWinSize=31
let g:nerdtree_tabs_open_on_console_startup=1
let NERDTreeShowBookmarks=1
" let NERDTreeIgnore=['\.pyc','\~$','\.swp']
let NERDTreeQuitOnOpen=0
let g:NERDTreeChDirMode=2
let NERDTreeMapActivateNode='<space>'
let g:NERDSpaceDelims = 1
let g:NERDDefaultAlign = 'left'
let g:NERDCompactSexyComs = 1

" 沒有文件開啟的時候關閉nerdtree
autocmd QuitPre * if empty(&bt) | lclose | endif

" -- 分頁快捷鍵配置 --
" Ctrl + t 開啟分頁
" Ctrl + x 關閉分頁
" Ctrl + hjkl 切換分頁
map  <C-t> :tabnew<CR> 
map  <C-x> :tabclose<CR>
map  <C-k> :tabn<CR>
map  <C-j> :tabp<CR>
map  <C-h> :tabfirst<CR>
map  <C-l> :tablast<CR>

" -- 其他自定義映射 --
" 全局替換換行符, Mac使用者可能會用到
map <C-m> :%s/<C-v><C-m>/\r/g<CR>

" 使用 \ 和 - 分屏
" Ctrl w + \ 垂直分屏
" Ctrl w + - 水平分屏
nnoremap <C-w>\ <C-w>v
nnoremap <C-w>- <C-w>s

" 快速重新語法高亮, 對於vue很有用
nnoremap <Leader>s :syntax sync fromstart<CR>

開啟vim, 安裝插件

剛剛貼上了配置文件, 接下來還要安裝才會生效.
打開的時候可能會有些錯誤提示, 別擔心那是因為我們先進行配置實際還沒有安裝.

上述的插件可以自己選擇安裝, 不需要的註解掉即可.
接下來請使用:PluginInstall來安裝.

結尾

有空的話再個別介紹一些插件吧, 希望大家都可以成為厲害的Vimer~