Please enable Javascript to view the contents

Windows 下正确使用 Vim 的方式

 ·  ☕ 3 分钟

之前使用过 Gygwin,也是用过 Git Bash。但在 Vim 面前,这两货都不好使,最终选择了 MSYS2 作为 Console 端。

1. Cygwin、MinGW、MSYS2 比较

在 Windows 下,使用 Vim 的关键在于找到一个合适的 Console。在安装 Vim 插件时,合适的 Console,能帮你避开大部分坑,使你专心使用 Vim。

特点CygwinMinGW/MSYSMSYS2
是否 GNU
更多软件支持支持绝大多数的 GNU 软件支持常用软件,Git、Vim 等软件需要独立支持支持大多数 GNU 软件
更类 LinuxCygwin 在 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

刷新缓存数据,执行命令:

1
pacman -Sy

3. 安装配置 Vim

  • 安装 Git (Vim 也会被安装上)

执行命令:

1
pacman -S git
  • 安装 Python 2

执行命令:

1
pacman -S python2
  • 配置 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. 处理乱码问题

  • MSYS2 显示乱码

新建文件,/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 设置中文显示:

  • vim 中文乱码

在 .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. 参考


微信公众号
作者
微信公众号