这里问了一个相关的问题.但答案是习惯了自动完成工作的新方式掌舵.我不能习惯它,这就是原因.
说,我想打开一个文件/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功能删除的这种交互完全扰乱了我的工作,以至于我决定提出这个问题.我期待着:
请帮忙.
ido如果您想开始使用它,这里有一些技巧。\n让我知道helm是否更好,也许我会切换。\n我很快尝试过一次,但不喜欢它。
这将为您提供“ido-find-file on ” C-x C-f。
\n\n(ido-mode)\n(setq ido-enable-flex-matching t)\nRun Code Online (Sandbox Code Playgroud)\n\n从https://github.com/nonsequitur/smex安装。
\n\n(require \'smex)\n(global-set-key "\\C-t" \'smex)\nRun Code Online (Sandbox Code Playgroud)\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))))\nRun Code Online (Sandbox Code Playgroud)\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)))\nRun Code Online (Sandbox Code Playgroud)\n\n~代替~/)。C-TAB)。