gtk-key-theme Emacs : 전체 선택을위한 키 입력은 무엇입니까? 아닌 것 같습니다. 선택한

나는 emacs 키 스트로크를 선호하지만 select-all은 emacs 어휘 또는 적어도 emacs에 대한 gtk-key-theme의 일부가 아닌 것 같습니다. 선택한 지역을 복사하는 데 Mw가 작동하지 않습니다.

  1. select-all의 키 입력은 무엇입니까?
  2. 이 주제에 대한 주요 바인딩 맵은 어디에 있습니까?

고마워, 스티브



답변

이다 GTK에서 “모두 선택”바인딩 단순한는 :C-/

그것은 일반적인 GtkTextView 신호 로 정의되며 특별히 emacs 키 테마의 일부가 아닙니다. 그러나 그것은 잘 작동합니다. 의 대안으로 정의되어 C-a있습니다. 후자는 emacs 테마로 재 해석되지만 C-/“모두 선택”에 유효합니다.


답변

직접 수행 할 수있는 바로 가기는 없습니다.

당신과 텍스트의 끝으로 이동 할 수 있습니다 Ctrle그리고 줄을 제거 Ctrlu. 그러나 이는 GtkEntry한 줄 입력 필드 에서만 작동 합니다.

당신이 모든 것을 선택해야하는 경우 GtkTextView, 멀티 라인 편집기와 같은 제어, 당신은 부담 할 남아 있습니다 CtrlHome다음에 Ctrl+ ShiftEnd, 거의 불가능하다 내 63 키 키보드와 함께하는.

경우, 효율성 또는 모바일 장치의 키보드의 한계를 편집하는 좋은 이유 HomeEnd손이 닿지 않는 곳에있다, 당신은에 의해 얻을 수있을 것이다. “선택 – 모든”에서 “편집”메뉴가, 나쁜 생각 선택이 매핑 때문에 Altea파이어 폭스에서,
Altet의 gedit에서, Altes오픈 오피스 (심지어 그놈 통합)에서, 각 소프트웨어에서 다른 키를 일부 소프트웨어에, 더는 “선택 – 모든”편집 메뉴에서, 크롬과 같은 어떤 소프트웨어도 편집 메뉴 자체가없는 존재하지조차 함께 호출 할 수있는 하나의 숨겨진 Alte노틸러스처럼. 이 불일치는 Alt 활성화 메뉴 표시 줄의 목적을 능가하며 Windows가 아닌 다른 운영 체제도 일관성이 없습니다. 오른쪽 클릭 메뉴에도 “모두 선택”에 대한 고정 바로 가기가 없습니다. 일반적으로 응용 프로그램마다 a다를 수 있습니다 t. 각 개별 소프트웨어에서 버그 수정을 요구하는 것은 그놈과 같은 메타 프로젝트로만 수행 할 수 있지만 그놈 자체가 이러한 문제 중 일부를 생성한다는 것을 알고 있습니다 ( ‘노틸러스’의 편집 메뉴 제거는 그놈 3 결정 임). 당신은 많은 희망.

참고로, CtrlHome는 모든 텍스트의 시작 부분으로 이동하는 유일한 지름길이며 작은 키보드 모바일 장치의 키 입력 작업을 방해 할 수도 있습니다.

대답은 여기서 끝납니다. 궁금한 점이 있으면 추가 정보가 있습니다.


노련한 이맥스 사용자가 시도 할 것 Ctrlxh: 정통 참으로 이맥스,하지만 컨트롤 키 시퀀스는 gtk3의 이맥스 모드로 이해된다. 실제로, 소수의 이맥스 단축키 만 정의되어 있습니다 /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css. 지원되는 모든 emacs 단축키를 적을 수있는 충분한 공간이 스티커에 있습니다.

상황을 더욱 악화시키기 위해이 목적으로 바로 가기 키를 재배치하기가 어렵습니다. 아시다시피 Ctrla이맥스에 의해 수행된다. 그러나 Ctrl-로 모든 것을 선택하는 데 사용되는 영어를 사용하지 않는 가장 큰 그룹 (중국어는 표의 문자를 사용하지 않기 때문에 제외)의 Hispanophones조차도 emacs가 사용 e하는 키보드 단축키를 찾을 수 있습니다. 을 제외 e하고 QWERTY 키보드의 왼쪽 절반에는 이미 잘 수용된 목적이없는 다른 키가 없습니다. Google 번역은 SHIFT 키를 단독으로 누르면 ‘전체 선택’으로 사용되지만 다른 소프트웨어 나 다른 Google 제품은이 설정을 따릅니다.

