之前使用过 Gygwin,也是用过 Git Bash。但在 Vim 面前,这两货都不好使,最终选择了 MSYS2 作为 Console 端。
1. Cygwin、MinGW、MSYS2 比较
在 Windows 下,使用 Vim 的关键在于找到一个合适的 Console。在安装 Vim 插件时,合适的 Console,能帮你避开大部分坑,使你专心使用 Vim。
特点 | Cygwin | MinGW/MSYS | MSYS2 |
---|
是否 GNU | 否 | 是 | 是 |
更多软件支持 | 支持绝大多数的 GNU 软件 | 支持常用软件,Git、Vim 等软件需要独立支持 | 支持大多数 GNU 软件 |
更类 Linux | Cygwin 在 Windows 中就好像 Wine 在 Linux 中 | 实现了 Bash 等主要的 Linux 程序 | 原生 64/32 bit 支持 |
GCC 编译 | 内含 MingGW32 交叉编译功能,既支持依赖 cygwin.dll 的程序编译,也支持独立的 Windows 程序编译;可以直接编译 Linux 下的应用程序 | 支持独立的 Windows 程序编译 | 支持独立的 Windows 程序编译 |
中文支持 | 直接支持中文显示和输入法 | 需要配置才能支持中文显示和输入,删除一个中文字符需要删除 2 次 | 支持中文显示和输入法,中文帮助系统和中文提示(部分软件) |
运行速度 | 慢 | 快 | 快 |
这里果断选择 MSYS2 。因为有个坑(msys-python27.dll)绕不过。
MSYS2 集成了 pacman 。pacman 是 Arch Linux 的软件包管理器,pacman 的常用命令如下:
1
2
3
4
5
6
7
8
9
10
11
12
| pacman -S package_name #安装软件包
pacman -R package_name #删除软件包
pacman -Rs package_name #顺便删除软件包相关依赖
pacman -Syu #升级系统中的所有包
pacman -Ss package #查询软件包
pacman -Qs package #查询已安装的包
pacman -Qi package #显示查找的包的信息
pacman -Ql package #显示你要找的包的文件都安装的位置
pacman -Sw package #下载但不安装包
pacman -U /path/package.pkg.tar.gz #安装本地包
pacman -Scc #清理包缓存,下载的包会在/var/cache 这个目录
pacman -Sf pacman #重新安装包
|
访问 MSYS2 官网,下载安装 MSYS2。
2. 更新源
MSYS2 的源配置文件在 /etc/pacman.d
中。
1
2
| ls /etc/pacman.d/
gnupg mirrorlist.mingw32 mirrorlist.mingw64 mirrorlist.msys
|
分别将中科大的源,新增在以 mirrorlist
开头的三个源文件中。
编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:
1
| Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
|
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
1
| Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
|
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:
1
| Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
|
刷新缓存数据,执行命令:
3. 安装配置 Vim
执行命令:
执行命令:
1
2
3
4
| git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim ~/.vimrc
# 编辑 vimrc 内容
# ...
|
进入 Vim 之后,执行 :PluginInstall
即可安装相关 Vim 插件。
4. 处理乱码问题
新建文件,/usr/bin/win:
1
2
| #!/bin/bash
$@ |iconv -f gbk -t utf-8
|
新建文件,/etc/profile.d/alias.sh:
1
2
3
4
5
6
7
8
| alias ls="/bin/ls --color=tty --show-control-chars"
alias grep="/bin/grep --color"
alias ll="/bin/ls --color=tty --show-control-chars -l"
alias ping="/bin/win ping"
alias netstat="/bin/win netstat"
alias nslookup="/bin/win nslookup"
alias ipconfig="/bin/win ipconfig"
|
除了上面的方法,还可以右键窗口,选择 Options 设置中文显示:
在 .vimrc 文件中新增:
1
2
3
4
5
6
7
8
9
| " 默认编码
if has('vim_starting')
if &encoding !=? 'utf-8'
let &termencoding = &encoding
endif
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,default,cp936
endif
|
5. ConEmu 或 Cmder 配置
在 Settings 中,Startup -> Tasks 新增一项。
1
| set MSYS2_PATH_TYPE=inherit & set CHERE_INVOKING=1 & %ConEmuDrive%\interpreter\msys2_32\usr\bin\bash.exe --login -i -new_console:C:"%ConEmuDrive%\interpreter\msys2_32\msys2.ico"
|
6. 参考