タグ付けされた質問 「keymap」

キーマップは、さまざまなキーシーケンスのキーバインディングを指定するLispデータ構造です。単一のキーマップは、個々のイベントの定義を直接指定します。キーシーケンスが単一のイベントで構成される場合、キーマップでのそのバインディングは、そのイベントに対するキーマップの定義です。

1
C- [を実際にバインドする方法(今回は本当に深刻に)
C-[何かにバインドし、すべてのM-(メタ)バインディングをめちゃくちゃにしない方法はありますか? この質問が出てくるのは初めてではありません。残念ながら、前のスレッドで提供された唯一のソリューションは、a) Linux固有、b) Emacsとは何の関係もない外部ツール(これもLinux固有)を必要とします。同様に、Emacs がシーケンスを取得する前にOS XでKarabinerのようなものを使用してC-[シーケンスを盗むこともできましたが、これは不格好で高価です。 それが翻訳を主張しているEmacsのであることを考えるC-[にESC、C-iにTAB私は非常にこれらの関係を壊し、バック貴重なキーシーケンスを取得したいと思い他の人と、おそらく。最近、私はこの問題に全速力で取り組み、静かで無邪気なsmartparensモードを非難しました。 関与することを可能な解決策function-key-mapとkey-translation-mapして、ここで議論したが、悲しいかな、それのいずれかもはや作品かは、最初の場所(または私が何かを間違ってやっている)で動作しませんでした。それは正しい方向に進んでいたと思います。

2
異なる言語のキーボードレイアウトを切り替える方法は?
Q:非標準のキーボードレイアウトを使用しているときに、異なる言語の入力方法を切り替えるにはどうすればよいですか? 2つの異なる言語でテキストを編集する必要があります。もちろん、テキストをバッファに挿入する場合を除いて、2つの言語間でキーバインドを使用できるようにしたいと思います。toggle-input-method(C-\)で代替言語を選択できるはずです。 これまでのところ、ほとんど問題ありません。 ここに問題があります。私は、OSレベルで(つまり、setxkbmap)設定した英語のDvorakレイアウトを使用します。とき私はtoggle-input-method、私はQWERTYレイアウト(米国での標準)を有していたが、私はドヴォルザークの上だからちんぷんかんぷんのように出てくる場合は、テキストIインサートは正しいだろう。(FWIW、レイアウトを標準のUSに切り替えると、正常に動作します。) それで、私がDvorakを使用していることをEmacsに通知してtoggle-input-method、友人が私のキープレスを他の言語の正しい文字に変換する方法を教えてください。


4
まだロードされていないキーマップにキーをバインドする方法は?
use-packageインストールしたパッケージを管理しbind-keyたり、好きなカスタムキーにアクションを割り当てたりするために使用しています。 デフォルトのEmacsキーバインドのほとんどをオーバーライドします(たとえば、にC-nなるM-k、にC-pなるM-i)が、キーバインドスキームをオーバーライドする他のモードでも問題ありません。ただし、キーバインドを永続化したい場合もあります。私がしたいM-kデフォルトのGnusやヘルムよりも他の平均何かを、。 ただし、キーマップが存在しない場合はバインドを追加できないため(use-packageパッケージの読み込みが遅れることがあるため)、Emacsの起動時にすべてが競合します。たとえば、(void-variable helm-map)HelmとGnusがまだ完全にロードされていないため、次のコマンドはエラーをスローします(例:)。 (bind-key "M-Y" 'helm-end-of-buffer helm-map) (bind-key "M-k" 'helm-next-line helm-find-files-map) (bind-key "M-s" 'other-window gnus-summary-mode-map) すべてのuse-package呼び出しが1つのファイルにありbind-key、カスタムキーバインドの別のファイルにあります。use-packageカスタムキーバインドスキームをスタンドアロンパッケージとして公開する可能性があるため、バインディングを呼び出しに含めたくありません。私のスキームをインストールする誰かにHelmとGnusのローカルキーバインドもオーバーライドさせたい場合はどうなりますか? bind-keyパッケージを最近ロードした場合でもすべてのキーが設定され、すべてのキー設定が1つのファイル内にあるように、を使用してモードローカルキーバインドを管理するにはどうすればよいですか?

1
キー「コード」からキーボードの同等性に戻るにはどうすればよいですか?
次のドキュメントがあります。 mc/keymap is a variable defined in `multiple-cursors-core.el'. Its value is (keymap (67108903 . mc-hide-unmatched-lines-mode) (27 keymap (118 . mc/cycle-backward)) (22 . mc/cycle-forward) (return . multiple-cursors-mode) (7 . mc/keyboard-quit)) Documentation: Keymap while multiple cursors are active. Main goal of the keymap is to rebind C-g and <return> to conclude multiple …

3
Shift- <backspace>をバインドできないのはなぜですか?
私のシステムはdebian wheezyです。私は次のことを試みました (global-set-key (kbd "S-&lt;backspace&gt;") 'evil-shift-left-line) (global-set-key (kbd "&lt;S-backspace&gt;") 'evil-shift-left-line) (define-key global-map [S-backspace] 'evil-shift-left-line) 私が欲しいのは邪悪な挿入モードです。Backspaceキーを4回押す代わりに、1つのタブ幅を前方に削除できます。キーバインドは私のラップトップでは機能しますが、私のデスクトップでは機能しません。evil-shift-left-lineのバインディングを確認しました。変更されましたが機能しません。「shift-backspace」のヘルプでは「backspace」しか表示されません。ただし、shiftは「backspace」に影響を与え、「shift-backspace」は文字の代わりに前の単語を削除します。 「Cq」の後に「shift-backspace」を挿入すると、「^?」と同じ表記になります デスクトップでは「バックスペース」として、ラップトップでは前者は「^ @」です。 デスクトップで機能しない理由についてのアイデアはありますか?ご協力ありがとうございました! この質問はこれに関連している可能性があります: Shift + UpはターミナルのEmacsで認識されません

2
すべてのグローバルキーバインドを本当にバインド解除するにはどうすればよいですか?
試したところです (set 'global-map (make-sparse-keymap)) しかし、発行するとC-hb、特にグローバルバインディングセクションで、依然として大量のがらくたが表示されます。 Global Bindings: key binding --- ------- C-@ set-mark-command C-a move-beginning-of-line C-b backward-char C-d delete-char C-e move-end-of-line C-f forward-char C-g keyboard-quit C-h help-command TAB indent-for-tab-command C-k kill-line C-l recenter-top-bottom RET newline C-n next-line C-o open-line ... ... そして、これからもっとたくさんあります。 これらを完全に取り除きたいと思います。どうすれば1つの単純な関数呼び出しでそれを実行できますか?これらのすべてのマップをに設定するループではなく、完全にワイプアウトする解決策を求めていますnil。前もって感謝します。 注:「これらのキーは生産性のために不可欠です。それを行わないでください!」のような回答やスパムコメントを教えないでください。。ここにはモーダルテキスト編集用に高度にカスタマイズされたエミュレーションレイヤーがあるので、これらのデフォルトバインディングはまったく必要ありません。

2
`term`のキーバインドを上書きする方法
Ruby pryとtmuxその両方を使用するような一部のタスクeshellでshellは、うまく動作しません。を使用しようとしtermましたが、でキーバインドをオーバーライドtermできないため、使用が面倒です。 どのように私は、言って、設定することができますM-oようother-windowとM-kとしてkill-buffer使用した場合term?
8 keymap  term 

4
入力できないキーシーケンスのヘルプを検索するには
を使用してキーシーケンスのヘルプを検索できることはわかっていますがC-h k &lt;key sequence&gt;、ターミナルでEmacsを使用しており、ターミナルエミュレーターがすべてのキーシーケンスをEmacsに渡しません。説明なしでどこかに書かれた特定のキーシーケンスの表記が表示されることがあり、それが何をするのか調べたいのですが、タイプすらできません。C-h kキーシーケンス(文字通りC-&lt;character&gt;)を入力できる場所に相当するものはありますか?

2
このコードがキーマップのすべてのキーバインディングを無効にできないのはなぜですか?
一言で言えば、私が好きな小さなライブラリがありますが、デフォルトのキーバインドは好きではありません。たとえば、これはグローバルマイナーモードであり、関数をC-c C-sにバインドしますが、それorg-scheduleは私のorgおよびorg-agendaバッファーに影を落とします。 小さなライブラリを保持したいのですが、小さなライブラリのキーマップにあるすべてのバインディングを削除します。 これを行うための初期の試みで、私は次のことを試しました(little-library-mode-mapバインディングが存在する場所を確認した後)。 (with-eval-after-load "little-library-mode" (setq little-library-mode-map (make-sparse-keymap))) コードは「成功」しますが(C-h v little-library-mode-map RETそれ(keymap)が今だということを示しています)、すべての小さなライブラリのキーバインディングはまだ「機能」C-c C-sしています(orgおよびorg-agendaバッファを含む、小さなライブラリ関数はまだ機能しています)。 私は問題を解決する別の方法を見つけましたが、このアプローチが失敗する理由を本当に知りたいです。Emacsのキーバインドは、私にはまだ黒魔術のように見えます。

3
特定のモードのすべてのキーバインディングに接頭辞キーを追加するにはどうすればよいですか?
私はモードを使用していますが、そのキーバインディングには慣れていません。それらの一部はemacsグローバルのものと競合します。だから、すべての既存のキーバインディングに接頭辞キーバインディングを追加したいと思います。 たとえば、my-modeM-]がmy-mode-shotのキーバインディングを定義している場合、次のような方法を探しています。 (define-prefix-for-mode 'my-mode (kbd "C-c m")) 次に、my-mode-shotのキーバインディングはになりC-c m M-]ます。 特定のモードで利用可能なすべてのキーバインディングに接頭辞キーバインディングを追加するにはどうすればよいですか?

1
Ccを別のキーバインディングでグローバルに置き換えるにはどうすればよいですか?
キーの組み合わせC-cは、私が使用するキーボードレイアウトで入力するのに不便で、グローバルに変更しようとしています。目標は、のすべての出現C-cを別のバインディングで置き換えることです。これにより&lt;apps&gt; d、Gnusでのメッセージの送信はになります&lt;apps&gt; d &lt;apps&gt; d。auxtexでのコンパイルは同じになり、ユーザープレフィックスキーC-cも常にになります&lt;apps&gt; d。キー&lt;apps&gt;は&lt;f19&gt;キーボードにあります。 マニュアルを読んで、使用する必要があるようkey-translation mapです。&lt;f19&gt;to の翻訳でうまく機能します&lt;apps&gt; (define-key key-translation-map (kbd "&lt;f19&gt;") (kbd "&lt;apps&gt;")) (global-set-key (kbd "&lt;apps&gt; s") 'save-buffer) 残念ながら、でこれを実行したい場合は機能しませんC-c。 (define-key key-translation-map (kbd "&lt;apps&gt; d") (kbd "C-c")) 使ってみると &lt;apps&gt; d is undefined 調べてみると(C-h k)見える &lt;apps&gt; d (translated from &lt;f19&gt; d) is undefined これを機能させる方法はありますか?

2
ユニコード記号を挿入するためのキーマップを拡張する慣用的な方法は?
でデフォルトのバインディングがないUnicode文字iso-transl-ctl-x-8-map、つまり、を使用しC-x 8て挿入できない文字の後に1つ以上の文字/句読文字を挿入する必要があることがよくあります。 C-x 8キーマップにバインディングを追加するには、通常、 次のような特定のUnicode文字を挿入するためのカスタムコマンドを定義します。 (defun ucs-rightwards-arrow () "Insert unicode symbol: →" (interactive) (insert-char #x2192)) このコマンドのバインディングをマップに追加します (define-key iso-transl-ctl-x-8-map (kbd "a") 'ucs-rightwards-arrow) C-x 8キーマップは実際にはキーバインディングと単一の文字のみをペアにしているので、疑問に思っています。 Q:C-x 8キーマップを拡張するより軽量で慣用的な方法はありますか?

1
LaTeX数式でウズラ入力メソッドを無効にするにはどうすればよいですか?
入力方式を設定する場合(M-x set-input-methodRET cyrillic-translitRET などを使用)、USキーボードを使用してキリル文字を入力できます。Emacsは音訳規則を使用して、ローマ字をキリル文字に変換します。あなたが見ればcyrillic.el、あなたが例えば参照("f" ?ф)、すなわち、タイピングがfできますф。 LaTeXファイルを編集していて、LaTeX-mode(AUCTeX)が有効になっているとしましょう。テキストの本文にはキリル文字を使用し、式にはローマ文字を使用します。この文脈では、希望 f生成するfといない ф数式モードでは、(すなわちで$...$、\[...\]、\(...\)、および数学の環境では)。 LaTeX数学環境内にあるかどうかを検出する方法の質問を理解している場合?そして、この答えは正しく、機能はtexmathp私たちが数学の環境であるかどうかを検出することができます。 私の質問は、以下を使用した条件付き文字変換の可能性についてです quail タイピングfはf、LaTeXの数学環境の内部などфで使用できます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.