我一般都在使用ido-switch-buffer
,但有时当候选人太多时,
helm-buffers-list
更可取.但是打破偶像,召唤掌舵并重新输入丢失的信息是一件麻烦事.
所以我编写了这段代码,它直接在helm中重用ido中输入的信息:
(require 'helm-buffers) (defun switch-to-helm-buffers-list () "Emulate `helm-buffers-list' call with ido contents as initial input." (interactive) (let ((str (minibuffer-contents-no-properties))) (helm :sources '(helm-source-buffers-list helm-source-ido-virtual-buffers helm-source-buffer-not-found) :buffer "*helm buffers*" :keymap helm-buffer-map :truncate-lines t :input str) ;; (ido-exit-minibuffer) )) (add-hook 'ido-setup-hook (lambda() (define-key ido-buffer-completion-map "\C-i" 'switch-to-helm-buffers-list)))
一个问题是ido留在迷你缓冲区中.当我ido-exit-minibuffer
之前添加一个电话时helm
,它没有被调用.当我在之后添加它时,它会重置窗口配置.我怎么解决这个问题?