前兩天剛寫了篇自己的實踐過程,目的是在 vim中搭建一個方便寫 LaTeX文檔的環境,現在又來搞一個vimwiki, 這是為啥呢
首先
LaTeX確實很強大,但同時也是更專注於數學相關的排版;如果我用來在邊聽些網課邊做筆記,這想必是極好的,因為課程本身是系統的,連續的,最後出來的筆記也比較完整。
但同時
我感覺我還需要搭建一個自己的知識庫,然後我就看到了 VimWiki,能夠用類似wiki一樣的方式組織自己各種或碎片化或完整的知識庫,確實聽起來很不錯。看了一下,使用起來也非常簡單。
安裝
無腦使用vim-plug,在 \_vimrc中加入
call plug#begin()
...
Plug 'vimwiki/vimwiki'
call plug#end()
基本使用
- 在任意緩衝區的普通模式下輸入
<leader>ww即可跳轉到你的wiki的首頁。 -
在任意單詞上按回車,就會創建相應詞條,單詞也會被 '[[ ]]'包圍。
- 你也可以按
v進入視圖模式選擇完整詞條名稱,再按回車,避免空格等打斷詞條。
- 你也可以按
- 再按一下回車,會自動跳轉到該詞條對應的.wiki文件;如果沒有該文件,會自動創建。
-
基本格式(從github上覆制粘貼的)
基本符號= Header1 = == Header2 == === Header3 === *bold* -- bold text _italic_ -- italic text [[wiki link]] -- wiki link [[wiki link|description]] -- wiki link with description列表
* bullet list item 1 - bullet list item 2 - bullet list item 3 * bullet list item 4 * bullet list item 5 * bullet list item 6 * bullet list item 7 - bullet list item 8 - bullet list item 9 1. numbered list item 1 2. numbered list item 2 a) numbered list item 3 b) numbered list item 4 -
一些常用鍵映射
- <Leader>ww -- 打開默認 Wiki頁
- <Leader>wt -- 在新的 tab頁中打開默認 Wiki頁
- <Leader>ws -- 選擇並打開 Wiki頁
- <Leader>wd -- 刪除當前 Wiki頁
- <Leader>wr -- 重命名當前 Wiki頁
- <Enter> -- 跟蹤/創建 Wiki頁
- <Shift-Enter> -- 分割窗口並跟蹤/創建 Wiki頁
- <Ctrl-Enter> -- 垂直分割窗口並跟蹤/創建 Wiki頁
- <Backspace> -- 回到父(之前的) Wiki頁
- <Tab> -- 跳轉到下一個 Wiki鏈接
- <Shift-Tab> -- 跳轉到上一個 Wiki鏈接
-
配置項
在vim普通模式下輸入:VimWikiVar可以看到當前 vimwiki的設置。
我目前在_vimrc中手動修改的配置如下let g:vimwiki_list =[{ \ 'template_default': 'def_template', \ 'template_path': '$HOME/vimwiki/templates', \ 'template_ext': '.html'}]其中主要是默認使用的模板的名稱,和模板所在的目錄,在下文中會用到。
繞不開的數學公式
自己的知識庫裏最後還是繞不開要輸入數學符號,還好這些都是支持的,可以在vim的普通模式下輸入 :help vimwiki-syntax-math 查看相關説明。
簡而言之,
- 在行內插入數學符號,用`$$`包住;
- 在新行插入,用
```
{{$
...
}}$
```
包住。
- 其它的基本上別的和 LaTeX差不多。
導出成.html文件
與 .tex文件類似,.wiki文件中的數學符號還要經過處理才能顯示。我是直接導出成.html文件,然後在瀏覽器中直接打開看效果的。在.wiki文件緩衝區普通模式下輸入 :VimWiki2HTML, 會在 vimwiki_html 目錄下找到導入的 .html文件。但是如果直接打開,你會發現顯示的還是你的文本輸入。再看看上面説的 vimwiki-syntax-math,當中提到要給瀏覽器加點東西。
- 安裝 node.js。這個我在之前為了用 coc,已經裝上了vim折騰筆記
-
安裝 mathjax.
- 進入命令行,找個合適的地方, 這裏我用的是我的 vimwiki目錄
- 輸入
npm install mathjax詳情可以看 mathjax。然後你就能看到 npm在你指定的目錄下創建了一個somewhere\vimwiki\node_modules\mathjax目錄。 -
在你的 .html文檔上加上 mathjax的引用
- 手動在 .html文檔中加上
<script type="text/javascript" src="<mathjax_folder>/es5/tex-chtml.js?config=TeX-AMS-MML_HTMLorMML"></script>,其中<mathjax_folder>就是剛才安裝 mathjax的目錄 -
你也可以修改 .html的模板,這樣每次生成 .html文件都可以自動添加。
- 在你的模板目錄下新建一個模板(或者編輯已有的默認模板),如:
<html> <script type="text/javascript" src="<mathjax_folder>/es5/tex-chtml.js?config=TeX-AMS-MML_HTMLorMML"></script> <head> <link rel="Stylesheet" type="text/css" href="%root_path%style.css" /> <title>%title%</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div class="content"> %content% </div> <p><small>Page created on %date%</small></p> </body> </html>記得將
<mathjax_folder>替換成你自己的路徑- 然後修改默認模塊名為這個模版(參考上面的 _vimrc配置),或者在你的 .wiki文件開頭用
%template <template name>指定想要用的模板 - 將 .wiki文件再次導出為 .html,再扔到瀏覽器中看看效果,應該就沒問題了。
- 手動在 .html文檔中加上