Shift- <backspace>をバインドできないのはなぜですか?


8

私のシステムはdebian wheezyです。私は次のことを試みました

(global-set-key (kbd "S-<backspace>") 'evil-shift-left-line)
(global-set-key (kbd "<S-backspace>") '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
端末でEmacsを使用していますか?
Malabarba

いいえ、スタンドアロンのemacsを使用しています。
godblessfq 2015年

回答:


6

興味深いことに、deletechar 疑似キーのバインドを試すことができます

backspaceマシンののバインディングを確認するとC-h k [backspace]、次のようになります。

DEL(から翻訳<backspace>)コマンドを実行します...(何とか何とか何とか)

私のマシンでshift+ のバインディングをでチェックするbackspaceC-h k S-[backspace]、次のようになります。

<deletechar>(から翻訳<delete>)コマンドを実行します...(何とか何とか何とか)

したがって、以下は私のマシンで動作します:

(global-set-key [deletechar] #'evil-shift-left-line)

私のコンピューターで、Shiftキー+ <backspace>のバインドを確認すると、<backspace>です。
godblessfq

2

私はこれを私のセットアップに持っています:

(define-key global-map [(shift backspace)] 'backward-delete-whitespace)
(define-key global-map [(shift delete)] 'forward-delete-whitespace)

Shift + Backspace / Shift + Deleteですべての空白を削除します。


そして、誰かがこれらの機能を必要とする場合に備えて、ここにそれらがあります:

(defun backward-delete-whitespace ()
  (interactive)
  (let ((p (point)))
    (re-search-backward "[^ \t\n]+" nil t)
    (forward-char)
    (delete-region p (point))))

(defun forward-delete-whitespace ()
  (interactive)
  (re-search-forward "[ \t\n]+" nil t)
  (replace-match "" nil nil))

1

私はこの設定に満足しています。

(defun my/backspace()
  (interactive)
  (if (string-match "[^[:space:]]+"
                    (buffer-substring-no-properties
     (line-beginning-position) (point))) ;; return nil no match
      (backward-kill-word 1)(evil-shift-left-line)))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.