gpt4 book ai didi

emacs - 如何在 helm 中恢复 TAB 自动完成的类似行为?

转载 作者:行者123 更新时间:2023-12-04 20:45:14 25 4
gpt4 key购买 nike

问了一个相关问题 here .但答案是习惯自动完成在掌 Helm 中工作的新方式。我无法习惯,这就是原因。

说,我想打开一个文件 /home/user/work/f.txt .我做 C-x C-f,它带我到当前目录,比如 /current/dir/ .我点击 Backspace 并注意到自动完成不会让我删除 / .好的,使用 C-Backspace 关闭自动完成功能。然后终止 C-a C-k 行并开始输入。请注意,自动完成不起作用,将其重新打开 C-Backspace。通常我会输入我知道可能是独一无二的部分,例如/hom并点击 Tab。

不在这里。只要我输入 /ho ,自动完成将其解析为 /home/ ,但由于我打字速度很快,我最终得到了 /home/m ,然后继续输入无意义的字符,直到我注意到它。很有可能,到那时我已经自动完成了我无意进入的目录。

所以我必须不断地观察自动完成正在做什么,而不是依赖于我输入的内容并且只在我点击 Tab 时检查建议的完成。

我还发现自己由于偶尔的拼写错误而进入错误的目录,然后很难提升一个级别——邪恶的自动完成不会让你用几个退格键来解决这个问题。

这种自动完成行为和 Tab 功能删除的交互完全扰乱了我的工作,以至于我决定问这个问题。我正在寻找:

  • 恢复旧功能
  • 了解如何以有意义的方式使用自动完成功能,或
  • 将 helm 的 C-x C-f 配置为更像 Linux 命令行

  • 请帮忙。

    最佳答案

    这里有一些 ido技巧,如果你想开始使用它。
    如果 helm,请告诉我更好,也许我会切换。
    我很快尝试了一次,但不喜欢它。

    基本设置:

    这将为您提供 C-x C-f 上的 `ido-find-file。

    (ido-mode)
    (setq ido-enable-flex-matching t)

    Smex 设置:

    https://github.com/nonsequitur/smex 安装.
    (require 'smex)
    (global-set-key "\C-t" 'smex)

    使用 ido 切换缓冲区:
    (global-set-key
    "η"
    (lambda()(interactive)
    (when (buffer-file-name)
    (save-buffer))
    (ido-switch-buffer)))

    (global-set-key
    (kbd "C-η")
    (lambda()(interactive)
    (let ((ido-default-buffer-method 'other-window))
    (ido-switch-buffer))))

    技巧:
    ;; 1
    (add-hook 'dired-mode-hook
    (lambda()
    (define-key dired-mode-map "j" 'ido-find-file)))

    (add-hook
    'ido-setup-hook
    (lambda()
    ;; 2
    (define-key ido-file-dir-completion-map "~"
    (lambda ()(interactive)
    (ido-set-current-directory "~/")
    (setq ido-exit 'refresh)
    (exit-minibuffer)))
    ;; 3
    (define-key ido-buffer-completion-map "η" 'ido-next-match)
    ;; 4
    (define-key ido-buffer-completion-map (kbd "C-p")
    'ido-fallback-command)
    ;; 5
    (define-key ido-completion-map (kbd "C-.") 'smex-find-function)
    (define-key ido-completion-map (kbd "C-,") 'smex-describe-function)))
  • 从 dired 快速打开文件。
  • 更快地移动到主目录一键(即 ~ 而不是 ~/ )。
  • 具有与显示候选者相同的键的循环缓冲区候选者(Firefox 中的 la C-TAB)。
  • 当您想要创建无文件缓冲区时,回退很有用(ido 会尝试
    除非您后退,否则请选择现有缓冲区)。
  • 跳转到函数定义/文档很有用。
  • 关于emacs - 如何在 helm 中恢复 TAB 自动完成的类似行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18987621/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com