难道没有人把C-h绑定成delete backward char么


#1

C-h在很多场景下都可以delete backward char,大多数命令行都支持(windows系统登录界面密码输入框居然都支持 ) 鉴于对C-h的依赖很深,遂分享两个keybindings

(define-key company-active-map (kbd “C-h”) 'delete-backward-char)

(define-key isearch-mode-map (kbd “C-h”) 'isearch-delete-char)


#2

是的,你是天选之人(滑稽)

以后善用搜索


#3

chromium: C-h => chrome://history/


#4

以为这种问题不值一提,遂没有去搜:joy:


#5

firefox也是history,浏览器改快捷键又是一堆坑,尝试过,不了了之


#6

直接操作系统改(karabiner-elements / autohotkey),或者有个可以刷qmk的键盘,固件层面改


#7

我是单按 alt 映射成 backspace


#8
(define-key key-translation-map (kbd "C-h") "^?")

我是这么实现的的,^?是用C-q后按删除键输入的,这里贴的是转写。


#9

我倒是很想知道在 Shell 里怎么把 C-h 绑定成「删除到上一级路径」


#10

我也分享一下我在ivy里的设置

  (defun maple/ivy-backward-delete-char ()
    (interactive)
    (let ((dir ivy--directory)
          (p (and ivy--directory (= (minibuffer-prompt-end) (point)))))
      (ivy-backward-delete-char)
      (when p (insert (file-name-nondirectory (directory-file-name dir))))))

  (defun maple/ivy-c-h ()
    (interactive)
    (if (eq (ivy-state-collection ivy-last) #'read-file-name-internal)
        (if (string-equal (ivy--input) "")
            (counsel-up-directory)
          (delete-minibuffer-contents))
      (ivy-backward-delete-char)))

  :bind (:map ivy-minibuffer-map
         ("C-h" . maple/ivy-c-h)
         ([backspace] . maple/ivy-backward-delete-char)
         :map counsel-find-file-map
         ([backspace] . maple/ivy-backward-delete-char))

counsel-find-file中删除键只删除单个字符, C-h键才是到上级目录, 否则C-h等同于backspace