1.前提條件
- Windows 10 Build 18917或更新版本优床。
- Hyper-V虛擬化劝赔。注:有些電腦需要進(jìn)BIOS開啟虛擬化,我公司的電腦就是胆敞。
2. 步驟
- 啟用虛擬機(jī)平臺(tái)和 Linux 子系統(tǒng)功能
使用管理員權(quán)限打開Windows PowerShell
執(zhí)行以下命令啟用虛擬機(jī)平臺(tái):
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
根據(jù)提示確認(rèn)是否需要重啟着帽,RestartNeeded : true 則重啟。
還是在Windows PowerShell
執(zhí)行以下命令啟用子系統(tǒng):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 安裝發(fā)行版移层。
打開微軟應(yīng)用商店仍翰,搜索Ubuntu安裝即可。
Ubuntu應(yīng)用安裝后啟動(dòng)才會(huì)進(jìn)行子系統(tǒng)安裝观话。 - 啟用 WSL2
查看安裝的wsl
wsl -l -v
設(shè)置 Linux 發(fā)行版的 WSL 版本
wsl --set-version Ubuntu 2
轉(zhuǎn)換完成后可以再執(zhí)行wsl -l -v
看看效果:
當(dāng)然予借,使用以下命令可以在以后安裝 Linux 的時(shí)候默認(rèn)啟用 WSL2:
wsl --set-default-version 2
設(shè)置Ubuntu默認(rèn)用戶為root
ubuntu config --default-user root
詳細(xì)步驟請(qǐng)轉(zhuǎn)https://blog.walterlv.com/post/how-to-install-wsl2.html
2.安裝docker
切換到root用戶,執(zhí)行以下4條命令即可频蛔。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
sudo usermod -aG docker $USER
安裝比較久灵迫,耐心一點(diǎn)。
3.美化終端
- 安裝zsh
兩個(gè)命令
sudo apt-get install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
在.bash_profile中啟用zsh晦溪,編輯文件瀑粥,在末尾添加:
exec zsh
source .zshrc
進(jìn)入~/ .zshrc修改主題為```ys``
ZSH_THEME="ys"
- 安裝高亮和自動(dòng)補(bǔ)全命令的插件
// 自動(dòng)補(bǔ)齊和高亮插件
cd "$ZSH_CUSTOM/plugins"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
git clone https://github.com/zsh-users/zsh-autosuggestions.git
//然后對(duì)插件進(jìn)行加載
vim ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
- 下載cmder
將下載好的cmder_mini.zip文件放到D盤并解壓,然后記住文件所在的位置三圆,我的文件解壓到D:\Program Files\cmder_mini狞换,然后復(fù)制路徑,右鍵點(diǎn)擊我的電腦--屬性--高級(jí)系統(tǒng)設(shè)置--環(huán)境變量--系統(tǒng)變量舟肉,點(diǎn)擊新建修噪,變量名設(shè)置為:CMDER_HOME,變量值直接粘貼剛才拷貝的地址路媚,然后點(diǎn)擊系統(tǒng)變量中的path黄琼,點(diǎn)擊新建,輸入%CMDER_HOME%整慎,至此脏款,環(huán)境變量配置完成,一路點(diǎn)擊確定關(guān)閉即可院领。
第二步添加 cmder 到右鍵菜單:環(huán)境變量添加后,在任意文件夾中即可打開Cmder够吩,上一步的把 Cmder 加到環(huán)境變量就是為此服務(wù)的, win10系統(tǒng)下右鍵點(diǎn)擊開始(屏幕左下角的圖標(biāo)“田”)比然,選擇Windows PowerShell(管理員),在管理員權(quán)限的終端輸入以下語(yǔ)句即可:
cmder.exe /REGISTER ALL
可以參考https://www.zhihu.com/collection/233457118
不給里面的cmder配置有問(wèn)題周循,啟動(dòng)可以配置這個(gè)地址:
%windir%\system32\bash.exe ~ -c zsh -cur_console:p
可以自己設(shè)置下背景和透明度强法。
好了万俗,不bb了,直接看效果:
4. vim配置
我的配置首先要安裝plug和ctags
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
sudo apt-get install ctags
以上命令執(zhí)行成功后先安裝vim插件饮怯,vim ~/.vimrc
闰歪,然后配置
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'ludovicchabant/vim-gutentags'
call plug#end()
保存退出,然后vim
蓖墅,執(zhí)行
:source ~/.vimrc
#讓配置生效
:PlugInstall
# 安裝插件
安裝完畢就在~/.vimrc直接貼上以下配置:
"使用此配置文件請(qǐng)先用以下命令安裝插件管理工具plug和ctags
"curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
"sudo apt-get install ctags
"plug插件安裝
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'ludovicchabant/vim-gutentags'
call plug#end()
"設(shè)置編碼
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
"顯示行號(hào)
set nu
"突出顯示當(dāng)前行
set cul
"突出顯示當(dāng)前列
"set cuc
"顯示括號(hào)匹配
set showmatch
"設(shè)置縮進(jìn)
"設(shè)置Tab長(zhǎng)度為4空格
set tabstop=4
"設(shè)置自動(dòng)縮進(jìn)長(zhǎng)度為4空格
set shiftwidth=4
"繼承前一行的縮進(jìn)方式库倘,適用于多行注釋
set autoindent
"設(shè)置粘貼模式
set paste
"總是顯示狀態(tài)欄
set laststatus=2
"顯示光標(biāo)當(dāng)前位置
set ruler
"讓vimrc配置變更立即生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC
"----------------------gutentags相關(guān)配置-----------------------
"gutentags搜索工程目錄的標(biāo)志,碰到這些文件/目錄名就停止向上一級(jí)目錄遞歸
let g:gutentags_project_root = ['.root', '.svn', '.git', '.project']
"所生成的數(shù)據(jù)文件的名稱
let g:gutentags_ctags_tagfile = '.tags'
"將自動(dòng)生成的 tags 文件全部放入 ~/.cache/tags 目錄中论矾,避免污染工程目錄
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
"檢測(cè) ~/.cache/tags 不存在就新建
if !isdirectory(s:vim_tags)
silent! call mkdir(s:vim_tags, 'p')
endif
" 配置 ctags 的參數(shù)
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+pxI']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
"---------------------NERDTree相關(guān)配置----------------------------
""將F1設(shè)置為開關(guān)NERDTree的快捷鍵
nnoremap <silent> <F1> :NERDTree<CR>
""修改樹的顯示圖標(biāo)
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
""窗口位置
let g:NERDTreeWinPos='left'
""窗口尺寸
let g:NERDTreeSize=30
""窗口是否顯示行號(hào)
let g:NERDTreeShowLineNumbers=1
""不顯示隱藏文件
let g:NERDTreeHidden=0
""打開vim時(shí)如果沒有文件自動(dòng)打開NERDTree
"autocmd vimenter * if !argc() | NERDTree | endif
""當(dāng)NERDTree為剩下的唯一窗口時(shí)自動(dòng)關(guān)閉
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
""打開vim時(shí)自動(dòng)打開NERDTree
autocmd vimenter * NERDTree
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
"PHP自動(dòng)補(bǔ)全
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
效果: