jianzong
5.92D
V2EX  ›  程序员

使用 vim 记录工作日志的技巧

By jianzong at 2018 年 5 月 2 日 · 8926 次点击

经我观察,身边的程序员基本都有每天记录工作笔记的习惯。

程序员记录工作日志( Journal )的重要性不必多说,这既是我们用来记录待办事项、整理思路、记录代码片段的手段,也是项目总结、年终总结、工作汇报或者晋升总结时候的救命稻草。

我见过使用各种各样工具做工作笔记的:纸质笔记本、电脑 Todo App、记事本、trello 或者 sublime。

上述工具我都使用过,但是都不是十分顺手。

本文要介绍的是一种我认为用起来最快,也是我最喜欢的一种工具:vim + Dropbox

这个工具使用起来非常简单,只需要在你的 bash profile 加入下面的 alias,就可以完成:

alias jj='mkdir -p /Users/$USER/Dropbox/journal/$(date +%Y)/; vim "/Users/$USER/Dropbox/journal/$(date +%Y)/$(date +%Y-%m-%d).md"'

加入上述命令后,在命令行输入 jj 就会在 Dropbox 里面创建一个以日期命名的 markdown 文件,每个月的笔记会归属到一个文件夹里面。

我为什么喜欢这个方式记录笔记?答案是写起来飞快,通常我会每天阅读大量的代码,阅读过程中就通过上述的文件记录下来,这些笔记一般都是即用即弃的。同时我还将这个文件作为每天的 todo 列表使用。最后,因为你的笔记都记录在 Dropbox,所以自带了云同步以及版本控制的能力。

进阶技巧:

  1. jj 用 vim 打开当天的日志后,输入 :Ex 命令可以列出当月所有的文件
  2. 如何快速查看前几天的笔记?使用 cat journal/2018-04* 列出当月所有笔记
  3. 使用 grep 快速查找

原文转载自我的 blog: https://github.com/haojianzong/blog/issues/2

35 条回复  •  2018-05-05 10:52:45 +08:00
scriptB0y
   1
scriptB0y  
   2018 年 5 月 2 日
Vimwiki 也不错,自带日记功能: https://www.kawabangga.com/posts/2864
jacobz
   2
jacobz  
   2018 年 5 月 2 日   ❤️ 1
学到了。不过我用的时候发现,如果 vim 后面的那对双引号不去掉,在保存的时候会报错:“ E212 can't not open file for writing ”。
jianzong
   3
jianzong  
OP
   2018 年 5 月 2 日
@scriptB0y 嗯,以前也用过 vimwiki 一年时间,后来还是决定放弃了,因为我还是喜欢尽量少的配置。
jianzong
   4
jianzong  
OP
   2018 年 5 月 2 日
@jacobz 感谢纠正,引号不是必要的,我在原文里修改一下。
glues
   5
glues  
   2018 年 5 月 2 日
有点像 Emacs org mode
Jason2393
   6
Jason2393  
   2018 年 5 月 2 日
借楼问 Vim 和中文输入法如何和谐共处
bbsteel
   7
bbsteel  
   2018 年 5 月 2 日 via Android
我拿个 Excel 觉得也行,也就记个事情和进度
arapat
   8
arapat  
   2018 年 5 月 2 日
我有一个差不多的脚本,不过是作为 Slack 机器人跑在一台机器上。记日志的方式是在特定的 Slack 频道发消息,Slack Bot 就会把发送的消息转存到 Dropbox 上。
jianzong
   9
jianzong  
OP
   2018 年 5 月 2 日
@JasonSi 正常输入中文没问题呀
jianzong
   10
jianzong  
OP
   2018 年 5 月 2 日
@arapat 有趣
Jason2393
   11
Jason2393  
   2018 年 5 月 2 日
@jianzong 就是…我用自带的输入法,日常就是,ESC 到命令模式,敲敲打打,然后插入模式,control space 切换输入法,blabla,ESC 到命令模式,切换输入法……
切换输入法的频率很高诶
tamlok
   12
