问题:如何设置cmd的环境变量?

问题:如何设置cmd的环境变量?

我最近找到了使用 Xming 从我的 WSL(Windows Subon Windows)开始的正确配置gvim.exe,我想知道我是否可以自动执行该过程。最后,我想复制以下映射gvim.exe与参数一起在 WSL 中触发。(要发出的简短命令是gvim +SLoad

#k::
    ShellRun("C:\vim\vim80\gvim.exe", "+SLoad", "", "", 3)
return

步骤 1:让事情运转起来cmd.exe

根据调用 wsl 的指南,我应该能够正常启动 GUI 程序,通过输入-c以下标志:

bash -c gvim
# Or, wsl does not need the flag, thus:
wsl gvim

$DISPLAY然而,根据这两个命令,我得到类似的错误,就好像我在使用 WSL 命令行时没有设置变量一样。

在此处输入图片描述

第 2 步:从 WSL 检查正确的配置

根据 GUI 程序的启动位置,需要将以下行放入正确的配置文件中。对于默认bashshell,请将其放入~/.bashrc。对于 Fish shell,请将其放入~/.config/fish/config.fish

# XMing config
export DISPLAY=:0 

变量的值$DISPLAY根据 Xming 如何指定其自己的启动参数来设置。弹出添加到开始菜单的一个变量会显示设置:"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

问题:如何设置cmd的环境变量?

答案1

为了确保环境变量真正传递给程序,请使用:

bash -c "DISPLAY=:0 gvim"

shell 语法VARIABLE=VALUE COMMAND仅在指定命令的持续时间内设置环境变量 VARIABLE。它大致相当于 (export VARIABLE=VALUE; exec COMMAND)

显示器从 0 开始编号,因此:0第一个启动的本地显示器也是从 0 开始编号。

与所有环境变量一样,DISPLAY 会从父进程继承到子进程。但是,从 WSL 启动时,显然会出现一些问题。

相关内容