我有2個窗口,一個是緩衝區列表,當我使用n時,如何在其他窗口的緩衝區列表中顯示緩衝區,以及p導航到緩衝區列表中? 非常感謝。如何在焦點位於緩衝區列表中的其他窗口中實時顯示緩衝區內容
回答
如果我理解了正確的問題,答案只是在緩衝區菜單中使用C-o
。顯示您在另一個窗口中所在行的緩衝區,但不會選擇該緩衝區。也就是說,它不會將輸入焦點移動到該緩衝區的窗口。緩衝區列表保留了輸入焦點,因此您可以在不同的行上繼續使用C-o
,以顯示不同的緩衝區。
如果您的意思是一個Emacs窗口,當您說「frame」時,請參閱上文。即使緩衝區位於不同的框架上也是如此,有以下警告:某些窗口管理器(包括MS Windows)會將輸入焦點更改爲創建的新框架。因此,例如,如果您有非nil
pop-up-frames
(以便使用單獨的框架顯示緩衝區),並且您選擇顯示的緩衝區(使用C-o
)尚未顯示在其他某個框架中,則顯示它不僅爲它創造了一個新的框架,而且將焦點轉移到了新的框架上。如果緩衝區在另一個幀中已經可見,那麼C-o
只會提高該幀。
緩衝區列表顯示中當前沒有鍵限制,以便(a)將光標向下或向上移動到下一個或上一個緩衝區行,並(b)調用顯示在目標緩衝線。但是你可以很容易地定義這樣的命令,並將其綁定到一個鍵:
(defun show-next (arg)
"Show next line's buffer in another window."
(interactive "p")
(next-line arg)
(Buffer-menu-switch-other-window))
(defun show-previous (arg)
"Show previous line's buffer in another window."
(interactive "p")
(previous-line arg)
(Buffer-menu-switch-other-window))
(define-key Buffer-menu-mode-map "\M-n" 'show-next)
(define-key Buffer-menu-mode-map "\M-p" 'show-previous)
這裏是我的原型在dired緩衝區此功能。它在訪問後殺死一個緩衝區。
這是我喜歡ranger文件管理器的一個功能,它在探索目錄時非常方便。
(setq show-next-current-buffer nil)
(defun show-next()
(interactive)
(next-line 1)
(dired-find-file-other-window)
(if show-next-current-buffer (kill-buffer show-next-current-buffer))
(setq show-next-current-buffer (current-buffer))
(other-window 1)
)
(defun show-previous()
(interactive)
(previous-line 1)
(dired-find-file-other-window)
(if show-next-current-buffer (kill-buffer show-next-current-buffer))
(setq show-next-current-buffer (current-buffer))
(other-window 1)
)
(define-key dired-mode-map "n" 'show-next)
(define-key dired-mode-map "p" 'show-previous)
編輯:我寫了一個小的方式來啓用/禁用輕鬆此功能。請參閱https://gitlab.com/emacs-stuff/my-elisp/blob/master/dired-show.el,並將其融入您的需求。
這在dired模式下非常有用。 – godblessfq 2014-10-17 18:10:30
- 1. 在最近Emacs的其他窗口中顯示緩衝區
- 2. 如何過濾緩衝區列表以僅顯示在窗口中不可見的緩衝區
- 3. 窗口內的中心Emacs緩衝區
- 4. 如何恢復emacs緩衝區列表中的緩衝區?
- 5. 如果在其他窗口中打開緩衝區,Emacs切換到緩衝區(Cx b)將更改窗口
- 6. OpenglES緩衝區的顯示內容
- 7. 在緩衝區列表視圖中增加「緩衝區」列寬
- 8. 如何在新窗口中顯示「任何」緩衝區
- 9. 緩衝區位於何處?
- 10. 如何使*緩衝區列表*出現在其他窗口的下方?
- 11. C++中的位緩衝區
- 12. 打印緩衝區內容
- 13. 在調試監視窗口中查看緩衝區內容
- 14. 將緩衝區內容複製到另一個緩衝區
- 15. 在緩衝區中存儲內容
- 16. 關於python中的緩衝區接口
- 17. 在Emacs中拆分窗口 - Tabbar只顯示活動緩衝區
- 18. 在預覽窗口中打開新緩衝區時佔用Vim預覽窗口的自動關閉緩衝區
- 19. 使用Node.js中其他緩衝區的一部分創建新緩衝區
- 20. SQL Server緩衝區緩存內容
- 21. XEmacs緩衝區選項卡不顯示所有緩衝區
- 22. 關閉緩衝區後顯示Emacs緩衝區
- 23. PhoneGap在終端中顯示緩衝區
- 24. 當dest緩衝區小於src緩衝區時strcpy
- 25. 防止Emacs切換到緩衝區其他窗口從調整其他窗口
- 26. 緩衝區溢出緩衝區長度
- 27. 幀緩衝區/顏色緩衝區?
- 28. 區分Vim中的隱藏緩衝區和活動緩衝區
- 29. 在緩衝區
- 30. 隊列緩衝區中的點擊OpenAL
我不知道一個簡單的解決方案,因爲目標框架需要被識別爲可能有兩個以上的框架。我想可能有一個條件,如果只有兩個幀存在,然後使用其他幀。這是一個控制顯示幀緩衝區的複雜方法的鏈接 - 我在過去一年左右成功地使用了這種方法:http://stackoverflow.com/a/18371427/2112489 – lawlist 2014-10-16 18:16:43
上述評論假定原始海報在經驗豐富的Emacs用戶所使用的相同環境中使用術語「frame」。如果原始海報的含義是使用術語「窗口」作爲經驗豐富的Emacs用戶理解術語的含義,那麼需要澄清問題。演示差異的例子包括但不限於以下功能:'find-file-other-window'; '找到文件 - 其他 - frame'; '交換機到緩衝另一window'; '交換機到緩衝另一frame'。 – lawlist 2014-10-16 18:25:46
注意:'buffer-menu-mode'具有工具欄條目,其中包括各種功能以處理緩衝區列表中顯示的文件 - 例如'o' - *在其他窗口中選擇*。對於喜歡禁用/不可見工具欄的用戶,以下鍵盤和鼠標快捷鍵組合會顯示類似於工具欄的彈出菜單:'C-down-mouse-3' – lawlist 2014-10-16 18:43:37