3

Ctrl+Shift+UpCtrl+Shift+down」を正常に使用しました

Ctrl+Shift+left'Ctrl+Shift+Right別のコマンドに。しかし、私が

Ctrl+sコマンド save-buffer andに使用しようとしましたがCtrl+Shift+s、これは

と同等ですがCtrl+S、別のコマンドには問題があります。

save-buffer は正常に動作しますが、入力Ctrl+Shift+sすると実行されます

コマンド保存バッファ。Ctrl+qの制御シーケンスを見つけていました

Ctrl+sCtrl+Shift+S、同じ結果が得られます^S

^sが得られると期待してCtrl+sいますが、そうではありません。

誰も理由を知っていますか?

別の質問は次のとおりです。Ctrl+cコマンド kill-ring-save に使用します。この中で

この場合、(多数の) で始まるすべてのコマンドがCtrl+c機能しなくなりました。

Ctrl+cプレフィックスを別のカスタマイズされたプレフィックスに置き換える方法はありますか?


間違った方向に質問するかもしれません。として使用ctrl+cします

キリングリングセーブ。emacs (モードなし) で正常に動作します。しかし、.c ファイル (C モード) を開くと、

と入力するCtrl+cと、別のキーを入力するのを待ちます。この場合だと思いますが、

ctrl+c接頭辞とみなされます。この場合、次の変更が必要です。

カスタム定義の接頭辞を使用して、たとえばCtrl+a、 as Ctrl+c; を取り外します

プレフィックスCtrl+c; Ctrl+c キリングリングセーブとして使用。

~/.emacs に以下を追加します。

(グローバル セット キー (kbd "Ca") モード固有マップ)

(global-set-key (kbd "Cc") 'kill-ring-save)

(グローバル セット キー (kbd "Cf") 'isearch-forward)

(global-set-key (kbd "Cv") 'yank)

(global-set-key (kbd "Cs") 'save-buffer)

(my-c-initialization-hook の定義解除 ()

(define-key c-mode-base-map (kbd "Ca") mode-specific-map)

(define-key c-mode-base-map (kbd "Cc") 'kill-ring-save))

(add-hook 'c-initialization-hook 'my-c-initialization-hook)

しかし、これはうまくいきません。Ctrl+cはまだ接頭辞と見なされているため、使用できません

キルリングセーブとして。さらに、入力Ctrl+a Ctrl+cすると、そうではないと言われました

定義されています。(入力したのと同じ結果になると思いましたCtrl+c Ctrl+c

4

3 に答える 3

3

バインディングはトリッキーです。CUAモードはC-c、リージョンがマークされている場合にのみキルリングセーブを実行することで、それをうまく解決します。

于 2011-01-12T12:00:14.057 に答える
1

まず、Control-S は ASCII 制御文字^s^Sあり、同じ文字です。

ただし、キーは文字とは別のものであり、ウィンドウ マネージャーで Emacs を使用している場合は、キーC-sC-S-s. 後者は Control-Shift-s です。

ヒットしている問題は、文字キーのシフトされたバージョンを明示的にバインドしない場合、シフトされた文字キーがシフトされていないキーのバインディングを使用することです。これが「特徴」です。

C-sしたがって、との両方をバインドする必要がありC-S-sます。

(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-S-s") 'another-command)
于 2011-08-20T17:50:09.380 に答える
0

ターミナルで emacs を実行している場合、shift-ctl-c の問題の原因はターミナル ドライバーにある可能性があります。その場合は、コマンドstty stop undefを実行してから emacs を再度実行し、問題に影響があるかどうかを確認してください。また、shift-ctl-その他の文字でも同じ問題が発生するかどうかを確認してください

于 2011-01-12T10:00:46.287 に答える