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


16

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

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

배경

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


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