Vim:`cd`到存储在变量中的路径

前端之家收集整理的这篇文章主要介绍了Vim:`cd`到存储在变量中的路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对 vim很新鲜,我很难理解一些使用 vim脚本的细微之处.具体来说,我无法使用期望使用无引号字符串的命令(有这个名称吗?).例如
cd some/unquoted/string/path

问题是我想传递一个变量,但是调用

let pathname = 'some/path'
cd pathname

将尝试将当前目录更改为“pathname”而不是“some / path”.这样做的一个方法是使用

let cmd = 'cd ' . pathname
execute cmd

但这似乎有点迂回. This StackOverflow question实际上使用带有变量的cd,但在我的系统上不起作用(“a:path”被视为如上所述的路径).

我使用cd作为一个具体的例子,但这个行为并不是唯一的cd;例如,编辑命令也以这种方式行事. (这种类型的命令有名字​​吗?)

文件名作为参数的许多基本命令支持反向语法:
command `shell command`

要么

command `=vim_expression`

所以你的例子可能写成

cd `=pathname`

如果您在受控环境中运行.您不能在插件中使用此变体,因为a)有可能以您的方式进行的& wildignore设置:set wildignore = * | cd = pathname将使cd失败,无论路径名中存储什么内容,以及b)如果路径名包含换行符将被分成两个或多个目录.因此,您应该用于您打算分享的任何代码片段

execute 'cd' fnameescape(pathname)

.

请注意,您不能使用执行“cd”路径名,因为它不关心路径名中的特殊字符(例如,空格).

原文链接:https://www.f2er.com/bash/383953.html

猜你在找的Bash相关文章