如何判断 vim 是在命令行中运行还是在 powershell 中运行

2023-12-04

我想做一个执行以下操作的函数

if (vim is running in powershell)
    call system("only works in powershell")
else
    echo "Skipping powershell command"

有谁知道如何判断 vim 正在运行哪个程序?

EDIT: echo &term在两种情况下都会输出“win32”。


据我所知,你不需要检查 vim 是从什么运行的。您需要检查的值&shell因为 vim 会在 powershell 中运行命令,如果&shell选项告诉它在 powershell 中运行命令。如果 shell 的名称是posh然后检查可以通过

if stridx(&shell, 'posh')!=-1
    call system('only works in powershell')
else
    echo 'Skipping powershell command'
endif

。但我宁愿建议直接运行 powershell 类似

call system('posh -c '.shellescape('only works in powershell'))

(注:我不确定什么'posh -c '字符串实际上应该看起来像)或临时设置 &shell 选项:

let savedsh=[&shell, &shellcmdflag, &shellxquote, &shellxescape, &shellquote, &shellpipe, &shellredir]
set shell=posh shellcmdflag=-c shellxquote=\" shellquote=\" shellpipe=> shellredir=>
try
    call system('only works in powershell')
finally
    let [&shell, &shellcmdflag, &shellxquote, &shellxescape, &shellquote, &shellpipe, &shellredir]=savedsh
endtry

(再次,不确定选项的确切值):这些方式命令将始终在 powershell 中运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断 vim 是在命令行中运行还是在 powershell 中运行 的相关文章

  • 我可以在 Windows Azure 中设置成本上限吗?

    我想设置一个 Windows Azure 帐户 我是 MSDN 订阅者 因此前 16 个月我可以 免费 获得它 尽管如此 微软还是想要我的信用卡号码 以防我超出免费限额 从理论上讲 这意味着我正在向微软写一份全权委托书来向我的信用卡收取费用
  • Copy-Item 将目录及其内容复制到 UNC 路径

    我正在尝试使用 PowerShell 1 0 获取文件夹的内容并将其复制到另一个文件夹 非常简单的东西 使用起来一切都很好Copy Item from to recurse如果我从本地文件夹复制到本地文件夹 然而 如果 to变量是一个UNC
  • 在 Powershell 中获取小文件的“磁盘大小”

    我正在使用一个遗留系统 该系统有大量来自外部系统的导入 其中大多数通过下载文件 根据上下文大小不同 处理它 然后将文件存储在 SAN 卷上的其他位置 格式为 NTFS 和安装在 WS2008R2 盒子上 我们遇到的问题是 由于簇的大小 大量
  • Powershell:对 Select-Object 中的字段使用变量

    我正在构建一个正在创建的脚本csv文件 每个csv有一组不同的字段 一切都很好 但我想控制列顺序输出 我有一个变量 其中包含字段以及我想要的字段顺序 我知道我可以使用 Select Object 来控制它 我想做的是这样的 Fields I
  • 如何使文件自我更新(Native C++)

    我将 Microsoft Visual Studio 2008 与 Windows 目标部署结合使用 我如何使文件 自我更新 我已经完成了 通过网络传输 部分 但是如何使可执行文件重写自身 基本上 我想为还包含自动更新程序的目录编写一个自动
  • 如何正确调用 LsaLogonUser 进行交互式登录?

    我正在尝试使用 LsaLogonUser 创建交互式登录会话 但它总是返回STATUS INVALID INFO CLASS 0xc0000003 从网上查到的内存布局KERB INTERACTIVE LOGON结构很棘手 但我很确定我做得
  • 是否可以确定哪个键盘发送了按键?

    我有一个 Windows Media Center 遥控器 Windows 将其识别为键盘 当我使用 Windows Media Center 运行多显示器设置并在一个屏幕上播放视频时 遥控器的输入将与常规键盘一起定向到活动窗口 因此 当我
  • 从 .NET 应用程序登录 Windows

    我认为它应该是一个Windows服务 当给定某些条件时 它应该执行登录到机器的操作 机器将在 登录屏幕 中检查网络服务 以了解登录时应使用的用户名和密码 这可以吗 我不想要 自动登录 Windows 功能 Thanks AFAIK 无法完成
  • 触摸屏模拟器:是否有任何 Windows 模拟器可以在触摸屏环境中测试应用程序

    我想在触摸屏环境中测试我的应用程序 我的应用程序是一个使用 asp net net Framework 3 5 和 flash 构建的网站 我想使用 Windows XP Vista 7 的模拟器来测试我的应用程序 请告诉我是否有 Micr
  • 从 Python 执行 PowerShell 脚本的最佳方式是什么

    之前关于该主题的所有帖子都涉及其用例的具体挑战 我认为 如果有一篇文章只讨论从 Python 运行 PowerShell 脚本的最简洁方法 并询问是否有人有比我发现的更好的解决方案 那将会很有用 绕过 PowerShell 尝试以与预期不同
  • 元组/数组列表对

    我本质上是想创建一个配对列表 事实证明这是非常困难的 请注意 在任何人提到哈希表之前 都会有我不关心的重复项 例如 如果我这样做 b dog cat I get Name Value dog cat 这很好 但是 我无法添加类似的内容 b
  • 关于 Windows、原始鼠标数据的代码要 #include 哪些内容

    我发现下面的帖子对于做我自己的项目非常有用 那么新手问题是 我必须包含什么才能使其发挥作用 Link 如何准确测量具有已知 DPI 的鼠标的鼠标移动 以英寸或厘米为单位 https stackoverflow com questions 1
  • 在vim中查找精确匹配

    Using or 能够在 vim 中找到单词的匹配项 但我怎样才能找到完全匹配的呢 例如 我的文本包含以下单词 a aa aaa aaaa aa我输入 aa这将找到包含模式 aa 的所有字符串 但是如果我想准确找到怎么办aa并不是aaaa
  • 数据太长,导致列错误(包含国家字符)

    我必须移植一些DBS变成独立的MySQL版本 5 0 18运行于Windows 7 64 位我遇到了一个困扰我的问题 如果我尝试将任何国家 Unicode 字符插入varchar我收到错误 ERROR 1406 22001 Data too
  • C++ 控制台键盘事件

    有什么方法可以获取 Windows 控制台中的关键事件吗 我需要一种无需 GUI 即可快速获取 keydown 和 keyup 事件的方法 我尝试过使用 getch 但它没有获取按键并等待按下某个键才返回 Use ReadConsoleIn
  • 如何检查窗口在用户屏幕上是否完全可见?

    有没有办法检查 WinForm 在屏幕上完全可见 例如是否超出屏幕范围 我已经尝试使用 SystemInformation VirtualScreen 来实现此目的 只要虚拟屏幕是一个矩形 它就可以很好地工作 但是一旦它不是 例如 L 形的
  • 在Powershell中显示目录结构及其大小

    尝试使用 dir 命令来显示子文件夹和文件的大小 在谷歌搜索 powershell目录大小 后 我发现了两个有用的链接 确定文件夹的大小http technet microsoft com en us library ff730945 as
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 我怎么知道PowerShell函数参数被省略了

    考虑这样的函数 function Test foo bar 我们可以称之为 Test foo null Test 我如何知道何时省略了 foo 以及何时为 null 如果您使用的是 Powershell V2 或更高版本 则可以使用 PSB
  • 有适用于 Windows 的 Bonjour SDK 吗?

    我想知道如何在 Windows 上实现 bonjour 以便我可以在 Windows 上设置服务器并使用 iphone 客户端 中的 bonjour 服务访问 Windows 服务器 中的文件 谁能告诉我我们是否有适用于 Windows 的

随机推荐