태그 보관물: keymap

keymap

Emacs에서 가장 긴 알려진 키 시퀀스는 무엇입니까? 스타일 키

Qt는 Emacs 스타일의 키 바인딩을 지원 하지만 최대 4 개의 키만 지원합니다. 이 제한을 늘려야하는 이유를 밝히려면 그보다 더 많은 키를 가진 Emacs 스타일 키 바인딩의 예를 보여주는 것이 좋습니다. 이에 대한 알려진 예가 있거나 Emacs 키맵에 정의 된 긴 키 시퀀스를 프로그래밍 방식으로 찾을 수있는 방법이 있습니까?

편집 : 나는 이것이 일반적인 지식이라고 생각했지만 키 시퀀스는에서 읽은 키 집합입니다 read-key-sequence. F1 k응시자를 시험 해보고 그 명령이 명령인지 또는 관련이없는 명령인지 설명하십시오.



답변

다음 스크립트로 테스트했습니다.

(key-description
 (car
  (sort
   (let (keyseqs)
     (mapatoms
      (lambda (sym)
        (when (commandp sym)
          (let ((where (where-is-internal sym nil nil t)))
            (when where
              (setq keyseqs (append keyseqs where)))))))
     keyseqs)
   (lambda (a b) (< (length b) (length a))))))

그리고 내가 함께 얻을 가장 긴 .emacs.dIS C-x c C-x r i일부 조타 명령, 그리고있는 emacs -q나는 얻을 C-x a i l명령을 실행하는 inverse-add-mode-abbrev.


답변

어딘가에 가장 긴 것이 무엇인지 대답 할 수는 없지만 여기에 도움이 될만한 정보가 있습니다.

  1. 접두사 키에 바인딩하는 키 맵의 키에 바인딩 된 관련 명령 세트를 제공하는 라이브러리가 있습니다.

    사용자 키 등을 공동 선택하고 싶지 않기 때문에 일반적으로 이러한 접두사 키 를 (keymap ) 아래 C-x또는 other-window명령에 바인딩 합니다 .C-x 4ctl-x-4-map

  2. 이러한 키맵의 명령 그룹에도 동일한 고려 사항이 적용됩니다. 때때로 자체 키맵을 얻습니다. 그리고 재귀 적으로.

  3. 적어도 일부 사용자는 그러한 키맵을 모든 레벨에서 자신의 짧은 접두사 키로 리 바인드하거나 특정 명령을 짧은 키 시퀀스에 바인딩하려고 할 수 있습니다. 그러나 나는 분명히 도서관 자체에서 그것을하고 싶지 않습니다.

Bookmark +의C-x 4 j t . % * 명령 icicle-bookmark-file-this-dir-all-tags-regexp-other-window에 바인딩 된 상당히 긴 키 하나 (예 : 7 키 누름) 의 예입니다 .

해부:

  • C-x 4접두사 키 ( ctl-x-4-map).

  • j에 대한 모든 명령을위한 접두사 키, 책갈피로 점프 .

  • t된다 북마크 점프에 대한 모든 명령을위한 접두사 키, 태그가 어떤 식 으로든.

  • .에서 파일입니다 즐겨 찾기에 점프에 대한 모든 명령을위한 접두사 키, 현재 디렉토리 하는 태그가 어떤 식 으로든.

  • %의 것들에 대한 있습니다 즐겨 찾기에 점프에 대한 모든 명령을위한 접두사 키, 현재 디렉토리태그 regexp와 일치 당신이하라는 메시지가 표시됩니다.

  • *의 것들에 대한 있습니다 즐겨 찾기에 점프에 대한 모든 명령을위한 키, 현재 디렉토리태그 , ALL 있는 regexp와 일치 당신이하라는 메시지가 표시됩니다. 반대로 대조적으로 일부 태그는 정규 표현식과 일치하는 C-x 4 j t . % +책갈피에 사용 됩니다.

그 모두는 기존의 북마크 +에서 (그리고 그것의 일부는 BTW, Dired 규칙에 해당) j을위한 점프 명령 t을위한 태그 , .위한 현재 디렉토리 , %위한 정규 표현식 , 그리고 *위한 모든 ( +입니다 일부 ).


(아, 그리고 mkcms의 sexp @ 사용하여, 나는 수 C-x 4 j t f % *(가). 똑같이 오래 인 f의미 파일 그것은 같아요. C-x 4 j t . % *하지만 완성을위한 후보 북마크 만이 아닌 현재 디렉토리 (에있는 파일에 대한 모든 파일 책갈피이다 .).)


답변

Magit옵션을 토글 할 수 있도록 긴 시퀀스를 추가합니다. 예를 들어 로그를 요청할 때 원격 브랜치를 원하거나 원치 않는 지점을 그래픽으로 표시하려는 경우 짧거나 긴 옵션을 선택할 수 있습니다. 로그에 대한 기본 요청은 magit-status버퍼 에서 몇 번의 키 입력 이지만 더 많은 것을 추가 할 수 있습니다.

커밋, 기본 커밋을위한 두 번의 키 입력, 많은 추가 옵션이 적용됩니다.

따라서 질문이 명시되어 있습니다. 이맥을 고려하고 stock있습니까?


답변