디렉토리에서 디렉토리가 위로 이동하기 위해“^”다음에“space”를 입력하지 않는 방법은 무엇입니까?


9

^dired( "Up directory") 에서 상위 디렉토리로 이동하기위한 키 바인딩입니다 .

그러나, 년 Gnu EmacsWindows 7 Professional 64-bit내 독일어 키보드 레이아웃, "^"를 입력하기에 충분하지 않습니다하지만 난 키 - 바인딩 작업을하기 위해 나중에 공백을 입력해야합니다.

스페이스 바를 누르지 않고 "^"만 사용하여 위쪽으로 이동하지 않도록 키 바인딩을 다시 정의하려면 어떻게해야합니까?


C-h k ^<space> 보고

^`dired + .el '에있는 대화식 컴파일 된 Lisp 함수 인 dired-up-directory 명령을 실행합니다.

^,에 바인딩됩니다.

(디렉토리 및 디렉토리 옵션 OTHER-WINDOW)

현재 디렉토리의 상위 디렉토리에서 Dired를 실행하십시오. 이 버퍼 또는 다른 버퍼에서 상위 디렉토리를 찾으십시오. 필요한 경우 버퍼를 만듭니다.


4
이 동작은 고정 키처럼 들리고 us-intlLinux 와 같은 특정 키맵에 내장되어 있으므로 OS 문제 입니다.
wasamasa 2016 년

와 사마와 같은 소리가납니다.이 경우 명령을 다른 키에 바인딩하는 방법을 묻는 것이 좋습니다.
앤드류 스완

@AndrewSwann : 아마도 아닐 수도 있습니다. 확인하는 것이 좋습니다. 그러나 microsoft-windows태그가 적절 하다고 가정하면 Linux 동작은 여기와 관련이 없습니다 .
Drew

이 검사의 가장 간단한 방법은 동일한 동작은 입력하여 다른 프로그램에 적용되는지 여부 찾고있을 것이다 ^notepad.exe.
wasamasa 2016 년

3
나는 당신이 몇 가지 옵션을 가지고 있다고 생각합니다 : (1) ^는 죽은 키가 아닌 다른 키보드 레이아웃을 사용하십시오-이것은 emacs가 아닌 OS 레벨에서 이루어집니다. 또는 (2) 다른 키를 바인딩 dired-up-directory하여 사용하십시오. 대신, 또는 (3) 문제와 함께 살고 ^ 다음에 공백을 입력하십시오. 나는 (3) 자신과 함께 갈거야,하지만 난 그것을 자극 찾을 수 있습니다.
Harald Hanche-Olsen 2016

답변:


11

키보드 설정에서 ^ 키는 아마도 "죽은 키"일 것입니다. 다른 캐릭터를 생성하기 위해 다른 키와 함께 사용되는 키입니다. 이 경우 악센트 부호 문자를 생성합니다. ^ e는 ê를 생성하고 ^ a는 â를 생성합니다.

emacs에만 국한되어서는 안됩니다 : 모든 응용 프로그램에서 ^를 누르고 화면에서 실제 ^를 생성해야한다고 생각합니다.

이 문제를 해결하려면 다른 키보드 레이아웃을 사용하면됩니다. Windows 환경에서 독일어 레이아웃의 경우 /superuser/280005/how-to-make-and-non-dead-keys-on-windows-7- with-german-keyboard-layout , 이것이 옳은 일임을 바라고 있습니다.


0

^Dired에서 의 바인딩을 로 확인 dired-up-directory했으므로 어떤 명령을 호출해도 문제가되지 않습니다. (을 사용 C-h k ^하고 명령이 권장되는지 알려주십시오.)

태그를으로 태그했습니다 microsoft-windows. 사용중인 MS Windows 버전을 언급 할 수 있습니다. Windows 7 64 비트에서는이를 볼 수 없습니다.

runemacs -Qinit 파일 없이을 사용하여 Emacs를 시작하면 동일한 동작을 보 입니까? 그렇다면 여기에서 요리법을 알려주십시오 runemacs -Q. 이 경우 이맥스 버그 일 수 있습니다.

문제가 보이지 않으면 emacs -Q원인 파일을 좁힐 때까지 init 파일을 재귀 적으로 이등분하십시오. 명령 comment-region을 사용 C-u하여 코드 영역을 주석 처리 할 수 있습니다 ( 영역 주석 처리를 해제하는 데 사용 ).

범인 코드를 찾으면 더 자세히 조사 할 수 있습니다. 또는 추가 도움이 필요한 경우 찾은 내용을 여기에보고 할 수 있습니다. 최상의 도움을 받으려면 최대한 구체적으로 작성하십시오.

키 재정의에 관해서는 : 그것은 문제가 아닙니다- 키 설명이있는 (define-key dired-mode-map SOME-KEY 'dired-up-directory)곳을 사용하십시오 SOME-KEY. 예를 들어, 명령을에 바인딩하려면 C-o다음을 사용할 수 있습니다.

(define-key dired-mode-map (kbd "C-o") 'dired-up-directory)

귀하의 의견 및 기타 사항 후에 업데이트되었습니다-

에서와 동일한 내용이 표시되므로 emacs -Q문제는 MS Windows 설정 (예 : Emacs 외부) 또는 Emacs 자체의 버그입니다.

그러나 다른 의견에 따르면 MS Windows에서는 문제가 고정 키 인 것으로 보입니다. 시도 고정 키를 해제 .


3
이것은 거의 확실하게 요점입니다. @wasamasa의 의견은 완전히 관련이 있습니다. 좀 더 정교하게 설명하자면 요점은 ^가 고정되어 있기 때문에 사용자가 공백을 입력 할 때까지 emacs는 키 누르기 이벤트조차 보지 못한다는 것입니다.
Harald Hanche-Olsen 2016

자세한 답변 주셔서 감사합니다! 예, runemacs.exe -Q동일합니다. 나중에 <space> 또는 다른 키를 입력하면 버퍼에 ^를 입력하면 문자 만 입력됩니다. dired모드 와 동일 ^1 <space>하게 위로 올라 가야합니다. 의 경우 define-key:이 바인딩 용으로 ^ 키를 사용하고 싶지만, <공간>을 기다리고 그것을 피할 수있는 방법은 무엇입니까?
대부분 무해

@Harald : 어떻게해야합니까?
대부분 무해
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.