0

我在 Vim 中遇到了一个奇怪的问题。我想将一个文件从我的桌面或文件管理器拖放到 Vim 中并进行编辑。Gvim 正确地处理了这个行为。

当我尝试在控制台 Vim 中做同样的事情时,会插入文件名的路径。例如,如果我拖放文件 /home/myuser/foo.matic,它会将文本字符串 '/home/myuser/foo.matic' 应用到当前缓冲区。

如果我输入 :edit,然后拖放文件名,Vim 会将 '/home/myuser/foo.matic' 视为一个新目录。

我相信这里的问题是文件路径前后的引号。这些似乎是由 gnome-terminal 和终止符插入的。拖放时有没有办法从文件名中去除这些引号?或者,Vim 有没有办法忽略引号?

4

1 回答 1

2

你不能让 vim 自己的:e命令来做你需要的,但你可以定义你自己的。下面列出了最直接的解决方案 - 让 shell 解析 shell 打算解析的内容:

command -nargs=? -bang -bar E :execute "e<bang> ".fnameescape(system("echo -n ".<q-args>))

. 此命令仅接受:e[!] {file}变体,不接受+cmd++opts允许。

于 2012-07-01T16:43:02.830 回答