0
我用下面的代碼,打開ANSI長期緩衝區的列表。我發現這個here。Emacs和ANSI-項:elisp的遍歷
(require 'term)
(defun visit-ansi-term()
"If the current buffer is:
1) a running ansi-term named *ansi-term*, rename it.
2) a stopped ansi-term, kill it and create a new one.
3) a non ansi-term, go to an already running ansi-term
or start a new one while killing a defunt one"
(interactive)
(let ((is-term (string= "term-mode" major-mode))
(is-running (term-check-proc (buffer-name)))
(term-cmd "/usr/local/bin/bash")
(anon-term (get-buffer "*ansi-term*")))
(if is-term
(if is-running
(if (string= "*ansi-term*" (buffer-name))
(call-interactively 'rename-buffer)
(if anon-term
(switch-to-buffer "*ansi-term*")
(ansi-term term-cmd)))
(kill-buffer (buffer-name))
(ansi-term term-cmd))
(if anon-term
(if (term-check-proc "*ansi-term*")
(switch-to-buffer "*ansi-term*")
(kill-buffer "*ansi-term*")
(ansi-term term-cmd))
(ansi-term term-cmd)))))
(global-set-key (kbd "<f2>") 'visit-ansi-term)
現在我想修改此,使得重命名緩衝區後它會記住它的名字,當我使用鍵盤快捷鍵通過更名緩存列表進行迭代。
所以如果我按[F2],並發現ANSI-長期運行時,它問我,如果我想將其重命名。我將它重命名爲BUILD。我想要一個函數並綁定到Say [F3]來遍歷打開的ansi-terms列表。
我是一個elisp的文盲。會很高興有人指出這可能會幫助我做到這一點。
謝謝。
@Tery傑克遜:謝謝,正是我一直在尋找。 – asp5 2012-04-02 23:44:43
@Tery Jackson:嗨,當我第一次嘗試這個時,我嘗試了只有兩個術語,它可以很好地工作......但是用這樣的多個術語:。 *另外20項:焦炭運行 *等20個期限:焦炭運行 *約有19期限:CHAR運行這個循環遍歷只有最近打開的緩衝區的2 ...我如何刪除這個限制?謝謝。 – asp5 2012-04-03 22:38:52
@ ASP5固定.... – 2012-04-03 23:39:40