加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:23:30 所属栏目:安全 来源:网络整理
导读:我对 vim很新鲜,我很难理解一些使用 vim脚本的细微之处.具体来说,我无法使用期望使用无引号字符串的命令(有这个名称吗?).例如 cd some/unquoted/string/path 问题是我想传递一个变量,但是调用 let pathname = 'some/path'cd pathname 将尝试将当前目录更改
我对 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”路径名,因为它不关心路径名中的特殊字符(例如,空格).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读