Powershell ISE + vim

6

有没有可能让Powershell ISE像vim一样具有一些vim样式的编辑模式或插件?

在netbeans中,我正在使用jVi,在Visual Studio中,我正在使用VsVim,Powershell ISE是否有类似的东西?

还是应该完全放弃Powershell ISE,只使用vim + Powershell命令行?


我想说你在比较苹果和橙子。PowerShell ISE不是文本编辑器,它是用于脚本编写的。它使用智能感知和制表符完成路径、命令、属性等。 - Matt
是的,我想你说得对。我对PowerShell ISE还比较陌生。我只是希望在编写脚本时能够进行熟悉的导航,比如hjkl等。 - bjarven
有人曾经告诉过我“只要用箭头键就好了”。他们是再次这样告诉我的,而不是你。如果有帮助的话,这里有一些键盘快捷键。其中大多数都很明显,但可能还是有用的。 - Matt
这是关于Windows PowerShell和Vim按键绑定的问题,虽然没有明确的解决方案,但过去曾经讨论过。很抱歉我误解了问题,回答不准确。 - Matt
3个回答

4

我可能误解了问题,但在使用PS ISE时最接近vim能力的方式是安装Windows版gvim74并创建以下函数:

function vim 
{ 
    if ($args)
    { 
        start-process 'C:\Program Files (x86)\Vim\vim74\vim.exe' $args
    }
    else
    { 
        start-process 'C:\Program Files (x86)\Vim\vim74\vim.exe'
    }
}

很不幸,ISE与控制台输入不兼容,所以我能做的最好的就是在新的PS窗口中启动vi。虽然不是完美的解决方案,但我可以像在非Windows环境下一样经常使用"vim fileToEdit"。


4
在过去的几周中,我一直在寻找一种使用psISE与vim组合的方法(我发现这是可能的,但没有ISE舒适度的编码对我而言太难了)。
最终,我在ISE中创建了一个函数/子菜单,它可以:
  • 通过键盘快捷键([AltGr]+[v])启动vim并等待进程结束,同时打开当前文件
  • 当我在vim中完成编辑并保存文件之后,该文件会从ISE中删除
  • 然后再次加载(因为在v3中没有文件“刷新”)

#一行代码 $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("edit with Vim",{$cur=$psISE.CurrentFile; saps "C:\Program Files (x86)\vim\vim74\gvim.exe" $cur.FullPath -wait; $psise.currentpowershelltab.files.remove($cur); $psISE.currentpowershelltab.files.add($cur.fullpath) },'Ctrl+Alt+v')

你必须先保存它,否则它将不会被删除。
(也许您要添加$psise.CurrentFile.Save()函数)
(对于永久的ISE更改,您必须将其放入$profile中...)

*saps --> start-process别名


3

我发现最好的工具是安装了PowerShell和VIM插件的VSCode。以前PowerShell插件比ISE差很多,但近期Intellisense变得更加简洁了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接