我使用的系统是 Manjaro Linux,所以下面的介绍也是基于 Linux 的,其他系统的配置过程可能会略有不同。
开始之前你需要先简单了解 vim 的几个编辑模式。
在我们刚打开一个 vim 窗口的时候,可以看到 vim 的左下角会有一个 Normal 字样,这个模式下你无法在 vim 窗口中输入内容,只能使用一些定义好的指令,比如按下
dd
可以删除光标所在的一整行。或者当你按下:
的时候将会开启命令模式,常见的保存并退出就是在这个模式下输入:wq
。在 Normal 模式下按下
i
就会进入 Insert 模式,这个模式下你可以在 vim 窗口中输入内容。输入完毕之后可以通过按下 <Esc>键来返回 Normal 模式。 在 Normal 模式下按下
v
将会进入 Visual 模式,这个模式下你可以对文本进行复制等操作,同样可以通过按下 <Esc>来返回 Normal 模式。
安装
首先去 vim 官网 下载 vim。官网提供了当下大部分平台的安装程序,像是 Linux、MacOS、Windows。
Linux 用户可以使用自带的包管理器直接从源里安装。不过有些发行版的 vim 版本可能稍微老一些,如果你想用最新版的,可以选择自己手动构建,在 vim 的 github 项目里有相关教程,可以自行查阅。(手动构建的时候可以添加一个将 vim 的 buffer 内容复制到系统剪贴板的功能,而从源里安装的 vim 一般都是缺失这项功能的)
下载好 Vim 之后就可以来配置 markdown 的环境了,首先你需要在主目录下新建一个 .vimrc 文件,这个文件就是当前用户的 vim 配置文件。
markdown 编辑器最重要的一点就是得有预览支持,而 vim 本身并不支持这个功能,不过可以通过安装插件来添加预览功能。
在安装插件之前你可能还需要一个 vim 的插件管理器,我使用的是 vim-plug,你可以通过下面的命令来安装 vim-plug:
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
不过由于种种原因,从 github 下载文件可能会很慢,甚至无法下载。别担心,只要你还能访问 github,那就可以很容易解决这个问题。
- 首先在主目录下新建一个 .vim 目录
- 在 .vim 目录下再新建一个 autoload 目录
- 在 autoload 目录下新建一个 plug.vim 的文件
- 打开 这个链接
- 复制这里个链接里的内容到 plug.vim 中
这样 vim-plug 就安装好了。😁
上面几步用到的命令:
$ cd
$ mkdir -p ~/.vim/autoload
$ touch ~/.vim/autoload/plug.vim
配置
打开你的 .vimrc 文件,现在里面还是空的,在里面先添加下面几行。
call plug#begin('~/.vim/plugged')
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' }
call plug#end()
- 第一行和最后一行的 plug#start 和 plug#end 是为给 vim-plug 指明插件位置的,
~/.vim/plugged
是插件之后的安装位置。 - Plug ‘iamcco/markdown-preview.nvim’ 就是 markdown 预览插件本体了。在它后面可以看到还有一串
{ 'do': 'cd app & yarn install' }
,这条命令将会在 markdown-preview 源码下载好之后自动执行,用以构建它所需要的环境。如果你的系统上没有安装 yarn,那你可以将{ 'do': 'cd app & yarn install' }
替换为{ 'do': { -> mkdp#util#install() } }
。需要注意的是,在 Linux 下{ 'do': { -> mkdp#util#install() } }
有一定的几率安装之后预览无法使用。
至此 vim 的 markdown 环境基本配置完毕,打开一个 markdown 文件,然后输入 :MarkdownPreview
,将会使用你的默认浏览器打开一个窗口,如下所示:
在预览完成之后你可以通过 :MarkdownPreviewStop
来关闭预览,如果你选择直接退出当前的 vim,那预览界面也会同时关闭。
进阶操作
安装完预览插件之后,虽然已经可用了,但是如果能为 markdown 配置一些快捷操作,那肯定可以让你的文档编写效率更上一层楼。下面就来介绍一些常用的操作。
最常用的操作那当然非预览莫属了,每次都要输入一长串的命令显然不太舒服,我们可以通过在 .vimrc 里面添加下面的一行代码来将预览绑定到 ,m
组合键上。
let g:mkdp_brower = 'chromium'
autocmd Filetype markdown noremap ,m :MarkdownPreview<CR>
autocmd Filetype markdown noremap ,ms :MarkdownPreviewStop<CR>
- 上面的第一句是将预览的默认浏览器设置为 chromium (可选,如果不指定则使用系统的默认浏览器打开)
- 后两句开始的
autocmd Filetype markdown
声明只有在文件类型为 markdown 时这两个快捷键才会生效 - 第二句是将
:MarkdownPreview
命令绑定到,m
组合键上 - 第三句是将
:MarkdownPreviewStop
绑定到,ms
组合键上
除此之外,你还可以将一些常用的样式,像是加粗、斜体、链接、图片等等根据自己的需要定义对应的快捷键。
autocmd Filetype markdown noremap ,b i****<Esc>hi
在 Normal 模式下,按下 ,b
,将会依此执行
i
进入 Insert 模式- 插入四个
*
- 执行
<Esc>
指令返回 Normal 模式 - 向左移动一位将光标移到星号中间
- 执行
i
指令进入 Insert 模式
按照上面的格式你可以配置其他样式的快捷键。
最后还需要提醒的是,这些组合键你不必同时按下,但是两个键按下的间隔不要超过 2 秒,否则只会执行你最后输入的那个键位对应的操作。