접두사 키로 Cx 또는 Cc를 사용하는 것에 관한 협약


16

사용에 대한 규칙은 무엇입니까 C-x, C-c또는 M-같은 접두사 키는?

예를 들어 : C-x버퍼를 저장하거나 방문하기위한 등입니까? 가 C-c텍스트 편집, 등?

배경

어리석은 질문 일 수도 있습니다. 스페인어 키보드를 사용하고 영어 (QWERTY) 키보드에 공통적 인 키 바인딩을 재정의하기도합니다. 예를 들어 : shell 명령은 바닐라 이맥스에 바인딩됩니다 M-!. 나는에 바인딩 M-¡있기 때문에, 대신 M-!이다 M-shift-1내가 쉽게 누를 수없는. 이런 종류의 변경을 할 때 재정의하는 규칙이 있는지 궁금합니다.


M-x은 "확장 된 명령을 실행, 이것은 당신이 이맥스에서 대화 형으로 수행 할 수있는 정교한 물건을 많이가는 관문이며 그것은 당신이 이름으로 어떤 Elisp 기능을 실행할 수 있습니다"입니다. 않습니다 C-cC-x같은 설명을하지?
피노키오

답변:


21

자신이 사용하는 바인딩 키에 대해 이야기하는 경우 규칙입니다. 원하는 키를 바인딩 할 수 있습니다.

이미 바인딩 된 키를 바인딩하지 않으려면 C-c뒤에 문자를 사용하십시오. 이러한 모든 키는 사용자를 위해 예약되어 있습니다 (다음 참조).


다른 사람이 사용하기 위해 작성한 코드 (예 : 라이브러리)의 바인딩 키에 대해 이야기하는 경우 규칙 (컨벤션)이 여기에 설명되어 있습니다. Elisp 매뉴얼의 node Key Binding Conventions .

요청한 내용과 관련된 주요 규칙은 C-c다음 과 같습니다.

  • C-c LETTERLisp 프로그램에서 키로 정의하지 마십시오 . C-c대문자와 소문자 로 구성된 시퀀스 는 사용자를 위해 예약되어 있습니다. 이들은 사용자를 위해 예약 된 유일한 시퀀스이므로 차단하지 마십시오.

  • C-c제어 문자 나 숫자 로 구성되는 시퀀스 는 주요 모드 용으로 예약되어 있습니다.

  • 이루어진 시퀀스 C-c다음은 {, }, <, >, : 또는 ;또한 주요 모드를 위해 예약된다.

  • C-c다른 ASCII 문장 부호 또는 기호 문자 로 구성되는 시퀀스 는 부 모드에 할당됩니다. 메이저 모드에서 그것들을 사용하는 것은 절대적으로 금지되지는 않지만 그렇게하면 메이저 모드 바인딩이 마이너 모드에 의해 때때로 어두워 질 수 있습니다.

에 관한 협약 은 없습니다C-x . 그러나 명시 되지 않은 규칙 또는 좋은 조언 / 연습은 다음과 같습니다. 기존의 일부 표준 Emacs 바인딩 (즉, 타사 라이브러리를로드하지 않고 배포 된 Emacs에서 제공하는 바인딩) 을 대체 하는 경우 혼동 될 수 있습니다. 코드의 일부 사용자를 귀찮게하십시오.


다음과 같은 방법으로 Emacs에서 해당 문서를 찾을 수 있습니다.

  1. C-h i, 문서 브라우저 인 Info를 엽니 다.
  2. m el TAB RET대한 m ENU ISP ( TAB전체로), 아니면 그냥 클릭 Elisp마우스로 링크를.
  3. key bi TAB을 입력 한 다음 n TAB RET로 완료하십시오 Key Binding Conventions.

또는 iElisp 매뉴얼 내에서 색인 입력을 완료 할 수 있습니다 .

  1. C-h i m el TAB RET.
  2. i key bi TAB,이 key binding두 가지 가능성 을 완성 하고 보여줍니다 : key bindingkey binding, conventions for. 초를 입력 , TAB한 다음 RET수락하려면 입력하십시오.

C-c사용자 명령 에 바인드 하고 글자를 쓰려면 규칙을 따르는 것이 좋습니다 . 그렇게하면 (거의) 이미 설치된 주 모드에서 또는 나중에 언젠가 설치 될 다른 바인딩을 무시하지 않을 수 있습니다.
Tobias

1
@Tobias : 무슨 말인지 잘 모르겠습니다. 무엇보다 낫습니까? 타사 라이브러리에서 + LETTER를 바인딩하지 않는 것을 포함하여 모든 키 바인딩 규칙을 따라야 C-c합니다.
Drew

답의 첫 문장에서 개인 사용에 대한 엄격한 규칙이 없다고 올바르게 진술했습니다. 그럼에도 불구하고 내가 처음 언급 한 이유 때문에 사용자 키 바인딩에 대한 규칙을 따르는 것이 좋습니다. 어쩌면 첫 번째 섹션 의 모든 것이 규칙 아래에 메모를 추가 할 수 있습니다 . 그게 내가하고 싶은 전부 야, 드류 안부 인사
Tobias

3
@ Tobias : 나는 당신이 생각하는 것을 추가했습니다; 감사. 그러나 키 바인딩과 관련하여 사용자가 따라야하는 규칙 은 없습니다 . "사용자 키 바인딩을위한 규칙" 당신이 말하는 사용자를위한 규칙하지 않습니다. 이들은 다른 사람들이 사용할 Lisp 코딩 규칙입니다. (나는 당신이 이것을 알고 있음을 알고 있습니다. 다른 사람이 이것을 읽고 싶다면 명확하게하고 싶습니다.)
Drew

제어 캐릭터 란 무엇입니까?
Didier A.

2

@Drew의 답변 은 훨씬 미묘하고 상세합니다.

이것은 완벽하게 유효한 질문입니다! 접두어가 사용자 정의 키 바인딩에 사용되는 반면에 emacs 자체에 의해 예약 된다는 규칙이 있습니다.C-xC-c

한 번 봐 가지고 , 특히 "예약 키"절을 참조하십시오. 나는이 정보가 emacs 매뉴얼에도 언급되어 있다고 확신하지만, 지금은 그것을 찾을 수 없습니다. 규칙은 emacs lisp 매뉴얼 의이 섹션에 설명되어 있습니다.


1
C-c추가 수정자가없는 문자 (소문자 또는 대문자)가 사용자에게 예약되어 있습니다. 로 시작하는 다른 많은 키 시퀀스 C-c는 주요 모드, 특히 두 번째 키 입력이 제어 키에 의해 수정되는 키 모드 용으로 예약되어 있습니다.
Tobias

물론 그렇습니다. @Drew는이 질문에 훨씬 더 잘 대답했습니다.
Panagiotis Koutsourakis

M-x은 "확장 된 명령을 실행, 이것은 당신이 이맥스에서 대화 형으로 수행 할 수있는 정교한 물건을 많이가는 관문이며 그것은 당신이 이름으로 어떤 Elisp 기능을 실행할 수 있습니다"입니다. 않습니다 C-cC-x같은 설명을하지?
피노키오
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.