![vifm:来自 %c 宏的 Windows 格式的文件名](https://linux22.com/image/1513427/vifm%EF%BC%9A%E6%9D%A5%E8%87%AA%20%25c%20%E5%AE%8F%E7%9A%84%20Windows%20%E6%A0%BC%E5%BC%8F%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D.png)
我正在尝试设置一个映射以使用 OS 默认应用程序打开文件。我不想在我的 vifmrc 中使用 filetype 命令,如所述这里,因为我希望l
仍然Enter
使用 vim 打开文件。(我仍然有太多记事本关联。)所以我尝试了以下映射:
map o :!start "" "%d\%c"
map o :!start "" "%d\%c:gs?\ ? ?"
但是,使用其中一个带 Spaces.docx 的文件,我收到错误消息
Windows cannot find 'c:\path\subpath\File\ with\ Spaces.docx'...
如何将文件名转换为 Windows 友好格式,而不在文件名中使用反斜杠?
答案1
一些%{x}
宏具有附加%"{x}
形式,以解决 cmd.exe 无法处理正确转义的问题(文档)。
尝试以下操作(noremap
大多数时候您想要的是而不是map
和使用:p
文件名修饰符比组合%d
和更通用%c
):
noremap o :!start "" %"c:p