【问题标题】:Launch magit directly from ido in Emacs在 Emacs 中直接从 ido 启动 magit
【发布时间】:2015-08-14 10:56:59
【问题描述】:

我想直接从ido 启动magit。即,我想使用ido-find-file 启动 ido,导航到我要运行 magit 的目录,按一些组合键,例如 C-x g,然后让 ido 退出并在该目录中打开 magit。

我目前只是按C-d在目录中打开dired,然后按C-x g打开magit,但我想避免额外的C-d .

我设法为ido-completion-map 添加了一个新的组合键:

(add-hook 'ido-minibuffer-setup-hook
          (lambda () (interactive)
            (define-key ido-completion-map (kbd "C-x g") 'arvid-ido-enter-magit-status)
            ))

但是下面这个函数好像不起作用,只是打开了dired而不是magit:

(defun arvid-ido-enter-magit-status ()
  "Drop into `dired' from file switching."
  (interactive)
  (setq ido-exit 'dired)
  (magit-status default-directory)
  (exit-minibuffer))

【问题讨论】:

  • 对了,我建议你在这里问 Emacs 问题:emacs.stackexchange.com
  • 在这里问 Emacs 问题没有错(StackOverflow,标签emacs)。两者都可以且有用。
  • 那么 emacs stackexchange 的意义何在?为什么要使用一种而不是另一种?
  • @Drew 我没有另外说。我刚刚提出了建议。
  • @arvixx 在 Emacs.Stackexchange 上,每个人都是 Emacs 用户,至少对于不属于 Emacs 的软件包的问题,​​应该会让您更有可能得到有用的答案。对于有关 Magit 的问题尤其如此,因为我(维护者)总是在那里回答它们(除非其他人已经回答了),而在这里我通常只每隔几周检查一次。

标签: emacs elisp dired


【解决方案1】:

Magit 已经自带了这样的功能:

(defun ido-enter-magit-status ()
  "Drop into `magit-status' from file switching.

To make this command available use something like:

  (add-hook 'ido-setup-hook
            (lambda ()
              (define-key ido-completion-map
                (kbd \"C-x g\") 'ido-enter-magit-status)))

Starting with Emacs 25.1 the Ido keymaps are defined just once
instead of every time Ido is invoked, so now you can modify it
like pretty much every other keymap:

  (define-key ido-common-completion-map
    (kbd \"C-x g\") 'ido-enter-magit-status)"
  (interactive)
  (with-no-warnings ; FIXME these are internal variables
    (setq ido-exit 'fallback fallback 'magit-status))
  (exit-minibuffer))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多