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

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)

1 个赞

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

以后善用搜索

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

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

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

我是单按 alt 映射成 backspace

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

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

2 个赞

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

我也分享一下我在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

在MacOS上原生支持了control+H是删除,因此也是重度依赖,在浏览器或者终端或者xcode都是支持的。觉得改C-h是配置emacs最重要的一件事。[滑稽]

有的,而且Emacs的官方文档里的FAQ有写。