受 Xmind 快捷键启发的 org-mode 操作方式

  • 在思维导图软件 Xmind 中按 Enter 是插入分支主题,Tab 是插入子主题,SPC 是编辑主题,用这三个快捷键有种行云流水的感觉,正如它的版本号 Zen
  • 把 org-mode 当做思维导图,它的快捷键过于复杂,尤其是在手机上操作,受 Xmind 启发我配置了 F1 插入同级标题并编辑,F2 插入下一级标题并编辑,F3 百度搜索标题 (下方代码适用于手机),F4 编辑标题
(defun org-insert-heading-and-edit ()
  (interactive)
  (progn
    (evil-insert-line 0)
    (org-insert-heading 0)
    (org-edit-headline)
    (evil-escape)))

(defun org-insert-subheading-and-edit ()
  (interactive)
  (progn
    (evil-append-line 0)
    (org-insert-subheading 0)
    (org-edit-headline)
    (evil-escape)))

(defun org-search-headline ()
  (interactive)
  (chrome-open-browser
   (format "https://www.baidu.com/s?word=%s"
           (url-encode-url
            (org-get-heading)))))

(global-set-key (kbd "<f1>") 'org-insert-heading-and-edit)
(global-set-key (kbd "<f2>") 'org-insert-subheading-and-edit)
(global-set-key (kbd "<f3>") 'org-search-headline)
(global-set-key (kbd "<f4>") 'org-edit-headline)
  • 这里的 chrome-open-browser 使用了 termux-api 和 urlscheme
(defun chrome-open-browser (x &rest args)
  (interactive)
  (shell-command
   (format "termux-open-url 'googlechrome://navigate?url=%s'" x)))
1 个赞

我想问一下, 这个函数是什么意思?

C-h f 再输入 interactive 有很详细的解释,简单来说,它使函数在按 M-x 后可以直接调用

1 个赞

感谢解释,我有看文档,但不太理解,所以问问

简单说,添加这一行,一个普通的函数就成了可交互调用的命令了(M-x),如果不加这一行,一个函数就是普通的函数,只能在Lisp代码中调用,如(setq …)

1 个赞