我很方便地切换到包含ido包的emacs入门套件.
ido有一个很好的功能,它建议查找文件时的路径,除了在尝试创建新文件时,它通常非常方便.当新文件名与另一个路径中的建议匹配时,ido会自动切换到该路径,假设这是我想要的,但通常不是,我发现它很烦人.
要解决此问题,我要么从shell中触摸newfile,创建一个新的缓冲区并另存为,或者使用Mx查找文件来获取原始行为.我当然可以再次将Cx Cf重新绑定到find-file但是我必须喜欢ido-find-file,我只是希望它在我明确键入路径时停止自动切换路径.
我认为可能有一些简单的密钥我可以在ido-find-file中按下它告诉它我正在寻找的文件不存在并且停止提出建议,或者我可以设置一些var以获得更理想的行为?
IDO模式非常棒.了解基本快捷方式至关重要,尤其是逃生舱口Ctrl-f(介绍到ido-mode /),它让你脱离偶像模式.
在dired中,如果我想将文件复制到目录,我似乎无法使用ido来选择目录,我甚至无法使用我导航到的当前ido目录.应该有一些方法可以说"选择目录"或者至少启用ctrl-f选项来使用IDO中的当前位置.有人知道怎么做这个吗?(是的,您可以为dired禁用ido模式,但这不是我想要做的).
是否有支持emacs风格的ido查找文件的命令行shell或shell自定义?在emacs中,我可以使用C-x C-f
和非常快速地导航到目录(ido-mode t)
.
理想情况下,我正在寻找一种可以在emacs之外使用的解决方案.虽然我会开放一种快速更改eshell缓冲区内目录的方法.
我一直在我的Emacs上使用Tramp模式远程编辑文件.我也在使用ido模式.当我在使用Tramp打开的文件的同一目录中添加新文件时,我无法让Tramp找到新文件(使用Cx Cf).有没有办法刷新Tramp?
我真的很喜欢ido
emacs中的模糊匹配.我想拥有自动完成功能.最好随着auto-complete
,因为我有ac-python
和其他事情设置auto-complete
.我知道auto-complete
如果找不到正常匹配,则提供模糊匹配,但我通常需要这样.
我经常使用ido进行自动完成,并通过ssh访问远程服务器.我.emacs
包括以下几行:
(require 'tramp)
(setq tramp-default-method "ssh")
(ido-mode 1)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
Run Code Online (Sandbox Code Playgroud)
当我浏览远程服务器的内容时,我想禁用Ido完成.请注意,变量ido-enable-tramp-completion
与我的问题无关.考虑一下/root@site.com#1234:/var/www/file.txt
.我需要Ido 不要在冒号(远程文件路径)之后扣除部分,我不关心冒号之前的部分.我使用ssh,每次运行ido-find-file
时Ido使Emacs滞后几秒钟,当ssh超时结束时,Tramp尝试重新连接,请求我输入密码等等.这种行为是不可取的.
Emacs版本 - 24.0.94.1
编辑(20.03.12):与Ido作者联系后,我尝试将其更改ido-file-name-all-completions-1
为以下内容:
(defun ido-file-name-all-completions-1 (dir)
(cond
((ido-nonreadable-directory-p dir) '())
;; do not check (ido-directory-too-big-p dir) here.
;; Caller must have done that if necessary.
((and ido-enable-tramp-completion
(or (fboundp 'tramp-completion-mode-p)
(require 'tramp nil t))
(string-match "\\`/[^/]+[:@]\\'" dir))
;; TRAMP RELATED CODE DELETED
nil)
(t
(file-name-all-completions "" dir))))
Run Code Online (Sandbox Code Playgroud)
没有成功.然后我改变了正则表达式
"\\`/[^/]+[:@]"
Run Code Online (Sandbox Code Playgroud)
并且它工作 - …
我已经使用偶像模式几个月了,偶尔到处都是偶像,我一般都很满意.但是,我希望我能改变一件事.当我键入C-u M-x shell以创建具有特定名称的新shell缓冲区时,ido为我提供了所有打开缓冲区的完成列表.如果我选择一个,则在该缓冲区中启动一个新的shell,无论它包含什么,它都会被置于shell模式.很难想象一个有用的用例.
有没有办法只为shell命令停用ido-mode?(当然,除了我将来偶然发现的任何其他类似命令.)
问题很简单但很令人沮丧.当我尝试访问一个C-x C-f
名为basis.m
emacs 的新文件时,会继续访问haarbasis.m
已存在于同一目录中的类似命名文件.它一直提示我输入相似的名字,我无法访问一个新的空文件.我最近安装elpy
了一个python IDE,如果它有任何区别.
C-x C-f
除非我明确说明要访问哪个文件,否则如何强制emacs不访问文件?
我正在使用带有dired的emacs,
(require 'dired-details)
(dired-details-install)
Run Code Online (Sandbox Code Playgroud)
和偶像,
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)
(setq ido-use-filename-at-point 'guess)
(setq ido-create-new-buffer 'always)
Run Code Online (Sandbox Code Playgroud)
(以及recentf如所描述这里)
但是,当我处于直接状态并在选择几个文件后复制(Shift-C),并转到应该粘贴它们的新目录...我有两个不工作的选项:1)我点击一个目录,并进一步进入我不想要的目录.2)我点击一个文件,ido抱怨
标记副本:目标必须是目录:
如何将所选文件直接粘贴到新目标?任何帮助表示感谢,谢谢.
如何通过一次按键创建一个新的空缓冲区?我可以创建一个新的缓冲区C-x b
,然后输入一个名称。(我使用 ido 模式,所以如果我点击RET
它会打开最新的缓冲区。)
我想要一个命令来使用单个键绑定打开一个新的无标题缓冲区,例如s-t
。
(与 Aquamacs 中的命令类似new-tab
。)