ivy 当有默认值时,怎样快速输入不同的值?

比如下面这张图,已经有一个默认路径了:

如果我想要粘贴一个路径进去,需要按多次 backspace:

第一次 backspace

image

第二次 backspace

image

……

第n次 backspace (注意最后的 / 是删不掉的)

image

然后再粘贴我需要的路径:

然后我还要将光标跳到行首,删除掉一个 /

最后按了两下 tab 后终于结束了:

感觉这个操作异常繁琐,有没有办法避免这个问题呢?

我试了一下,的确如此。挺奇怪的,我记得之前会自动变成粘贴的路径。

试一下在光标在最末的 / 后,按两次斜杠 // 进入根目录,或者直接按 ~ 进入 home。

参考 ivy--magic-file-slashivy-magic-tilde


直接粘贴路径 RET 好像也行。

2 个赞

/ (evil-ex-search-forward) 搜索的的时候,会 hook 一个一次性的函数 evil-ex-remove-default。当用户输入任何内容时,这个函数就会被调用:

  1. 清除 minbuffer 中的默认值。
  2. 从 hook 中删除自己。
1 个赞

如果粘贴的是文件所在的目录的路径,直接回车会报错:

image

但是尝试了 TAB 是可以的!即使前面有那么一大串默认路径,不用管它,tab 之后就没有了!

如果粘贴的是文件的路径,那么直接回车是可以!

还是 evi-ex-search 的做法比较友好,直接 Enter 使用默认值(显示为灰色),一旦有任何键入或粘贴动作,则先清空默认值:

evil-ex-remove-default

1 个赞

我这时也是直接粘贴目录路径后tab和回车都可以,emacs 25.2.1 spacemacs 20180304, ivy 20180402

1 个赞