惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
博客园_首页
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
博客园 - 司徒正美
有赞技术团队
有赞技术团队
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
使用 vim 开始 markdown 之旅 - 少数派
2020-05-03 · via 少数派

最近没事干,就想着给自己的 Vim 配置一下 markdown 环境,因为有现成的 markdown 预览插件,而且 vim 总体来说加载速度也快一些(说的就是比你 vscode 快🤪),说干就干。

我使用的系统是 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,那就可以很容易解决这个问题。

  1. 首先在主目录下新建一个 .vim 目录
  2. 在 .vim 目录下再新建一个 autoload 目录
  3. 在 autoload 目录下新建一个 plug.vim 的文件
  4. 打开 这个链接
  5. 复制这里个链接里的内容到 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,将会使用你的默认浏览器打开一个窗口,如下所示:

vim-markdown-preview

在预览完成之后你可以通过 :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,将会依此执行

  1. i 进入 Insert 模式
  2. 插入四个 *
  3. 执行 <Esc> 指令返回 Normal 模式
  4. 向左移动一位将光标移到星号中间
  5. 执行 i 指令进入 Insert 模式

按照上面的格式你可以配置其他样式的快捷键。

最后还需要提醒的是,这些组合键你不必同时按下,但是两个键按下的间隔不要超过 2 秒,否则只会执行你最后输入的那个键位对应的操作。