如何使用适用于 Linux 的 Windows 子系统"open with Vim"?



一些背景:我通常在Ubuntu上使用Vim来打开文件,因为您可以右键单击并选择"使用Vim打开"。 我一直在Linux的Windows子系统上试验Vim。

要在 Linux 的 Windows 子系统上打开文件,唯一的方法似乎是使用 bash 终端导航到该目录并键入 vim filename.extension。 这对于我的工作流程来说效率非常低。 有没有办法使用Linux的Windows子系统获得"使用Vim打开"选项?

经过大量的实验,我决定最好的方法是将 Vim 用于 Windows,而不是 vim 用于 WSL。主要原因是 Vim for WSL 不支持从剪贴板复制粘贴功能,并且您无法右键单击文件并选择使用 Vim 打开。 要使使用 Vim 打开选项适用于 Windows Vim,您必须在

[HKEY_LOCAL_MACHINE\软件\Vim\Gvim]

通过更改路径

path=C:\Program Files\Vim\vim74\gvim.exe

path=C:\Program Files\Vim\vim74\vim.exe

此解决方案是从帖子中找到的 如何使"使用 Vim 编辑"在窗口上打开 Vim 而不是 gVim?

更新:经过更多的实验,Windows Vim似乎不支持mouse=a命令,复制和粘贴在WSL和cmd Vim上确实存在错误/不存在,因此最好使用GVim或安装Linux发行版。

将项目添加到上下文菜单以打开带有PowerShellWSL VIM文件:

New-Item -Path 'Registry::HKEY_CLASSES_ROOT*shellVIMcommand' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT`*shellVIM' -Name '(default)' -Value 'VIM' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT`*shellVIM' -Name 'Icon' -Value 'C:WindowsSystem32wsl.exe,0' -Force | Out-Null;
Set-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT`*shellVIMcommand' -Name '(default)' -Value "wsl vim -p `"`$(wslpath '%1')`"" -Force | Out-Null;

最新更新