用 vi 来管理 wiki 笔记

导读 用 vi 来管理 wiki 来记录你的笔记,这听起来不像是一个符合常规的主意,但当你的平常工做都会用到 vi , 那它是有意义的。

做为一个软件开发人员,使用同编码同样的工具来写笔记会更加简单。我想将个人笔记变成一种编辑器命令,不管我在哪里,都可以用管理我代码的方法来管理个人笔记。这即是我建立一个基于 vi 的环境来搭建我本身的知识库的缘由。简单归纳起来,我在笔记本电脑上用 vi 插件 Viwiki 来本地管理个人 wiki。用 Git 来进行版本控制(以保留一个中心化的更新版本),并用 GitLab 来进行在线修改(例如在个人手机上)。html

为何用 wiki 来进行笔记保存是有意义linux

我尝试过许多不一样的工具来持续的记录个人笔记,笔记里保存着个人灵感以及须要记住的任务安排。这包括线下的笔记本 (没错,纸质的)、特殊的记录笔记的软件,以及思惟导图软件。git

但每种方案都有很差一面,没有一个可以知足我全部的需求。例如思惟导图,可以很好的形象化你的想法(于是得名),可是这种工具的搜索功能不好(和纸质笔记本同样)。此外,当一段时间过去,思惟导图会变得很难阅读,因此思惟导图不适合长时间保存的笔记。github

我为一个合做项目配置了 DokuWiki,我发现这个 wiki 模型符合了我大多数的需求。在 wiki 上,你可以建立一个笔记(和你在文本编辑器中所做的同样),并在笔记间建立连接。若是一个连接指向一个不存在的页面(你想让本页面添加一条尚未建立的信息), wiki 会为你创建这个页面。这个特性使得 wiki 很好的适应了那些须要快速写下心中所想的人的需求,而仍将你的笔记保持在可以容易浏览和搜索关键字的页面结构中。vim

这看起来颇有但愿,而且配置 DokuWiki 也很容易,但我发现只是为了记个笔记而配置整个 wiki 须要花费太多工做。在一番搜索后,我发现了 Vimwiki,这是一个我想要的 vi 插件。由于我天天使用 vi,记录笔记就行编辑代码同样。甚至在 vimwiki 建立一个页面比 Dokuwiki 更简单。你只须要对光标下的单词按下回车键就行。若是没有文件是这个名字,vimwiki 会为你建立一个。markdown

为了更一步的实现用天天都会使用的工具来作笔记的计划,我不只用这个我最爱的 IDE 来写笔记,并且用 Git 和 GitLab —— 我最爱的代码管理工具 —— 在个人各个机器间分发个人笔记,以便我能够在线访问它们。我也是在 Gitlab 的在线 markdown 工具上用 markdown 语法来写的这篇文章。编辑器

配置 vimwiki工具

用你已有的插件管理工具来安装 vimwiki 很简单,只须要添加 vimwiki/vimwiki 到你的插件。对于个人喜好的插件管理器 Vundle 来讲,你只须要在 /.vimrc 中添加 plugin vimwiki/vimwiki 这一行,而后执行 :source ~/.vimrc | PluginInstall 就行。gitlab

下面是个人文件 .vimrc 的一部分,展现了一些 vimwiki 配置。你能在 vimwiki 页面学到更多的配置和使用的的信息。编码

let wiki_1 = {}
let wiki_1.path = '~/vimwiki_work_md/'
let wiki_1.syntax = 'markdown'
let wiki_1.ext = '.md'
let wiki_2 = {}
let wiki_2.path = '~/vimwiki_personal_md/'
let wiki_2.syntax = 'markdown'
let wiki_2.ext = '.md'
let g:vimwiki_list = [wiki_1, wiki_2]
let g:vimwiki_ext2syntax = {'.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}

如你在上述配置中所见,个人配置还有一个优势。你能简单的区分我的和工做相关的笔记,而不用切换笔记软件。我想让个人我的笔记能够随时随地访问,而不想个人工做笔记同步到我私人的 GitLab 和计算机中。在 vimwiki 这样配置要比我试过的其余软件都要简单。

这个配置告诉 vimwiki 有两个不一样 Wiki,都使用 markdown 语法(再一次,由于个人平常工做中每天都在用 markdown 语法)。我也告诉 Vimwiki 在哪一个文件夹存储 wiki 页面。

若是你进入存储 wiki 页面的文件夹,你会找到你的 wiki 的普通的 markdown 页面文件,而没有其余特殊的 Vimwiki 相关内容,这使得很容易的初始化 Git 仓库和同步你的 wiki 到中心仓库。

同步你的 wiki 到 GitLab

这一步检出一个 GitLab 项目到本地的 VimWiki 文件夹,这步操做和你操做任何 GitHub 的仓库相同,只不过由于我更喜欢保存个人笔记到个人私人 GitLab 仓库,因此我运行了一个 GitLab 实例用于我我的的项目。

GitLab 的 wiki 功能能够用来为你的项目建立 wiki 页面。这些 wiki 就是 Git 仓库自己。它们使用 markdown 语法,你懂得。

只须要初始化你须要的 wiki ,让它与你为笔记而建立的项目的 wiki 同步便可。

cd ~/vimwiki_personal_md/
git init
git remote add origin git@your.gitlab.com:your_user/vimwiki_personal_md.wiki
git add .
git commit -m "Initial commit"
git push -u origin master

在 GitLab 建立一个新的项目后,你就能够从页面上复制这些步骤的代码。惟一的改变是仓库地址结尾是 .wiki(而不是 .git)。 这会告诉 Git 克隆 wiki 仓库而不是项目自己。

就是这样!如今你可以经过 Git 来管理你的笔记,经过 GitLab wiki 用户界面来修改笔记。

你可能(像我同样)不想手动的为每一个添加到笔记本的笔记建立一个提交。为了解决这个问题,我使用了 Vim 插件 chazy/dirsetting。我添加一个 .vimaddr 文件,已经下面的内容:

:cd %:p:h
silent! !git pull > /dev/null
:e!
autocmd! BufWritePost * silent! !git add .;git commit -m "vim autocommit" > /dev/null; git push > /dev/null&

每当我打开 Wiki 文件按下 :w 发布个人修改时,它就会更新到最新的版本。这样作会使你的本地文件与中心仓库保持同步。若是你有合并冲突,一般你须要解决它们。

目前,这就是以个人知识来互动的方法,我很喜欢这方法;请告诉我你对于这个方法的想法,能够在评论区分享你如何追踪笔记的方法。

via: https://opensource.com/article/18/6/vimwiki-gitlab-notes

做者:Manuel Dewald 译者:octopus 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

原文来自:https://www.linuxprobe.com/vi-viki-note.html

相关文章
相关标签/搜索