尝试使用此 vi 设置来保存和组织您的笔记

Vimwiki 和 GitLab 为您的笔记提供了强大的组合。
285 位读者喜欢这篇文章。
a checklist for a team

Opensource.com

使用 vi 管理笔记维基的想法可能看起来非常规,但是当您在日常工作中使用 vi 时,这非常有意义。

作为一名软件开发人员,在与我编写代码相同的工具中编写笔记会更容易。 我希望我的笔记只需一个编辑器命令即可访问,无论我在哪里都可以使用,并且以与我处理代码相同的方式进行管理。 这就是我为个人知识库创建基于 vi 的设置的原因。 简而言之:我使用 vi 插件 Vimwiki 在我的笔记本电脑本地管理我的维基,我使用 Git 对其进行版本控制(并保持中央更新的版本),我使用 GitLab 进行在线编辑(例如,在我的移动设备上)。

为什么使用维基进行笔记是有意义的

我已经尝试过许多不同的工具来记录笔记、写下转瞬即逝的想法以及组织我不应该忘记的任务。 这些包括离线笔记本(是的,包括纸张)、特殊的笔记软件和思维导图软件。

所有这些解决方案都有优点,但没有一个能满足我的所有需求。 例如,思维导图是可视化您脑海中想法的好方法(因此得名),但我尝试过的工具提供的搜索功能很差。(纸质笔记也是如此。)此外,随着时间的推移,思维导图通常难以阅读,因此它们不适用于长期笔记。

有一天,在为一个协作项目设置 DokuWiki 时,我发现维基结构符合我的大多数要求。 使用维基,您可以创建笔记(就像在任何文本编辑器中一样)并在笔记之间创建链接。 如果链接指向一个不存在的页面(可能是因为您希望将一条信息放在自己的页面上但尚未设置),维基将为您创建该页面。 这些功能使维基非常适合快速写下您想到的内容,同时仍将您的笔记保持在易于浏览和搜索关键字的页面结构中。

虽然这听起来很有希望,并且设置 DokuWiki 并不困难,但我发现仅仅为了跟踪我的笔记而设置整个维基有点太麻烦了。 经过一番研究,我找到了 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 有两个不同的维基,并且我想在两者中使用 Markdown 语法(同样,因为我习惯于日常工作中的 Markdown)。 它还告诉 Vimwiki 存储维基页面的文件夹。

如果您导航到存储维基页面的文件夹,您将找到维基的平面 Markdown 页面,没有任何特殊的 Vimwiki 上下文。 这使得初始化 Git 存储库并将您的维基同步到中央存储库变得容易。

将您的维基同步到 GitLab

将 GitLab 项目签出到本地 Vimwiki 文件夹的步骤与您用于任何 GitHub 存储库的步骤几乎相同。 我只是更喜欢将我的笔记保存在私有 GitLab 存储库中,所以我为我的个人项目运行一个 GitLab 实例。

GitLab 具有维基功能,允许您为您的项目创建维基页面。 这些维基本身就是 Git 存储库。 并且它们使用 Markdown 语法。 您知道这会导致什么。

只需初始化您想要与您为笔记创建的项目维基同步的维基

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),它告诉它克隆维基存储库而不是项目本身。

就是这样! 现在您可以使用 Git 管理您的笔记,并在 GitLab 的维基用户界面中编辑它们。

但也许(像我一样)您不想为您添加到笔记本的每条笔记手动创建提交。 为了解决这个问题,我使用了 Vim 插件 chazy/dirsettings。 我在 ~/vimwiki_personal_md 中添加了一个包含以下内容的 .vimdir 文件

: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&

这会在我每次打开维基文件时拉取我维基的最新版本,并在每次 :w 命令后发布我的更改。 这样做应该使您的本地副本与中央存储库保持同步。 如果您有合并冲突,您可能需要解决它们(像往常一样)。

目前,这就是我与知识库交互的方式,我对此非常满意。 请告诉我您对这种方法的看法。 并请在评论中分享您最喜欢的笔记方式。

User profile image.
Manuel 于 2013 年在德国海德堡完成了应用计算机科学专业的学习,并获得了硕士学位,此后不久开始担任软件开发人员。 他对使用和结合各种技术来构建新的酷炫事物感兴趣,并努力使生活(包括他自己的生活)更轻松。

3 条评论

enote 看起来确实像一个方便的小记事本。 它是否需要 vim 在编译时支持 ruby? vim-savesess 看起来也很有趣,尽管有时摆脱当前的编辑器状态也会让人感到轻松。 ;)

回复 ,作者:Kobus (未验证)

Enote 不需要 vim 具有 ruby 插件。 它只需要在系统上安装 ruby 即可。 是的,有时最好退出 vim 并销毁会话/状态。 我可能应该将此功能添加到 vim-savesess 中。 或者,如果您有空闲时间,您可以添加此功能 :)

回复 ,作者:ntlx

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.