如何添加“在 Vim 中打开”上下文菜单条目以从 WSL Vim 编辑 Windows 中的文本文件

问题描述 投票:0回答:3

我想添加一个 Windows 右键菜单条目,以便在 WSL Vim 中快速打开文本文件,而无需手动打开终端。 谢谢@romainl

windows vim windows-subsystem-for-linux regedit
3个回答
3
投票
  1. Computer\HKEY_CLASSES_ROOT\*\shell
    处创建一个名为
    Open in Vim
    的注册表项,并为其创建一个子项
    command
    :

    Computer\HKEY_CLASSES_ROOT\*\shell\Open in Vim

    Computer\HKEY_CLASSES_ROOT\*\shell\Open in Vim\command

  2. command\(Default)
    的字符串值编辑为
    bash.exe -c "wslpath '%1' | xargs nvim"
    (或者,您可以用vim替换nvim)。

  3. 下载 Vim 徽标,您可以在线将其转换

    .ico
    扩展。在
    Icon
    键下创建
    Open in Vim
    字符串值,并使用
    .ico
    图像的路径编辑其值。

您可以在下面看到生成的条目。单击它将打开一个 WSL 终端,并在 Vim 中打开选定的文本文件。退出 Vim 后,终端也会关闭。 enter image description here


0
投票

向上下文菜单添加一个项目,以使用

WSL VIM
:
 打开 
PowerShell

中的文件
New-Item -Path 'Registry::HKEY_CLASSES_ROOT\*\shell\VIM\command' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT\`*\shell\VIM' -Name '(default)' -Value 'Open in VIM' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT\`*\shell\VIM' -Name 'Icon' -Value 'C:\Windows\System32\wsl.exe,0' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT\`*\shell\VIM\command' -Name '(default)' -Value "wsl vim -p `"`$(wslpath '%1')`"" -Force | Out-Null;

或者使用注册表文件作为替代。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\VIM\command]
@="wsl sudo vim -p \"$(wslpath '%1')\""

0
投票

如果我的路径包含空格怎么办? %1 不会在所有提出的解决方案中捕获所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.