用 vi 来管理 wiki 笔记

2024-11-27 38871 电脑系统

作为一个软件开发人员,使用同编码一样的工具来写笔记会更加简单。我想将我的笔记变成一种编辑器命令,无论我在哪里,都能够用管理我代码的方法来管理我的笔记。这便是我创建一个基于 vi 的环境来搭建我自己的知识库的原因。简单概括起来,我在笔记本电脑上用 vi 插件 Viwiki 来本地管理我的 wiki。用 Git 来进行版本控制(以保留一个中心化的更新版本),并用 GitLab 来进行在线修改(例如在我的手机上)。

为什么用 wiki 来进行笔记保存是有意义

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

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

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

这看起来很有希望,并且配置 DokuWiki 也很容易,但我发现只是为了记个笔记而配置整个 wiki 需要花费太多工作。在一番搜索后,我发现了 Vimwiki,这是一个我想要的 vi 插件。因为我每天使用 vi,记录笔记就行编辑代码一样。甚至在 vimwiki 创建一个页面比 Dokuwiki 更简单。你只需要对光标下的单词按下回车键就行。如果没有文件是这个名字,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 页面。这些 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 发布我的修改时,它就会更新到最新的版本。这样做会使你的本地文件与中心仓库保持同步。如果你有合并冲突,通常你需要解决它们。

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


以上就是用 vi 来管理 wiki 笔记的详细内容,更多请关注比你酷【www.biniku.com】。

Safari浏览器怎么管理相机权限_Safari管理相机访问权限方法【教程】

需通过Safari偏好设置、地址栏网站设置、清除权限记录、系统隐私设置四步实现永久禁止:先在网站选项卡设摄像头/麦克风为拒绝;再于地址栏锁图标中选“拒绝”;接着清除该站权限条目;最后在系统隐私中移除其设备白名单授权。 你需要为不同网站分别设置允许、拒绝或询问摄像头权限,避免所有网站统一放行带来隐私风险,也不用每次访问都手动点允许。 Mac上通过Safari偏好设置管理单个网站相机权限 第一步:打开...

192.168.1.1管理页面登录

192.168.1.1是主流路由器默认管理地址,需通过局域网访问,登录后可修改管理员密码及双频Wi-Fi密码,操作全程本地化、无云同步、不依赖外网。 192.168.1.1管理页面登录192.168.1.1路由器初始密码修改,这是不少家庭用户与小型办公场景使用者在首次配置网络时遇到的基础操作问题,接下来由PHP小编为大家带来192.168.1.1管理页面登录及初始密码修改的完整指引,感兴趣的用户一...

谷歌浏览器怎么管理扩展_谷歌浏览器管理已安装扩展程序教程【技巧】

Chrome扩展管理需通过chrome://extensions/统一入口操作,支持启用/禁用、卸载、权限限制(含网站白名单)、开发者模式加载及重置数据等五类操作。 如果您在使用谷歌浏览器时需要调整已安装扩展程序的行为,例如启用、禁用、移除、限制权限或重新加载,但无法快速定位操作入口或功能异常,则可能是由于未进入统一管理界面、开发者模式未开启、权限配置不当或扩展来源受限所致。以下是管理Chrome...

百度浏览器如何管理下载的文件_百度浏览器下载管理技巧【指南】

百度浏览器下载文件管理需通过下载管理器操作:可查看/打开/删除文件、批量清理记录、自定义下载路径与命名规则,并支持误删任务恢复及断点续传。 如果您已使用百度浏览器完成文件下载,但不清楚如何查看、打开、删除或重新组织这些文件,则可能是由于未熟悉其内置下载管理器的操作逻辑。以下是针对下载文件进行高效管理的具体方法: 一、进入并浏览下载管理界面 下载管理器是集中查看所有下载任务与历史记录的统一入口,可实...

印象笔记怎么给笔记加密 印象笔记设置密码方法【指南】

印象笔记不支持整篇笔记端到端加密,但可通过三种方式保护敏感内容:一、加密文本块(选中纯文字→右键“加密所选文本”→设独立密码,解密后仅内存临时显示);二、启用应用级密码锁(设备本地防护,支持PIN/生物识别);三、导出后用第三方工具加密ENEX/PDF文件。 你想在印象笔记里保护身份证号、银行卡信息或会议纪要中的敏感内容,不让同事或家人随手翻到就直接看到原文,就得对笔记内容做加密处理——印象笔记不...

谷歌浏览器多账号管理技巧:如何在一台电脑上同时登录多个Google账号?【账号管理】

需借助Chrome多用户配置文件机制实现物理级隔离:一、图形界面创建独立配置文件;二、快捷键(Ctrl+Shift+M/Command+Shift+M)瞬时切换;三、带--profile-directory参数的快捷方式直连;四、无痕窗口临时会话;五、头像菜单快速切换。 如果您希望在一台电脑上同时登录多个Google账号,但又不希望账号间的数据(如Cookies、扩展、书签)相互干扰,则需借助Ch...

vivo浏览器怎么管理视频_vivo浏览器管理视频缓存【功能】

vivo浏览器视频缓存管理有五种方法:一、“我的视频”集中查看导出;二、下载管理器精准删除;三、手动清理offline_video目录;四、i管家扫描清理碎片缓存;五、修改默认下载路径实现主动管理。 如果您在vivo浏览器中观看或下载了网页视频,但发现其缓存文件杂乱堆积、占用空间过大、播放卡顿或无法定位已保存内容,则很可能是视频缓存未被系统化管理所致。以下是多种可独立执行的视频管理方法,涵盖查看、...

猎豹浏览器怎么管理Cookie_猎豹浏览器Cookie清理管理方法教程【安全】

猎豹浏览器Cookie异常可按五种方法清理:一、地址栏锁标管理当前站;二、开发者工具Application标签精准删域名;三、设置中“所有Cookie”界面关键词搜索删除;四、Ctrl+Shift+Delete快捷批量清除;五、历史管理器联动清除时段内Cookie。 如果您在使用猎豹浏览器时发现登录状态异常、网站偏好丢失或存在隐私泄露风险,则很可能是Cookie数据出现冗余、冲突或被恶意写入。以下...