web-dev-qa-db-ja.com

gtk-key-theme Emacs:select-allのキーストロークは何ですか?

私はemacsキーストロークを好みますが、select-allはemacsボキャブラリー、または少なくともemacsのgtk-key-themeの一部ではないようです。 M-wは、選択した領域をコピーするように機能していません。

  1. 全選択のキーストロークは何ですか?
  2. このテーマのキーバインディングマップはどこにありますか?

ありがとう、スティーブ

22
Chelmite

そこにisgtkの「すべて選択」の簡単なバインディング:C-/

一般的な GtkTextView signal として定義されており、特にemacsキーテーマの一部ではありません。しかし、それはうまく機能します。 C-aの代替として定義されています。後者はemacsテーマによって再解釈されますが、C-/は「すべて選択」に対して有効なままです。

21
Victor

直接行うための単一のショートカットはありません。

あなたはテキストの最後に行くことができます Ctrl-e 行を削除します Ctrl-u。ただし、これはGtkEntry、つまり1行の入力フィールドでのみ機能します。

GtkTextView(マルチラインエディターのようなコントロール)ですべてを選択する必要がある場合は、面倒な作業を行う必要があります。 Ctrl-Home に続く Ctrl+Shift-End、これは私の63キーキーボードではほとんど不可能です。

編集効率またはモバイルデバイスのキーボードの制限の正当な理由により、 Home そして End 手の届かないところにある場合は、通り抜けなければなりません。 [編集]メニューから[すべて選択]を選択するのはお勧めできません。 Alt-e - a Firefoxで、 Alt-e - t geditで、 Alt-e - s OpenOffice(gnome-integrationを含む)、各ソフトウェアには異なるキー、および一部のソフトウェアでは、クロムなどの編集メニューに「すべて選択」はありません。また、一部のソフトウェアでは、編集メニュー自体さえありません。隠されたものでさえ呼び出されない Alt-e、ノーチラスのような。この矛盾は、Altでアクティブ化されたメニューバーの目的に反するものであり、Windowsでさえも、オペレーティングシステムが矛盾することはありません。右クリックメニューでさえ、[すべて選択]の固定ショートカットはありません-通常は a しかし、することができます t アプリケーションからアプリケーションへ。個々のソフトウェアでバグ修正を要求するには、GNOMEのようなメタプロジェクトを使用する必要がありますが、GNOME自体がこれらの問題のいくつかを引き起こしたことを知っています(「nautilus」の編集メニューの削除はGNOME 3の決定です)あなたは多くの希望。

サイドノートで、 Ctrl-Home は、すべてのテキストの先頭に移動する唯一のショートカットです。小さなキーボードのモバイルデバイスでキー入力する作業が中断される場合もあります。

答えはここで終わりです。好奇心が強い人のために、追加情報があります。


熟練したemacsユーザーが試みる Ctrl-x-h:確かに本物のemacsですが、gtk3のemacsモードでは制御キーシーケンスは理解されません。実際、少数のemacsショートカットのみが定義されています-/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css;を覗いてください。ステッカーには、サポートされているすべてのemacsショートカットを書き留める十分なスペースがあります。

状況をさらに悪化させるために、この目的のためにショートカットキーを再配置することは困難です。あなたが知っているように、 Ctrl-a emacsによって取得されます。しかし、英語を母国語としない最大のグループであるヒスパノフォン(表意文字を使用しているため中国語を除く)でさえ、 Ctrl-e、emacsがキーボードショートカットを取得することもあります。除く e、QWERTYキーボードの左半分には、すでに十分に受け入れられている目的のない他のキーはありません。 Google翻訳では、「すべて選択」として単独で押すとSHIFTキーが使用されますが、他のソフトウェアや他のGoogle製品はこの設定に従いません。

行を空にするには、次を使用します Ctrl-u。これには、X SELECTION(マウスの中ボタンでヤンクするもの)を上書きしないという利点があります。これは、gtk3のemacsモードのみのユニークな設定です。実際のemacsでは、それ自体では何もしません。 readline(bash、mysqlなど)では、カーソルから行の先頭までのすべてを削除することになっていますが、 Ctrl-k カーソルから行末までのすべてを削除します。

キーボードでランダムに選択するためにどこかにマークを残すことを提案する人もいるかもしれません。また見つけるかもしれない Ctrl-SPACE テキストにアンカーを設定するように構成されたemacsモードです。他の多くのソフトウェア(特に表意文字の入力方法、および他のエディターソフトウェアの自動補完)と競合しますが、設定したアンカーを使用するショートカットキーはありません。


Ubuntuは公式にemacs編集モードをサポートしておらず、UIで実行できない他のUI設定もサポートしていません。このようなニーズに関するバグレポートは、優先度が低いとマークされています。このため、Linuxの一般的な場所にそのような質問をするのが最善だと思います。スーパーユーザー。

7
Tankman六四

既存のキーバインディングを表示する

GTK3アプリケーションの場合、Emacs GTKキーテーマのバインディングをローカルで、おそらく/usr/share/themes/Emacs/gtk-3.0/gtk-keys.cssで)、または GitHub (必ずしも等しくない)のGTK gitリポジトリで表示できます。ディストリビューションが変更した可能性があるため、ローカルファイル)。

このファイルを読むときは、ウィジェットの意味に注意する必要があります

  • GtkTreeView
  • GtkTextView、
  • GtkEntryおよび
  • GtkMenu。

(リンクされた各サイトの上部にある画像をご覧ください。)

すべてを選択するためのキーバインディングの追加

GtkTreeViewおよびGtkTextViewselect-all

GtkTreeViewおよびGtkTextViewウィジェットの場合、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信号はありません。代わりに、テキストをマークする2つの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

ところで、Firefoxでは Alt-a Emacs GTKキーテーマを使用して、設定なしでデフォルトですべてを選択します。

2
Mekeor Melire

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) };

ただし、C-x hにバインドする方法は見つかりませんでした。

2
emacser

リージョン内のすべてのテキストを選択する場合は、そのための単純なマクロを定義することをお勧めします。 Fを押して、マクロの書き込みを開始します。次に入力

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

次に、コピーにM -wを使用し(これは通常、リモートUNIXシステムからローカルWindowsにコピーするために行います)、F4を押してマクロの定義を終了します。

これでマクロの定義が完了しました。アクションを繰り返したい回数だけF4を押してください。

1
Prashanth R