2013-08-06 1 views
5

미니 버퍼에서 탭 완성을하고 Emacs가 새 버퍼에 완료 목록을 표시하면 마우스를 사용하지 않고이 버퍼로 어떻게 전환합니까?Emacs에서 키보드로 완성 목록을 선택하려면 어떻게해야합니까?

나는 C-x o을 시도했지만, 그 중 첫 번째 버퍼로 바뀌 었습니다. 그 중 하나는 미니 버퍼에 입력되었습니다.

나는 또한 C-x b을 시도했지만 그게 command attempted to use minibuffer while in minibuffer입니다.

마지막으로 C-x <C-right>을 시도했는데, 이는 cannot switch buffers in minibuffer window입니다.

편집 : 필자는 예제에서 미니 버퍼 완성에 관해 언급했지만 정규 버퍼 내에서 완성 목록 (키보드 사용)에 액세스 할 수 있다는 것도 나에게 중요하며 작동하지 않습니다. M-v 바로 가기가 제안되었지만 시도한 다른 모든 버퍼에서 M-x에 의해 액세스되는 미니 버퍼 안에서만 작동하는 것처럼 보입니다. M-vscroll down command에 바인딩되며 완료 목록으로 전환하지 않습니다. 나는 다른 미니 버퍼에서 작동하는 것조차 보이지 않는다. 예를 들어, M-!에 의해 호출 된 쉘 명령 minibuffer에서 작동하지 않습니다.

+0

내 대답을 편집하려면 아래의 제안 사항을 참조하십시오. –

답변

2

당신 회 C-XO를 사용하거나, 기존의 버퍼 대신에 다음 단계로 전환 O M-- C-X을 사용할 수있다.

+0

첫 번째 명령이 완료 목록을 닫으므로'C-x o'가 두 번 작동하지 않습니다. 그러나 버퍼 전환 명령에 음수 인수를 적용하면 올바르게 작동합니다. 나는'C-- C-x o'를 사용합니다. 또한 첫 번째 완료시 커서가 삽입되지 않지만 버퍼의 시작 부분은 삽입됩니다. 이것은 사람들이 완성을 실제로 사용하는 방법입니까? – bug

+1

버그 : 아니요. 실제로 완성 버퍼와 직접 상호 작용하는 사람은 거의 없다고 생각합니다. 정상적인 접근법은 완성 버퍼가 시각적 인 참조로만 작동하면서 유일한 결과가 얻어 질 때까지 미니 버퍼에 타이핑하고 '탭'하여 옵션을 계속 필터링하는 것입니다. – phils

8

하면 사용할 수 Mv로 (here 문서화) 완료 버퍼로 전환하고, 제 완료에 커서를 두는 다음 미니 버퍼에서 완료를 표시하는 창을 선택하면서

이 Mv로 타이핑 목록 (완료까지 전환). 이렇게하면 명령을 사용하는 방법을 알 수 있습니다. <PageUp> 또는 <prior>도 마찬가지입니다. 또한 은 ... 다른 방법으로 창을 선택할 수 있습니다

편집 : 그것은처럼 보이는 당신을 위해 무엇을 요구하는지하는 것은 더 세계적으로 버퍼 완료로 전환 할 수있는 방법이라는 원래의 질문에 대한 귀하의 편집에 따라 . 완성 목록을 선택하는 기능 switch-to-completions이있다 - 당신은 예를 들어, 사용자가 선택한 키에 해당 기능을 결합하는 것이 좋습니다 :

예를 들어
(define-key global-map (kbd "C-x t") 'switch-to-completions) 

, 이러한 바인딩은 "쉘 명령의 완료로 전환 할 날 수 있습니다 : "에 의해 호출 M-!을 입력하고 가능한 첫 번째 완성에 커서를 놓습니다.

+0

위어가 충분히, 이것은 나를 위해 작동하지 않는 것 같습니다. (저는 Emacs v24.2.1 btw를 사용하고 있습니다.) 미니 버퍼에서'M-v'를 누르면'Beginning of buffer'가 표시되고 완료 목록을 선택하지 않습니다. – bug

+0

Odd. 'PageUp'을 누르는 것은 어떨까요? (Mac에서'fn-Up'으로) 잘 작동 할 것입니다. 'Emacs -q'와 같은 초기화 파일을 읽지 않고 Emacs를 다시 시작해보십시오. –

+0

'M-v'가 다른 함수에 묶여있을 수 있습니다. –

관련 문제