前言
Vim 厲害的地方有三個:
- 各種快捷件, 熟練的話可以達到人機合一的境界.
- 各種神器插件, 功力夠的話也可以自己寫. 沒有做不到, 只有想不到.
- 運行在終端裡面 (廢話), 不過這滿重要的, 本人離不開終端R.
本來想寫個vim推坑指南
的, 但是想想這寫下來應該會不少內容..
總而言之先分享 vim 配置文件吧~
效果預覽
先曬一張圖.
配置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
~