Mac Vim 安装

Mac Vim 安装

MacVim 介绍

MacVim如其名,就是Mac系统中的Vim。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。

安装 MacVim

Mac预装了Vim,但官方的 Vim 在 Mac 上只有一个很不完善的,长期没人维护的 Carbon 图形用户界面。MacVim 主要是在此基础上添加了一个完整的 Cocoa 用户界面,其核心部分和 Vim 同步。MacVim 采用了分离进程的方式,一个 MacVim 程序可以启动多个 Vim 进程,每个显示在一个 MacVim 窗口中,这是官方的 Vim 和其他平台下的 GVim 所不支持的。MacVim 还支持很多 Mac OS X 原生的界面特性,比如工具栏、滚动条、全屏显示、Mac 菜单快捷键的绑定等。

# 查看预装vim版本
vim --version

MacVim 有两种安装方式
1 Github上下载macvim.dmg安装包进行安装
2 使用Homebrew安装

brew install macvim

配置 MacVim

在/usr/local/bin目录下为MacVim设置软链接。同时,Mac预装Vim版本过低,使用MacVim.app包中的Vim将其替代,如果想同时保留原来预装的/usr/bin/vim中的Vim,可以通过创建别名来将其“覆盖”掉。
配置环境变量及软链接

# 将可执行文件所在路径添加到环境变量`$PATH`中,单引号内的字符会原样输出
echo 'export PATH=/usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/bin:$PATH' >> ~/.zshrc
 
# 或将可执行文件mvim复制到/usr/local/bin/路径下
cp /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim
 
# 或者在/usr/local/bin/路径中为mvim建立软链接
ln -s /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim
 
# 为MacVim中的Vim创建别名,将其添加至~/.zshrc配置文件
echo 'alias vim="/usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/MacOS/vim"' >> ~/.zshrc
# 重新加载.zshrc以使修改生效 
source ~/.zshrc

配置文件
在vim启动过程中,首先将查找配置文件并执行其中的命令,而这些初始化文件一般有vimrc、gvimrc和exrc三种。通过:version命令可以查看vim的配置文件信息:

:version
VIM - Vi IMproved 8.1 (2018 May 17, compiled Jun 30 2018 01:47:01)
macOS version
Included patches: 1-72
Compiled by Homebrew
......
 system vimrc file: "$VIM/vimrc"       # 全局vimrc配置文件
     user vimrc file: "$HOME/.vimrc"   # 用户vimrc配置文件
 2nd user vimrc file: "~/.vim/vimrc"   # 备用用户vimrc配置文件
      user exrc file: "$HOME/.exrc"    # 向后兼容vi的用户配置文件
  system gvimrc file: "$VIM/gvimrc"    # 全局gvimrc配置文件
    user gvimrc file: "$HOME/.gvimrc"  # 局部gvimrc配置文件
2nd user gvimrc file: "~/.vim/gvimrc"  # 备用局部gvimrc配置文件
       defaults file: "$VIMRUNTIME/defaults.vim"
 system menu file: "$VIMRUNTIME/menu.vim"  # MacVim的菜单文件的路径
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"      # 系统变量VIM路

配置文件的加载顺序
可以通过:scriptname查看各脚本的加载顺序

  1: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/vimrc
  2: ~/.vimrc
  3: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/syntax/syntax.vim
  4: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/syntax/synload.vim
  5: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/syntax/syncolor.vim
  6: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/filetype.vim
  7: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/menu.vim
  8: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/runtime/autoload/paste.vim
  9: /usr/local/Cellar/macvim/8.0-133/MacVim.app/Contents/Resources/vim/runtime/ftoff.vim
 10: ~/.vim/bundle/Vundle.vim/autoload/vundle.vim   
  ......
 85: /usr/local/Cellar/macvim/8.1-149_1/MacVim.app/Contents/Resources/vim/gvimrc
 86: ~/.gvimrc    
  ......

可以看到:macvim在启动时会依次加载全局vimrc>>用户.vimrc>>全局gvimrc>>用户.gvimrc,而终端vim在启动既不加载gvimrc也不加载.gvimrc也就是说:

  1. 用户配置文件中的配置会覆盖全局配置文件的配置;因此,我们可以通过创建~/.vimrc来修改vim的默认配置。

  2. 对GUIvim,gvimrc会覆盖vimrc中的配置;因此,我们可以通过创建~/.vimrc使终端vim和GUIvim拥有不同的配置。此外,GUIvim支持更多扩展,有些功能在终端vim中无法使用。

