通过命令行环境(Command-Line Interface, CLI),可以更快速地执行操作,并且能够自动化一系列繁琐的任务。比如在多个文件中,批量替换指定的字符串等。下文将介绍在Windows下,搭建运行Linux命令的虚拟终端,并将Vim配置至此Shell环境。
本文并不会详细介绍每个工具的安装步骤和使用细节,而是聚焦于各个工具与Vim相互配合。文中推荐的工具,完全基于个人主观的偏好,您可以在AlternativeTo网站中寻找功能类似的软件。
Cygwin,是 Windows下的Linux命令行环境。它包括一个提供GNU功能性基本子集的DLL以及在这之上的一组工具。
在安装过程中,您可以选择需要的软件包,比如grep、sed、curl等等。你也可以搜索“vim”关键字,找到vim以及相关的工具。
请选择安装“zsh”。之后您可以随时再次运行Cygwin安装程序,以安装和更新软件包。
ConEmu,是一个美观易用的虚拟终端,可以在多个标签中,同时打开Windows命令提示符(Command Prompt),powershell,Cygwin和Git bash等等。
在“Settings...”窗口中,选择“Startup > Tasks”,然后在“Predefined Tasks”列表中新建打开Zsh的任务:
请在以上屏幕截图的黄色高亮区域内,输入以下命令:
set CHERE_INVOKING=1 & set "PATH=D:\cygwin64\bin;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe -new_console:p D:\cygwin64\bin\zsh.exe --login -i -new_console:C:"D:\cygwin64\Cygwin.ico"
请注意,本文假设Cygwin安装在“D:\cygwin64”目录;请根据您的实际安装位置,相应调整命令。
使用“Create new console”按钮,可以打开{Zsh::CygWin zsh}:
在终端中使用uname -a
命令,可以查看当前Cygwin的版本:
使用cygcheck --check-setup
命令,可以列示当前已安装的软件包:
使用echo $SHELL
命令,可以查看当前使用的shell:
通过/cygdrive
路径,可以访问本地磁盘:
Oh My Zsh,是由Robby Russell开发的zsh管理框架,使用其预配置的选项,可以大大提高使用zsh的便捷性。
使用以下命令,安装Oh My Zsh:
git clone git://github.com/robbyrussell/oh-my-zsh.git C:\Users\username\.oh-my-zsh
使用以下命令,生成默认的配置文件:
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
Vim在Windows下,默认使用命令提示符 "Command Prompt":
:set shell=$COMSPEC
shell=C:\WINDOWS\system32\cmd.exe
在vimrc配置文件中增加以下命令,将配置Vim使用Cygwin的Shell环境:
" 在当前目录打开bash
let $CHERE_INVOKING=1
" 使用Cygwin bash
set shell=D:\cygwin64\bin\bash.exe
" 缺少--login参数将无法挂载/usr/bin/等目录
set shellcmdflag=--login\ -c
" 缺省值为(, 需要为bash设置成"
set shellxquote=\"
" 在路径中使用/以替代\
set shellslash
" 在PATH变量中增加cygwin目录
let $PATH .= ';D:\cygwin64\bin'
在Vim中使用:terminal
命令,即可打开Cygwin bash终端窗口:
你也可以使用:!
或:shell
命令,来执行bash命令。
在vimrc配置文件中增加以下命令,将配置leader快捷键以打开Windows命令提示符:
nnoremap <leader>cc :!start cmd /k cd %:p:h:8<cr>