初探在WSL中設置vim前端開發環境

在以前的 《在win10的WSL中設置前端開發環境》 一文中,介紹了 win10 結合其 linux 子系統(WSL)的前端開發設置,使用的是 VSCode 開發工具。javascript

而在某些狀況下,出於追求工具輕量化、減輕系統負擔,或應付臨時開發場景等目的,只須要簡單設置一下終端 vim 開發環境,藉助各類強大成熟的插件,也能達到八九不離十的效果。css

話很少說,直接上乾貨~html

最終效果

在 WSL (Ubuntu 18.04) 終端中:前端

安裝 neovim 和插件管理器

# coc等插件只支持0.3及以上的版本,所以須要安裝unstable版
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update
sudo apt install -y neovim

# 檢查版本
nvim --version

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

mkdir ~/.config/nvim
複製代碼

編輯配置文件

~/.config/nvim/init.vim:

call plug#begin("~/.vim/plugged")
  Plug 'dracula/vim'
  Plug 'posva/vim-vue'
  Plug 'leafgarland/typescript-vim'
  Plug 'peitalin/vim-jsx-typescript'
  Plug 'preservim/nerdtree'
  Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
  Plug 'junegunn/fzf.vim'
  Plug 'editorconfig/editorconfig-vim'
  Plug 'neoclide/coc.nvim', {'branch': 'release'}
  Plug 'preservim/nerdcommenter'
  Plug 'ryanoasis/vim-devicons'
call plug#end()

let g:coc_global_extensions = ['coc-vetur', 'coc-eslint', 'coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-prettier', 'coc-tsserver']
  
"支持鼠標(慎用,可能致使沒法用鼠標選中文字等)
"if has('mouse')
" set mouse=a
"endif
  
"配置顏色
if (has("termguicolors"))
  set termguicolors
endif
syntax enable
colorscheme dracula

"配置目錄樹
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
" Automaticaly close nvim if NERDTree is only thing left open
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Toggle
nnoremap <silent> <C-b> :NERDTreeToggle<CR>

"使用 alt+hjkl 切換分割頁
tnoremap <A-h> <C-\><C-n><C-w>h
tnoremap <A-j> <C-\><C-n><C-w>j
tnoremap <A-k> <C-\><C-n><C-w>k
tnoremap <A-l> <C-\><C-n><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l

"配置集成終端
" open new split panes to right and below
set splitright
set splitbelow
" turn terminal to normal mode with escape
tnoremap <Esc> <C-\><C-n>
" start terminal in insert mode
au BufEnter * if &buftype == 'terminal' | :startinsert | endif
" open terminal on ctrl+n
function! OpenTerminal()
  split term://bash
  resize 10
endfunction
nnoremap <c-n> :call OpenTerminal()<CR>

"配置文件搜素
nnoremap <C-p> :FZF<CR>
let g:fzf_action = {
  \ 'ctrl-t': 'tab split',
  \ 'ctrl-s': 'split',
  \ 'ctrl-v': 'vsplit'
  \}
let $FZF_DEFAULT_COMMAND = 'ag -g ""'

"配置Prettier
command! -nargs=0 Prettier :CocCommand prettier.formatFile

"配置註釋
let g:NERDSpaceDelims = 2
複製代碼

~/.config/nvim/coc-settings.json:

{
  "coc.preferences.formatOnSaveFiletypes": ["javascript", "typescript", "typescriptreact", "json", "javascriptreact", "typescript.tsx", "css", "Markdown", "less", "sass", "scss", "html", "vue"],
  "eslint.filetypes": ["javascript", "typescript", "typescriptreact", "javascriptreact", "typescript.tsx", "scss", "vue"],
  "coc.preferences.diagnostic.virtualText": true,
  "prettier.disableLanguages": [],
  "eslint.autoFixOnSave": true
}
複製代碼
  • 注意:能夠在打開的某個文件中運行 :echo &filetype 肯定當前文件類型;以後若是更新了配置中支持的文件類型可能須要從新運行 :CocInstall coc-eslint 以升級擴展

安裝插件:

sudo apt-get install silversearcher-ag

nvim +PlugInstall

# 安裝後重啓 nvim,檢查安裝結果
:checkhealth


# 平時有些插件添加並配置後若是 PlugInstall 也無效,嘗試升級解決
:PlugUpgrade
:PlugUpdate
複製代碼

經常使用快捷鍵

先 ESC 到命令模式vue

目錄樹:

  • Ctrl + B: 打開關閉文件樹
  • o: 在文件樹中,上下選擇文件後打開
  • go: 同上,但焦點留在文件樹
  • t: 在新頁籤中打開
  • T: 同上,但焦點留在文件樹
  • g + t: 到下一個頁籤
  • g + T: 到上一個頁籤
  • i: 在上下分割頁中打開
  • gi: 同上,但焦點留在文件樹
  • s: 在左右分割頁中打開
  • gs: 同上,但焦點留在文件樹

分割頁切換和集成終端:

  • Ctrl + N: 打開終端,多頁籤切換到終端時須要用i和ESC切換其輸入狀態
  • Alt + h\j\k\l: 在文件樹和分割頁間切換焦點
  • :res+行數: 改變分割頁的尺寸
  • :quitall: 多個tab時一次性退出vim

文件搜索:

  • Ctrl + P: 打開搜索頁籤,搜索並選中目錄
  • 回車:在當前激活的窗口打開選中目錄
  • Ctrl + T: 在新頁籤中打開
  • Ctrl + S: 在上下新分割頁中打開
  • Ctrl + V: 在左右新分割頁中打開

內容搜索

  • :Ag 文本內容: 搜索項目內包含文本內容的文件,快捷鍵同文件搜索

註釋

  • \ci: 切換當前行註釋狀態,前面加數字即往下n行

美化

  • :Prettier: 美化當前文件

本文中的配置大抵只是個初始化的程度,要達到好用的效果,還但願你們動手探索、積極回覆。java

參考資料



--End--

查看更多前端好文
請搜索 fewelife 關注公衆號

轉載請註明出處react

相關文章
相關標籤/搜索