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


22

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

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

ありがとう、スティーブ

回答:


22

そこ GTKで「すべて選択」のための結合シンプルに:C-/

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


素晴らしい答え。なぜまだ投票していないのですか?
Rörd

7

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

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

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

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

ちなみに、Ctrl- Homeはすべてのテキストの先頭に移動するための唯一のショートカットです。たとえ小さなキーボードのモバイルデバイスにキー入力するために作業を中断する場合でもです。

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


ユーザーのEmacs味付け試みるCtrl- - xh確かに本物のemacs、ないコントロールキーシーケンスをgtk3のEmacsのモードによって理解されています。実際、いくつかのemacsショートカットのみが定義されてい/usr/share/themes/Emacs/gtk-3.0/gtk-keys.cssます。ステッカーには、サポートされているすべてのemacsショートカットを書き留める十分なスペースがあります。

状況をさらに悪化させるために、この目的のためにショートカットキーを再配置することは困難です。ご存知のように、Ctrl- aはemacsによって取得されます。しかし、すべてをCtrl- eで選択するのに慣れている最大の非英語圏グループ(中国語は表意文字を使用するため除外されます)であるHispanophonesでさえ、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の一般的な場所にこのような質問をするのが最善だと思います。


2

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にバインドする方法は見つかりませんでした。


2

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

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

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

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

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

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

select-allとのためGtkTreeViewGtkTextView

以下の場合GtkTreeViewGtkTextViewウィジェットと呼ばれる信号がありますselect-all1選択を解除するのではなく、すべてを選択するように引数を渡す必要があります。

したがって、~/.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、テキストをマークする2つの信号のシーケンスを使用できます。

繰り返しますが~/.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キーテーマを使用して)デフォルトで設定なしですべてを選択します。


1

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

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

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

これで、マクロの定義が完了しました。アクションを繰り返したい場合は、F4を押すだけです。


GTK Emacsの主要テーマは、Emacs自体と同じではありません。回答のキーバインディングはほとんど機能しません(実際にEmacsを使用している場合は、マクロの代わりにCx hを使用できます。
Rörd15年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.