Vim 和 Neovim 的前世今生


从开始完全使用 Neovim 进行日常代码开发文档编写到现在,已经过去了大约一年半的时间,一年半以前,我对 Vim 的了解还处在非常初级的阶段,经过长时间的使用与学习,已经达到了熟练使用的程度。当然,Vim 的知识过于庞大,即便我已经使用了一年半的时间,还有很多 Vim/Neovim 的特性或者知识仍然有待了解与发掘。

在使用 Neovim 的过程中,我对 Neovim 和 Vim 的历史以及它们之间的恩怨情仇也产生了兴趣,散布在互联网上各处的博客、视频以及论坛讨论让我对过去的历史有了一定了解。

我的 2019 阅读清单

2019 年年末的这三个月过得很快,最近一个月都在紧张忙碌中度过,以至于错过了年末的时间,没有写一篇 2019 年的阅读总结。

Vim/Nvim Number Arithmetic in Substitution

In this post, I want to share how to do number arithmetic quickly and get what you want in specified format. More specifically, the topic is:

How do we add, subtract, multiply or divide a value to each number in a range?

Regex Keyword and Python Interpolation in Ultisnips

Vim-snippet provides a lot of useful Ultisnips snippets for various filetypes. For example, for Markdown, to insert level 1 header, the snippet trigger is sec, and for level 2 and 3 header, the triggers are ssec and sssec respectively. These triggers are non-intuitive and hard to remember and type.

Firenvim: Neovim inside Your Browser


Last year, I have written a post on how to edit texts inside the browser using Vim/Nvim or browser extensions which have Vim emulations. But none of them is satisfactory enough since they are either not convenient to use or lacking features compared to real Neovim empowered by various plugins.

Running Command Asynchronously inside Neovim


When I am writing some prototyping code inside Neovim, I want to run the script without going to the terminal and typing python Of course, we can use :!python % in the command line to run the script (see :h :!). The problem is that running external command will block Nvim/Vim, and we can not move the cursor until the script finishes running.


Reddit 或者 GitHub 时,在讨论中,经常会碰到一些缩略语,作为一名非 native speaker,经常有点摸不着头脑,不知道这些缩略语啥意思,这篇文章总结一些常用缩略语以及中文含义。