使用<backtab> </backtab>的组织模式和Yasnippet

时间:2014-11-06 20:19:21

标签: emacs org-mode yasnippet

在Emacs中,如何修改org-mode键映射,以便shift-tab运行yas-expand而不是org-shifttab?更好的是,我怎样才能使shift-tab仅在点位于片段触发器前面时运行yas-expand,否则运行org-shifttab?

另外,我在org-mode wiki中看到了这个条目。第一个选项不起作用,我无法使第二个选项正常工作,因为我找不到backtab相当于org-tab-first-hook

  

Org模式绑定键的方式(绑定到[tab]而不是   &#34; \ t&#34;)否决了YASnippet对此密​​钥的访问权限。以下代码   解决了这个问题:

(add-hook 'org-mode-hook
          (lambda ()
            (org-set-local 'yas/trigger-key [tab])
            (define-key yas/keymap [tab] 'yas/next-field-or-maybe-expand)))
     

最新版本的yasnippet与Org模式不相称。如果   上面的代码不能解决冲突,首先要定义   以下功能:

      (defun yas/org-very-safe-expand ()
        (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
     

然后,告诉Org模式如何处理新功能:

      (add-hook 'org-mode-hook
                (lambda ()
                  (make-variable-buffer-local 'yas/trigger-key)
                  (setq yas/trigger-key [tab])
                  (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand)
                  (define-key yas/keymap [tab] 'yas/next-field)))

0 个答案:

没有答案