快速记下灵犀一点的想法到指定的文件


#1

在编辑中工作而时候,
有时候会突然想到某个问题的解决思路,
C-x C-f找到记录文件后, 想法常常就没了.

怎样捕捉到这样转瞬即逝的想法.

尝试用todo收集, 但回顾的时候, 一个一个的挑拣出来, 工作量也不小.

能不能自动添加到指定文件的文末.


灵感捕捉器与register的神助攻 (重新设计工作流
#2

org-capture


#3

尝试用todo收集, 但回顾的时候, 一个一个的挑拣出来, 工作量也不小.

不是在记录的时候整理,就是在回归的时候整理…

org-capture + org-refile 这是基本款 别的看有讨论用anki的


#4

可以用 yasnippet 新建一个用 todo 或 idea 开头的snippet保存临时的想法

yasnippet会根据不同的mode在不同的目录保存snippets

用company-yasnippet或ivy-yasnippet能轻易的找到你的想法

你还可以写个函数将想法添加到不同的分类 比如 note todo concept code 等等

将snippets转换成org也不难

一切受限于你的想象力


#5

谢谢各位,

我试一下, org-capture,he yasnippet,

比较简单, 就是将 短暂的想法 写入到 特定的文件, 比如想法文件的最末.

比如看到这么一句

“夜深忽梦少年事,梦啼妆泪红阑干。” 突然出发的想法, 马上记下来,

再过十分钟去看, 可能什么触动都没有.


#6

比较简单的话,可以试试 Emacs 自带的 remember 这个包


#7

找到了一个简单而完美的解决方案,
用register,
将忽然而来的想法, 就直接写在当下的编辑器里. 保存到register中.


#8

deft 包。很好用


#9

整理是很重要的一环,我反正不指望自动归类。


#10

我的方案也是 org-capture,新建了一种 draft 类型,有以下特点:

  • 在指定目录下创建以当前时间戳命名的 org 文件

  • 文件去掉已修改状态

    这样退出 Emacs 就不会提示文件没有保存,可以手工存盘

相关配置如下

    (setq my/org-drafts-directory (concat (file-name-as-directory org-directory) "drafts"))
    (defun my/org-draft-new-file ()
      (concat (file-name-as-directory my/org-drafts-directory) (format-time-string "%F_%T") ".org"))
    (setq org-capture-templates '(("t" "Task" entry
                                   (file+headline "" "Tasks")
                                   "* TODO %? %^g\n  %u\n  %a\n"
                                   :empty-lines 1)
                                  ("d" "Draft" plain
                                   (file my/org-draft-new-file)
                                   "")
                                  ("e" "Ediary" plain
                                   (file ediary-source-file)
                                   "* TODO %?\n  %u\n  "
                                   :jump-to-captured t
                                   :empty-lines-before 1)))
  
    ;; Mark draft buffer without modifications state.
    (defun my/org-capture-draft-buffer-mark-as-unmodified(&optional start end length)
      (set-buffer-modified-p nil))
    (defun my/org-capture-draft-buffer-create-hook ()
      (when (and
             (eq major-mode 'org-mode)
             (buffer-file-name)
             (file-in-directory-p (buffer-file-name) my/org-drafts-directory))
        (my/org-capture-draft-buffer-mark-as-unmodified)
        (add-hook 'after-change-functions 'my/org-capture-draft-buffer-mark-as-unmodified nil t)))
    (add-hook 'after-change-major-mode-hook 'my/org-capture-draft-buffer-create-hook)
  
    (defun my/drafts ()
      (interactive)
      (find-dired my/org-drafts-directory "-name '*.org'"))

效果如下

用得还是很频繁的,因为确实方便,有时候临时要记录些东西,有用的肯定就随后放到 TODO 或其它更正式的地方了

      /home/tangxinfa/.emacs.d/org/drafts/:
      find . \( -name '*.org' \) -print0 | xargs -0 ls -ald
      -rw-r--r-- 1 tangxinfa tangxinfa  10418 May 21  2018 2018-05-21_15:11:59.org
      -rw-r--r-- 1 tangxinfa tangxinfa    958 May 24  2018 2018-05-23_15:33:28.org
      -rw-r--r-- 1 tangxinfa tangxinfa  86185 May 24  2018 2018-05-24_18:29:56.org
      -rw-r--r-- 1 tangxinfa tangxinfa    124 May 29  2018 2018-05-29_12:42:28.org
      -rw-r--r-- 1 tangxinfa tangxinfa      1 May 30  2018 2018-05-30_15:42:48.org
      -rw-r--r-- 1 tangxinfa tangxinfa      1 May 30  2018 2018-05-30_15:44:44.org
      -rw-r--r-- 1 tangxinfa tangxinfa 104166 May 30  2018 2018-05-30_15:45:23.org
      -rw-r--r-- 1 tangxinfa tangxinfa      1 May 31  2018 2018-05-31_10:47:46.org
      -rw-r--r-- 1 tangxinfa tangxinfa  80196 May 31  2018 2018-05-31_11:39:12.org
      -rw-r--r-- 1 tangxinfa tangxinfa 186148 May 31  2018 2018-05-31_11:43:15.org
      -rw-r--r-- 1 tangxinfa tangxinfa 166135 May 31  2018 2018-05-31_11:43:45.org
      -rw-r--r-- 1 tangxinfa tangxinfa   8678 May 31  2018 2018-05-31_14:18:21.org