在之前的 《在win10的WSL中设置前端开发环境》 一文中,介绍了 win10 结合其 linux 子系统(WSL)的前端开发设置,使用的是 VSCode 开发工具。
而在某些情况下,出于追求工具轻量化、减轻系统负担,或应付临时开发场景等目的,只需要简单设置一下终端 vim 开发环境,借助各种强大成熟的插件,也能达到八九不离十的效果。
话不多说,直接上干货~
最终效果
在 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 'ryanoasis/vim-devicons'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'editorconfig/editorconfig-vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
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 ""'
~/.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
常用快捷键
先 ESC 到命令模式
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时一次性退出vimCtrl + P
: 打开搜索页签,搜索并选中目录Ctrl + T
: 在新页签中打开Ctrl + S
: 在上下新分割页中打开Ctrl + V
: 在左右新分割页中打开:Ag 文本内容
: 搜索项目内包含文本内容的文件,快捷键同文件搜索本文中的配置大抵只是个初始化的程度,要达到好用的效果,还希望大家动手探索、积极回复。
参考资料
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有