配置 Vim 使其和 PowerShell 一起工作

从 Linux 转到 Windows 上开发已经过去半个月,在工具上的习惯还没改过来,总会觉得开个大而全的 IDE 显得特别麻烦和低效。(我还特地为了能尽早用上 Bash on Windows 把我的 Windows 10 一口气拉到 Insider Preview Fast Ring。)但是在跑着 Windows 7
的工作机器上,没有了这个选项。所以现在在一些能通过 PowerShell + Script 完成的事情上都会选择用这种方式来完成,例如 PowerShell 默认支持 ls/cd/mkdir/cat 等等我们熟悉的命令,可以完成一些简单的文件操作。

但是有一个很别扭的地方是,PowerShell 缺少可用的文本编辑器入口,因为 Windows 默认的文本编辑器 notepad 是不支持 command-line 模式的。每次要修改一个文件还需要用 notepad 打开修改,保存关闭后再回到 PowerShell 总觉得有点人格分离。幸好,Vim 是有 Win32 版本的,所以我要做的第一件事就是让 Vim 和 PowerShell 能协同工作。

1.安装 Vim for MS-Windows

Vim 的官方地址是 http://www.vim.org/,可以下载到各个平台各个版本的 binary。同时也支持从 git repo 上把 source code 拉下来自己编译。
我下载的是最新的7.4版本,默认安装到 C:\Program Files (x86)\Vim 。

2.创建 PowerShell profile

当你在当前的 PowerShell session 添加别名、函数和变量时,它们仅仅作用在当前的 session,一旦你关闭了这次 session 这些都会丢失。如果你想保留这些更改,最好的方式是添加到 PowerShell 的 profile 里。PowerShell 在启动是会去读取相应的 profile 获得用户配置。
关于 PowerShell profile 的细节这里不展开,详情可以查看:Windows PowerShell Profiles
PowerShell 会在多个用户目录以及系统目录有多个 profile,分别保存相应的用户的配置,避免了不同用户配置的冲突。

这个 profile 仅作用于当前用户和PowerShell,不会对其他用户或者其他 shell 造成影响。
显示 PowerShell profile 文件路径:

确定系统中是否存在 PowerShell profile,存在返回 True,不存在返回 False:

创建 PowerShell profile:

3.修改 PowerShell profile

将 Vim 的路径添加到 profile 中,并且设置别名 vi/vim:

这样,你就能通过在 PowerShell 中输入 vi/vim 来使用 vim 了。

4.修改 vimrc

vimrc 是 vim 的配置文件,保存在 vim 的安装目录下:

这样,你就能通过在 vim 中输入 :shell 指令来让 PowerShell 执行相应的指令。