我在 Vim 中遇到了一个奇怪的问题。 我想将文件从我的桌面或文件管理器拖放到 Vim 中并进行编辑。 Gvim 可以正确处理此行为。
当我尝试在控制台 Vim 中执行相同的操作时,会插入文件名的路径。 例如,如果我拖放文件/home/myuser/foo.matic,它会将文本字符串 '/home/myuser/foo.matic' 应用于当前缓冲区。
如果我输入 :edit,然后拖放文件名,Vim 会将"/home/myuser/foo.matic"视为新目录。
我相信这里的问题是文件路径前后的引号。 这些似乎是由侏儒终端和终结者插入的。 有没有办法在拖放时从文件名中删除这些引号? 或者,有没有办法让 Vim 忽略引号?
你不能让 vim 自己:e
命令来做你需要的事情,但你可以定义你自己的命令。下面列出了最直接的解决方案 - 让 shell 解析要由 shell 解析的内容 - 如下所示:
command -nargs=? -bang -bar E :execute "e<bang> ".fnameescape(system("echo -n ".<q-args>))
.此命令仅接受:e[!] {file}
变体,不允许+cmd
和++opts
。