如何在头盔中恢复TAB自动完成的任何类似行为?

use*_*854 5 emacs emacs-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.

我也发现自己由于偶尔的错字而下降到错误的目录中,然后难以上升到一个级别 - 邪恶的自动完成不会让你用几个Backspaces来解决这个问题.

自动完成行为和Tab功能删除的这种交互完全扰乱了我的工作,以至于我决定提出这个问题.我期待着:

  1. 恢复旧功能
  2. 学习如何以有意义的方式使用自动完成,或
  3. 配置helm的C-x C-f行为更像是linux命令行

请帮忙.

abo*_*abo 4

ido如果您想开始使用它,这里有一些技巧。\n让我知道helm是否更好,也许我会切换。\n我很快尝试过一次,但不喜欢它。

\n\n

基本设置:

\n\n

这将为您提供“ido-find-file on ” C-x C-f

\n\n
(ido-mode)\n(setq ido-enable-flex-matching t)\n
Run Code Online (Sandbox Code Playgroud)\n\n

Smex 设置:

\n\n

从https://github.com/nonsequitur/smex安装。

\n\n
(require \'smex)\n(global-set-key "\\C-t" \'smex)\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 ido 切换缓冲区:

\n\n
(global-set-key\n "\xce\xb7"\n (lambda()(interactive)\n   (when (buffer-file-name)\n     (save-buffer))\n   (ido-switch-buffer)))\n\n(global-set-key\n (kbd "C-\xce\xb7")\n (lambda()(interactive)\n   (let ((ido-default-buffer-method \'other-window))\n     (ido-switch-buffer))))\n
Run Code Online (Sandbox Code Playgroud)\n\n

技巧:

\n\n
;; 1\n(add-hook \'dired-mode-hook\n          (lambda()\n            (define-key dired-mode-map "j" \'ido-find-file)))\n\n(add-hook\n \'ido-setup-hook\n (lambda()\n   ;; 2\n   (define-key ido-file-dir-completion-map "~"\n     (lambda ()(interactive)\n        (ido-set-current-directory "~/")\n        (setq ido-exit \'refresh)\n        (exit-minibuffer)))\n   ;; 3\n   (define-key ido-buffer-completion-map "\xce\xb7" \'ido-next-match)\n   ;; 4\n   (define-key ido-buffer-completion-map (kbd "C-p")\n     \'ido-fallback-command)\n   ;; 5\n   (define-key ido-completion-map (kbd "C-.") \'smex-find-function)\n   (define-key ido-completion-map (kbd "C-,") \'smex-describe-function)))\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 从 dired 快速打开文件。
  2. \n
  3. 更快地一键移至主目录(即~代替~/)。
  4. \n
  5. 使用与显示候选者相同的键循环缓冲候选者(Firefox 中的 la C-TAB)。
  6. \n
  7. 当您想要创建无文件缓冲区时,回退很有用(ido 将尝试\n选择现有缓冲区,除非您回退)。
  8. \n
  9. 对于跳转到函数定义/文档很有用。
  10. \n
\n