vi笔记
使用vi管理笔记的Wiki的想法似乎不合常规,但是当您在日常工作中使用vi时,这很有意义。
作为软件开发人员,使用与我编写代码相同的工具来编写我的笔记会更容易。 我希望我的笔记仅是一个编辑器命令,无论我在哪里都可以使用,并且以与处理代码相同的方式进行管理。 因此,我为我的个人知识库创建了基于vi的设置。 简而言之:我使用vi插件Vimwiki在笔记本电脑上本地管理我的Wiki,使用Git对其进行版本控制(并保留一个集中的更新版本),并且使用GitLab进行在线编辑(例如,在移动设备上) )。
为什么使用Wiki进行记笔记很有意义
我尝试了许多不同的工具来记录笔记,写下短暂的想法以及安排我不应该忘记的任务。 其中包括离线笔记本(是的,涉及纸张),特殊的记笔记软件和思维导图软件。
所有这些解决方案都具有积极意义,但都不能满足我的所有需求。 例如, 思维导图是可视化您的想法的好方法(因此得名),但是我尝试使用的工具提供的搜索功能很差。 (对于纸质便笺也是如此。)而且,经过一段时间后,通常很难阅读思维导图,因此它们对于长期保存便笺不是很好。
有一天,在为合作项目设置DokuWiki时 ,我发现Wiki结构符合我的大多数要求。 使用Wiki,您可以创建注释(就像在任何文本编辑器中一样),并在注释之间创建链接。 如果链接指向不存在的页面(可能是因为您希望一条信息位于其自己的页面上,但尚未设置),那么Wiki将为您创建该页面。 这些功能使Wiki非常适合在您想到的地方快速编写内容,同时仍将注释保留在易于浏览和搜索关键字的页面结构中。
虽然这听起来很有希望,并且设置DokuWiki并不困难,但我发现要建立整个Wiki来跟踪我的笔记的工作量太大。 经过研究,我发现了Vimwiki,这是一个Vi插件,可以满足我的需求。 由于我每天都使用Vi,因此记笔记与编辑代码非常相似。 此外,在Vimwiki中创建页面比在DokuWiki中创建页面还要容易-您要做的就是在光标悬停在单词上时按Enter键。 如果还没有一个具有该名称的页面,Vimwiki将为您创建它。
为了使我的计划使用我的日常工具来做笔记,我不仅要使用自己喜欢的IDE编写笔记,还要使用我喜欢的代码管理工具Git和GitLab在我的各种机器上分发笔记并成为能够在线访问它们。 我还在GitLab的在线Markdown编辑器中使用Markdown语法编写本文。
设置Vimwiki
使用现有的插件管理器可以很容易地安装Vimwiki:只需将vimwiki/vimwiki
添加到您的插件即可。 在我首选的插件管理器Vundle中,您只需在~/.vimrc
添加Plugin 'vimwiki/vimwiki'
,然后是:source ~/.vimrc|PluginInstall
。
下面是一段我~.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页面。 这些维基本身就是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上创建新项目后,可以从您登录的页面复制这些步骤。 唯一要更改的是存储库URL末尾的.wiki
(而不是.git
),它告诉它克隆Wiki存储库而不是项目本身。
而已! 现在,您可以使用Git管理笔记,并在GitLab的Wiki用户界面中对其进行编辑。
但是也许(像我一样)您不想为添加到笔记本中的每个便笺手动创建提交。 为了解决这个问题,我使用Vim插件chazy / dirsettings 。 我将一个具有以下内容的.vimdir
文件添加到~/vimwiki_personal_md
:
: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文件时,都会提取Wiki的最新版本,并在每个:w
命令之后发布更改。 这样做应该使本地副本与中央存储库保持同步。 如果您有合并冲突,则可能需要解决它们(照常)。
目前,这是我与知识库互动的方式,对此我感到非常满意。 请让我知道您对这种方法的看法。 并且请在评论中分享您最喜欢的方式来跟踪您的笔记。
翻译自: https://opensource.com/article/18/6/vimwiki-gitlab-notes
vi笔记