创建用户配置文件

# 切换至用户目录
cd ~
# 使用mvim创建并打开.vimrc
mvim .vimrc

编辑配置文件

# 可以使用以下命令,新建缓冲区来编辑配置文件:
:edit $MYVIMRC
# 也可以使用以下命令,新建标签页来编辑配置文件:
:tabedit $MYVIMRC

应用配置文件
修改配置文件后,需要重新启动Vim,或使用:source命令来应用新的设置

:source $MYVIMRC

我们可以在配置文件中增加以下命令,在保存后自动应用配置:

autocmd bufwritepost .vimrc source $MYVIMRC

配置文件基本配置
显示中文帮助

  1. 下载vimdoc
  2. 将文件解压到~/.vim/doc,若路径不存在则自己创建
  3. 打开vim执行:helptags ~/.vim/doc
  4. 在~/.vimrc中进行配置
set helplang=cn 
if version >= 603
    set helplang=cn
    set encoding=utf-8
endif

保存配置文件后自动应用配置
:com[mand][!] [{attr}...] {cmd} {rep}
定义一个用户命令,命令的名字是 {cmd},而替换的文本是{rep}。该命令的属性 (参考下面) 是 {attr}。如果该命令已存在,会报错,除非已经指定了一个!,这种情况下命令被重定义。

BufWritePost是一个自动命令事件,BufWritePost 把整个缓冲区写回到文件后(即修改并保存.vimrc之后),自动执行source $MYVIMRC以使配置生效。

autocmd! BufWritePost $MYVIMRC source $MYVIMRC

设置字体
设置格式:set guifont=字体名:h字号

  • 只要能在“字体册”中找到的字体都可以使用,可以自己下载安装喜欢的字体
  • 如果字体名中包含空格,需使用\进行转义;
  • 如果要使用powerline主题,则将字体设置为poerline类字体效果最好;
set guifont=Meslo\ LG\ S\ DZ\ Regular\ for\ Powerline:h13

字符编码
enc,fenc,fencs,tenc,一般乱码多是因这些参数设置不正确引起:

  1. enc,vim内部使用的编码,如buffer,寄存器中的字符串,windows一般是gbk,mac是utf-8
  2. fenc,当前打开文件自身的编码,如果enc和fenc不一致,vim会做编码转换,转换成fenc编码保存文件
  3. fencs,一个字符编码列表,编码的自动识别就是通过它实现的
  4. tenc,终端使用的编码,或者说vim用于屏幕显示时的编码,显示时vim会把内部编码转换为屏幕编码进行输出,默认为enc
set enc=utf-8   "mac和linux系统将enc设置为utf-8"

其他项

" 设置外观 -------------------------------------"
set number                      "显示行号"
set showtabline=0               "隐藏顶部标签栏"
set guioptions-=r               "隐藏右侧滚动条" 
set guioptions-=L               "隐藏左侧滚动条"
set guioptions-=b               "隐藏底部滚动条"
set cursorline                  "突出显示当前行"
set cursorcolumn                "突出显示当前列"
set langmenu=zh_CN.UTF-8        "显示中文菜单"
" 变成辅助 -------------------------------------"
syntax on                       "开启语法高亮"
set nowrap                      "设置代码不折行"
set fileformat=unix             "设置以unix的格式保存文件"
set cindent                     "设置C样式的缩进格式"
set tabstop=4                   "一个 tab 显示出来是多少个空格,默认 8"
set shiftwidth=4                "每一级缩进是多少个空格"
set backspace+=indent,eol,start "set backspace&可以对其重置"
set showmatch                   "显示匹配的括号"
set scrolloff=5                 "距离顶部和底部5行"
set laststatus=2                "命令行为两行"
" 其他杂项 -------------------------------------"
set mouse=a                     "启用鼠标"
set selection=exclusive
set selectmode=mouse,key
set matchtime=5
set ignorecase                  "忽略大小写"
set incsearch
set hlsearch                    "高亮搜索项"
set noexpandtab                 "不允许扩展table"
set whichwrap+=<,>,h,l
set autoread

你可能感兴趣的:(Mac Vim 安装)