说我想看看我在哪个目录,我输入
:echo .
Run Code Online (Sandbox Code Playgroud)
并收到错误消息:
E15:Invalid expression .
Run Code Online (Sandbox Code Playgroud)
我怎样才能呼应了这些特殊字符,如%,.,<cfile>?
你需要使用 expand()
例如
:echo expand("%:h")
Run Code Online (Sandbox Code Playgroud)
打印实际目录(当前缓冲区).
也可以看看 :help expand
如果你想查询当前目录(这是缓冲区独立的),你应该只是一个:pwd.(见:help current-directory)
(编辑:从改变:cd到:pwd为每IB的评论).
有一个专门的命令可以打印当前目录路径:
:pwd
Run Code Online (Sandbox Code Playgroud)
(请参阅帮助中:help :pwd的整个“当前目录”部分::help current-directory。)
要快速找出 Vim 命令行特色扩展到的路径,请使用
:echo expand('%:p:h')
Run Code Online (Sandbox Code Playgroud)
或者,更短,
:!echo %:p:h
Run Code Online (Sandbox Code Playgroud)
前一个命令基于在expand()给定参数中扩展通配符和特殊关键字的函数(请参阅 参考资料:help expand)。后一个命令利用了在运行外部命令之前扩展通配符这一事实(请参阅 参考资料:help cmdline-special)。