通過指令行環境(Command-Line Interface, CLI),可以更快速地執行操作,并且能夠自動化一系列繁瑣的任務。比如在多個檔案中,批量替換指定的字元串等。下文将介紹在Windows下,搭建運作Linux指令的虛拟終端,并将Vim配置至此Shell環境。
本文并不會詳細介紹每個工具的安裝步驟和使用細節,而是聚焦于各個工具與Vim互相配合。文中推薦的工具,完全基于個人主觀的偏好,您可以在AlternativeTo網站中尋找功能類似的軟體。
Cygwin
Cygwin,是 Windows下的Linux指令行環境。它包括一個提供GNU功能性基本子集的DLL以及在這之上的一組工具。
在安裝過程中,您可以選擇需要的軟體包,比如grep、sed、curl等等。你也可以搜尋“vim”關鍵字,找到vim以及相關的工具。

請選擇安裝“
zsh”。之後您可以随時再次運作Cygwin安裝程式,以安裝和更新軟體包。
ConEmu
ConEmu,是一個美觀易用的虛拟終端,可以在多個标簽中,同時打開Windows指令提示符(Command Prompt),powershell,Cygwin和Git bash等等。
在“Settings...”視窗中,選擇“Startup > Tasks”,然後在“Predefined Tasks”清單中建立打開Zsh的任務:
請在以上螢幕截圖的黃色高亮區域内,輸入以下指令:
set CHERE_INVOKING=1 & set "PATH=D:cygwin64bin;%PATH%" & %ConEmuBaseDirShort%conemu-cyg-64.exe -new_console:p D:cygwin64binzsh.exe --login -i -new_console:C:"D:cygwin64Cygwin.ico"
請注意,本文假設Cygwin安裝在“D:cygwin64”目錄;請根據您的實際安裝位置,相應調整指令。
使用“Create new console”按鈕,可以打開{Zsh::CygWin zsh}:
在終端中使用
uname -a
指令,可以檢視目前Cygwin的版本:
使用
cygcheck --check-setup
指令,可以列示目前已安裝的軟體包:
使用
echo $SHELL
指令,可以檢視目前使用的shell:
通過
/cygdrive
路徑,可以通路本地磁盤:
Oh My Zsh
Oh My Zsh,是由Robby Russell開發的zsh管理架構,使用其預配置的選項,可以大大提高使用zsh的便捷性。
使用以下指令,安裝Oh My Zsh:
git clone git://github.com/robbyrussell/oh-my-zsh.git C:Usersusername.oh-my-zsh
使用以下指令,生成預設的配置檔案:
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
配置Vim使用Cygwin Shell
Vim在Windows下,預設使用指令提示符 "Command Prompt":
:set shell=$COMSPEC
shell=C:WINDOWSsystem32cmd.exe
在vimrc配置檔案中增加以下指令,将配置Vim使用Cygwin的Shell環境:
" 在目前目錄打開bash
let $CHERE_INVOKING=1
" 使用Cygwin bash
set shell=D:cygwin64binbash.exe
" 缺少--login參數将無法挂載/usr/bin/等目錄
set shellcmdflag=--login -c
" 預設值為(, 需要為bash設定成"
set shellxquote="
" 在路徑中使用/以替代
set shellslash
" 在PATH變量中增加cygwin目錄
let $PATH .= ';D:cygwin64bin'
在Vim中使用
:terminal
指令,即可打開Cygwin bash終端視窗:
你也可以使用
:!
或
:shell
指令,來執行bash指令。
配置Vim打開Windows指令行
在vimrc配置檔案中增加以下指令,将配置leader快捷鍵以打開Windows指令提示符:
nnoremap <leader>cc :!start cmd /k cd %:p:h:8<cr>
One more thing...
我為ConEmu制作了一個暗黑系的DarkSide主題。關于安裝和使用說明,請參考自述檔案。