줄을 비우려면 Ctrl-를 사용하십시오 u. 이것은 X SELECTION (중간 마우스 버튼으로 잡아 당기는 것)을 덮어 쓰지 않는 이점이 있습니다. 이것은 gtk3의 emacs 모드의 유일한 설정이다 : 실제 emacs에서는 자체적으로 아무것도하지 않는다; 작성한 Readline (bash는, MySQL의 등)에 그것의 카운터 파트하면서, 라인의 태초 커서에서 삭제 모든 것을 가정한다 Ctrlk라인의 끝으로 커서에서 모든 것을 삭제합니다.

일부는 키보드를 사용하여 임의의 선택을 위해 어딘가에 표시를 남길 것을 제안 할 수 있습니다. 당신도 찾을 수는 CtrlSPACE텍스트의 앵커를 설정하도록 구성 이맥스 모드에 있습니다. 많은 다른 소프트웨어 (특히 표의 문자 입력 방법 및 일부 다른 편집기 소프트웨어의 자동 완성)와 충돌하더라도 설정 한 앵커를 사용하기위한 단축키는 없습니다.


Ubuntu는 공식적으로 emacs 편집 모드를 지원하지 않으며 UI로 수행 할 수없는 다른 UI 구성도 없습니다. 이러한 요구에 대한 버그 보고서는 우선 순위가 낮습니다. 이런 이유로 나는 수퍼 유저와 같은 리눅스의 일반적인 장소에 그런 질문을하는 것이 가장 좋다고 생각한다.


답변

emacs 바인딩은 /usr/share/themes/Emacs/gtk-2.0-key/gtkrc에 지정되어 있습니다. ~ / .config / gtk-3.0 / gtk.css에 바인딩을 추가 할 수도 있습니다.

모두 다음과 같이 선택하십시오.

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

그래도 Cx h에 바인딩하는 방법을 찾지 못했습니다.


답변

기존 키 바인딩보기

GTK3 응용 프로그램의 경우 Emacs GTK 키 테마의 바인딩을 로컬에서 /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css또는 아마도 ) 또는 GitHub 의 GTK git 저장소에서 볼 수 있습니다 (디트로이트가 수정했을 수 있으므로 로컬 파일과 반드시 ​​같을 필요는 없음) .

이 파일을 읽는 동안 위젯의 의미를 알고 있어야합니다.

(링크 된 각 사이트의 상단에있는 이미지를보십시오.)

모두 선택을위한 키 바인딩 추가

select-all대한 GtkTreeViewGtkTextView

내용 GtkTreeViewGtkTextView위젯라는 신호가있다 select-all. 1선택 해제하지 않고 모두 선택하도록 인수를 전달해야합니다 .

따라서 다음 ~/.config/gtk-3.0/gtk.css과 같이 편집 하고 추가하십시오.

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

의 경우 GtkEntry에는이없는 select-all신호. 대신 move-cursor텍스트를 표시하는 두 개의 신호 시퀀스를 사용할 수 있습니다 .

다시 한 번 다음 ~/.config/gtk-3.0/gtk.css과 같이 편집 하고 추가하십시오.

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Firefox

그런데, 파이어 폭스에서 Alta(이맥스 GTK 키 테마를 사용) 구성하지 않고 기본적으로 모든 나를위한 선택.


답변

지역의 모든 텍스트를 선택하려면 간단한 매크로를 정의하는 것이 좋습니다. 매크로 작성을 시작하려면 F3 을 누르 십시오 . 그런 다음 입력

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

그런 다음 M -w 를 복사 (원격 유닉스 시스템에서 로컬 Windows로 복사하기 위해 일반적으로 수행)에 사용하고 F4 를 눌러 매크로 정의를 완료합니다.

이제 매크로 정의가 완료 되었습니다. 액션을 반복하고 싶을 때 F4 를 누르 십시오 .


답변

http://www.emacswiki.org/emacs/EmacsNewbieKeyReference#toc8 은 당신이 찾고있는 것처럼 보입니다 (마커 설정 후 Cx h)

또한 ‘페이지’또는 버퍼 등을 원하는지 여부에 따라 다릅니다.