C-x C-f
之前在ivy模式下,在minibuffer中按backspace键,会删除words(一级目录); (ivy-backward-delete-char)
现在在selectrum模式下,只会删除单个字符;使用C-M-backspace虽然会删除words(一级目录),但这样会把删除的字符串放到了剪切板上。想请问下有没有简单的方法能不将这里删除的数据放到剪切板上吗?
C-x C-f
之前在ivy模式下,在minibuffer中按backspace键,会删除words(一级目录); (ivy-backward-delete-char)
现在在selectrum模式下,只会删除单个字符;使用C-M-backspace虽然会删除words(一级目录),但这样会把删除的字符串放到了剪切板上。想请问下有没有简单的方法能不将这里删除的数据放到剪切板上吗?
实际上可以自己写个函数,而且还可以解决 backspace 遇到目录有小数点之类的问题。
(defun selectrum-up-directory ()
(interactive)
(let ((directory (expand-file-name (minibuffer-contents-no-properties))))
(delete-minibuffer-contents)
(insert (string-trim-right directory "[^/]+/?"))))
;;; 或这样
(defun selectrum-up-directory ()
"回到上层目录"
(interactive)
(let ((directory (minibuffer-contents-no-properties)))
(delete-minibuffer-contents)
(insert (string-trim-right (if (string= directory "~/") (expand-file-name "~/") directory) "[^/]+/?"))))
;;; 绑定一个自己喜欢的快捷键
(define-key minibuffer-local-map (kbd "C-l") #'selectrum-up-directory)
;;; PS: 我在 vertico 下试的可以用,不知道 selectrum 效果怎么样
好奇ivy可不可以只删除单个字符,有时候只想改一个字符但是ivy把整级目录全删了
可以达到效果
ivy的目录操作一直都很难受,删除单个字符可以这样
(defun maple/ivy-backward-delete-char ()
(interactive)
(let ((dir ivy--directory)
(p (and ivy--directory (= (minibuffer-prompt-end) (point)))))
(ivy-backward-delete-char)
(when p (insert (file-name-nondirectory (directory-file-name dir))))))
谢谢!我去试试