本文僅適合于對vim有一定了解的人閱讀,沒有了解的人可以看看文中的視頻我使用 neovim 代替 vim ,有些插件是 neovim 獨占, neovim 和 vim 的區別請自行
google系統: Manjaro(Linux)
前言
之前我一直使用的是 vscode 和 typora 作為 markdown 編輯器,這兩個都挺好用的,都有 linux 版本,typora 可能是我見過的最優雅的編輯器了
不過直到我遇見了 vim,一款被譽為編輯器之神的軟件,才明白,顏值啥的都是浮云,效率才是第一位。關于 vim 如何高效率寫 markdowm,我也是借鑒了別人的思路。視頻在下方,推薦觀看,看完他的所有視頻,我相信你會愛上 linux 的 視頻地址
設置
vim 的一大思想就是手不離開鍵盤,所有操作全都靠鍵盤完成,還可以自定義各種各樣的快捷鍵,無疑能很大程度提高效率。vim 基本操作方法就不用我講了吧,默認大家都用過 vim
markdown 的語法其實很簡單,都是一些特定的格式。但是對于追求效率的人,markdown 還是不夠快,下面是一些提速思路
設置錨點,自定義快捷鍵
可能你會疑問,自定義就自定義嘛,為什么還要設置錨點?錨點又是什么?錨點的作用在于讓你快速跳轉到下一個你需要輸入的位置,而不需要通過方向鍵來移動,或者是鼠標來移動
看下這個設置鏈接的例子

錨點就是,在插入模式中使用,a 創建鏈接模板,使用,f 來尋找下一個錨點,并刪除這個錨點,邏輯就這么簡單,其他的格式也是一樣的,可以讓你完全擺脫方向鍵和鼠標
快捷鍵設置
> 快速添加錨點autocmd Filetype markdown inoremap ,, > 尋找下一個錨點autocmd Filetype markdown inoremap ,f /:nohlsearchc4l> 尋找下一個錨點并刪除錨點前的空格autocmd Filetype markdown inoremap ,s / :nohlsearchc5l> 分割線autocmd Filetype markdown inoremap ,- ---> 加粗autocmd Filetype markdown inoremap ,b **** F*hi> 刪除線autocmd Filetype markdown inoremap ,x ~~~~ F~hi> 斜體autocmd Filetype markdown inoremap ,p ** F*i> 行內代碼autocmd Filetype markdown inoremap ,q `` F`i> 代碼塊autocmd Filetype markdown inoremap ,c ``````4kA> todoautocmd Filetype markdown inoremap ,g - [ ] kA> 下劃線autocmd Filetype markdown inoremap ,u F/hi> 圖片autocmd Filetype markdown inoremap ,p ![]() F[a> 鏈接autocmd Filetype markdown inoremap ,a []() F[a> 一號標題autocmd Filetype markdown inoremap ,1 #kA> 二號標題autocmd Filetype markdown inoremap ,2 ##kA> 三號標題autocmd Filetype markdown inoremap ,3 ###kA> 四號標題autocmd Filetype markdown inoremap ,4 ####kA> 插入當前時間autocmd Filetype markdown inoremap ,t =strftime("%Y-%m-%d %H:%M:%S")
這個快捷鍵的設置算是完全展示了 vim 的神奇
首先看這個幾個前綴,需要分為三部分來看
- autocmd Filetype markdown會在打開文件時判斷當前文件類型,如果是 markdown 就執行后面的命令
- inoremap 也就是映射命令map,當然它也可以添加很多前綴1
nore
表示非遞歸,而遞歸的映射,也就是如果鍵a被映射成了b,c又被映射成了a,如果映射是遞歸的,那么c就被映射成了b
n
表示在普通模式下生效
v
表示在可視模式下生效
i
表示在插入模式下生效
c
表示在命令行模式下生效所以inoremap也就表示在插入模式下生效的非遞歸映射 - map的參數,必須放在map后面 表示僅在當前緩沖區生效,就算你一開始打開的是md文件,映射生效了,但當你在當前頁面打開非md文件,該映射也只會在md文件中生效 如果映射的指令中使用了命令行,命令行中也不會顯示執行過程
后面就是按鍵和映射的指令了,邏輯什么的就是對 vim 的直接操作,就不詳細介紹了
表格
畫表格最麻煩的就是格式化問題,我們需要用到vim-table-mode 插件
安裝方法 Github 上寫的很詳細,我就不仔細說了,我只講講我怎么寫表格,我就用的默認配置
使用tm來開啟表格格式化(如果你不知道是什么鍵的話請自行 google),先添加錨點來快速搭建整個表格框架,再依次進行替換

列表
使用bullets.vim來自動添加列表項和整理列表

預覽
我用的是markdown-preview.nvim
詳細配置請查看 Github,我只使用了默認配置,添加了以下開啟預覽的快捷鍵
noremap r :call CompileRunGcc()func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!gcc % -o %
這個腳本可以使用r來編譯執行或預覽c/c++, html, python, go, markdown
總結
我就用 markdown 寫寫博客,追求效率至上,使用場景比較單一,還有一些好用的 markdwon 插件我沒怎么用過就不介紹了