2009-08-05 2 views
42

GNU 이맥스에서 모든 버퍼를 보려면 Ctrl-x Ctrl-b을 누를 때마다 창이 분할되어 버퍼 목록이 표시되거나 이미 분할 한 경우 2 (예를 들어, 아래 창에서 쉘을 실행하게됩니다) 버퍼 목록이 다른 창에 나타납니다.이맥스 목록 버퍼 동작

내가 원하는 버퍼를 선택하고 같은 창에서 계속 작업 할 수 있도록 버퍼 목록을 활성 창에 표시하는 것입니다. Ctrl-x Ctrl-o 다른 버퍼, 버퍼를 선택 ( 입력) 및 다른 창에서 해당 버퍼를 편집 ... 나는 그것을 봤지만 봤는데 일반적인 욕망이되지 않습니다? 아무도 elispy (또는 다른) 솔루션을 가지고 있는지 궁금해?

답변

54

당신은 list-buffers보다는 buffer-menu를 호출 할 CX의 Cb를 리 바인드 할 수 있습니다 : (다른 사람에 의해 제안 된 'buffer-menu 솔루션 반대) 원래 버퍼 목록을 좋아하는 경우에

(global-set-key "\C-x\C-b" 'buffer-menu) 
+2

1, 2, ... 또는 a, b, c ...와 같은 짧은 키를 사용할 수있는 방법이 있는지 알고 싶습니다. 하나의 버퍼를 더 빨리 열 수 있습니다. AC 점프 버퍼가이를 수행 할 수 있음을 알고 있습니다. , 그러나 그것의 버퍼리스트는 buffer-menu에 mode, size 컬럼과 같은 추가 정보가 없으면 너무 간단합니다. 이 문제를 해결하면 그 점이 인정 될 것입니다. @ zimbu668 – CodyChan

13

정확하게 해결책은 아니지만 ido-mode은 버퍼와 상호 작용할 수있는 다양하고 강력한 방법을 제공합니다. C-x b은 열려있는 모든 버퍼의 목록을 보여 주며, 선택한 버퍼가 현재 창에서 열립니다.

+1

나는 왜 당신이 downvoted있어 궁금해 ... 항상 옵션을 알고있어! – hatmatrix

+0

다시 확인하는 경우에 대비하여 제안 해 주셔서 감사합니다. 나는 지금 이토의 팬이다. – hatmatrix

0

또 다른 원치 않는 해결책 : 마우스로 원하는 버퍼를 선택하지 말고 이름 입력을 완료하십시오 (키 누름을 줄이고 정확도를 높이기 위해 탭 완성 사용). 버퍼 목록이 사라지고 새 파일이 이전의 활성 창에서 열립니다. 나는이있어하지만 어디

+0

고마워요.하지만 주로 터미널에서 일하므로 대부분의 마우스가 없습니다.하지만 때로는 버퍼가 *로 시작하는지 여부도 혼란 스럽지만, 맞습니다. 탭 완성은 저를 도와 줄 것입니다. – hatmatrix

+0

이것은 나를 위해 버퍼 목록 창을 제거하지 않습니까? – sandos

1

확실하지 :

;;; Faster buffer switching 
(global-set-key [(C tab)] 'buffer-menu) 

이 Ctrl 키 탭은 현재 창에서 모든 버퍼를 표시합니다. 그런 다음 버퍼로 이동하여 Enter 키를 눌러 해당 버퍼를 방문 할 수 있습니다.

+0

고마워요 - Ctrl-tab은 이미 예약되어 있습니다 :). 그러나 버퍼 메뉴가 중요합니다. – hatmatrix

3

, 당신은이를 사용할 수 있습니다 :

(global-set-key (kbd "C-x C-b") 'my-list-buffers) 
(defun my-list-buffers (&optional files-only) 
    "Display a list of names of existing buffers. 
The list is displayed in a buffer named `*Buffer List*'. 
Note that buffers with names starting with spaces are omitted. 
Non-null optional arg FILES-ONLY means mention only file buffers. 

For more information, see the function `buffer-menu'." 
    (interactive "P") 
    (switch-to-buffer (list-buffers-noselect files-only))) 

이는 현재 창에서만 기능입니다.

+0

switch-to-buffer-other-window와 함께 다른 변형을 사용하고 있고 이미 Buffer 목록에있는 경우 특별한 동작이 있습니다. 감사. – mkiever

11

변수 same-window-regexps 만 사용자 정의하면됩니다. display-buffer은 현재 선택된 창에서 정규 표현식과 일치하는 이름의 버퍼를 표시합니다.

(당신은 "[*]Buffer List"을 추가 할 것입니다.)

내가보기 엔 http://www.geekware.de/software/emacs/에서 bs.el 추천
+0

해결 방법 제공과 달리 실제 문제 (디스플레이 버퍼 작동 방식 수정)로 바뀌므로이 방법이 가장 좋습니다. – xyzzyz

2

그것을 설치 :

(require 'bs) 
(add-hook 'bs-mode-hook 'turn-on-font-lock) 
(global-set-key "\C-x\C-b" 'bs-show) 

그것은 올바른 방법으로 버퍼와 화면 구성을 관리하므로 모든 것은 키 스트로크의 최소 숫자를 필요로합니다.

+0

감사합니다 - "올바른 길"은 당신이 기대하는 바에 달렸지, 그렇지? – hatmatrix

4

시도는 이맥스에

(ido-mode 1) 

를 추가하고,

3

가 이상하게 여기에 대한 ibuffer 답변이없는 결과를 :) 즐길 수 있습니다.내가 이맥스 사용자의 대부분을위한 표준의 변화로이 추천 할 것입니다

:

(global-set-key (kbd "C-x C-b") 'ibuffer) 

ibuffer 기본 버퍼 목록에 대한 매우 고급 교체하고, 단지 요청 정확한 동작을 제공하지,하지만 제공 다양한 기능을 제공합니다.

Emacs: help me understand file/buffer management에 몇 가지 ibuffer 필터링 및 그룹화 기본 사항을 나열했지만 자세한 내용은 설명서를 읽으십시오.

관련 문제