tamlok  
   2018 年 5 月 2 日 via Android
@JasonSi 使用 gvim 可以自动禁用和启用输入法,imdisable 了解一下。实在不行,可以试试 VNote😁
ksc010
   13
ksc010  
   2018 年 5 月 2 日   ❤️ 1
使用 nodepad++ 自建了一套语法高亮 和文本格式(*.plan)
主要就是提供 日期 计划 是否完成 三个功能
Vimax
   14
Vimax  
   2018 年 5 月 2 日   ❤️ 1
人生苦短,我用 Vnote。
AsaMyth
   15
AsaMyth  
   2018 年 5 月 2 日 via Android
一直用 excel,不同颜色表示进度。
kisnows
   16
kisnows  
   2018 年 5 月 2 日
我一般用 oneNote
mogita
   17
mogita  
   2018 年 5 月 2 日 via iPhone
我用的是 Day One,支持 Markdown。
kimoCHG
   18
kimoCHG  
   2018 年 5 月 2 日
@JasonSi #11 如果是 mac 用户,试试这个? https://github.com/CodeFalling/fcitx-vim-osx
simple2025
   19
simple2025  
   2018 年 5 月 2 日
我用 vscode
jianzong
   20
jianzong  
OP
   2018 年 5 月 2 日
@JasonSi 确实是这样子,输入法切换确实是个问题,好像我是通过手速快来解决的 :doge:
secondwtq
   21
secondwtq  
   2018 年 5 月 2 日
org mode 了解一下?
coolhubery
   22
coolhubery  
   2018 年 5 月 2 日
感觉 Dropbox Paper 用于记笔记也很不错,简约而强大,支持 markdown,可以试试。
chemzqm
   23
chemzqm  
   2018 年 5 月 3 日   ❤️ 1
https://github.com/neoclide/macnote.vim Mac 的 vim 用户可以了解以下
weixiangzhe
   24
weixiangzhe  
   2018 年 5 月 3 日 via iPhone
推荐楼主有 boostnote, 可以绑定 vim 模式, 保存格式是 md, 应该非常适合
tamlok
   25
tamlok  
   2018 年 5 月 3 日 via Android
@weixiangzhe boostnote 点击一下会进入编辑模式,而光标位置却又没有同步,我用了一段时间,感觉晕晕的,就像你一脚踩下去,云里雾里,不知道会踩到哪。😂
qiqico
   26
qiqico  
   2018 年 5 月 3 日
一直用 evernote 记,很多时间需要贴图,或者贴 html,代码什么的,更方便些
wlwood
   27
wlwood  
   2018 年 5 月 3 日 via Android
没人跟我一样用 org 的么?😜😜😜
hanxiV2EX
   28
hanxiV2EX  
   2018 年 5 月 3 日 via Android
有像我一样把文件推送到 git 的吗?写了个自动推送脚本。
afeicool
   29
afeicool  
   2018 年 5 月 3 日
Emacs org mode + git , 涉及隐私+ pgp
plan9
   30
plan9  
   2018 年 5 月 3 日 via iPhone
看来用 org mode 的人还蛮多的
SharkIng
   31
SharkIng  
   2018 年 5 月 3 日   ❤️ 1
一直用 Notion,感觉不错,各种格式都可以。不过缺点就是一个 Web App,没办法命令行操作,准备试试楼主的办法
aaronzjw
   32
aaronzjw  
   2018 年 5 月 3 日
@arapat 惊现德塔赛的主播大佬
guoli100
   33
guoli100  
   2018 年 5 月 3 日
我用 vim 编辑好后直接复制在了 gist 上。。。
Aksura
   34
Aksura  
   2018 年 5 月 5 日 via Android
@jianzong vin 有个插件 calendar-vim
jianzong
   35
jianzong  
OP
   2018 年 5 月 5 日
@Aksura 嗯我是刻意不用插件的,降低依赖和尽量简化配置的目的是减轻头脑负担
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 91ms · 3.9.8.5