gpt4 book ai didi

git - PowerShell,vim和别名与* .cmd(使用git时)

转载 作者:行者123 更新时间:2023-12-03 00:05:01 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我将vim用作PowerShell中的控制台中文本编辑器。到目前为止,这种方法效果很好,我对此并不存在任何疑问。

以前,我在PATH可访问的文件夹中用批处理脚本(vim.cmd)设置了vim,该脚本只是调用vim.exe,如下所示:

@echo off
"C:\Program Files\vim72\vim.exe" %*

然后我告诉git使用编辑器 vim.cmd。在我注意到git在使用交互式rebase时执行批处理存在问题之前,这种方法一直很好。

因此,我改为尝试在PowerShell控制台中将 vim用作别名:
Set-Alias vim "C:\Program Files\vim72\vim.exe"

然后我告诉git使用编辑器 vim代替。这对于正常的提交以及交互式重定基等都非常有效。但是,我在使用该方法时发现了一些奇怪的地方:

似乎这些可能性中的任何一种都不正确地尊重vim的设置。当我进行提交时,git希望我在git中输入提交消息,我看到了vim的两种不同外观和行为。尽管在这两种情况下都应加载相同的设置(有没有一种方法可以检查实际情况?)。

以下两个屏幕截图显示了两种编辑器设置的区别:


究竟是什么原因造成的,有没有办法解决?我实际上想将别名版本与换行符行为(以及禁用的状态栏)与其他版本分开;但是了解这一点实际上对我来说更重要。

谢谢!

最佳答案

h!感谢Doon的评论,这实际上使我意识到了这一点。

当使用vim作为git的core.editor值时,这根本不会使git使用PowerShell别名。相反,git从其自己的vim目录内部调用bin,该目录确实包含一个名为vim的文件,其内容如下:

#!/bin/sh

exec /share/vim/vim73/vim "$@"

所以实际上git正在打开Git本身附带的那个vim实例,并运行它。在那里,当然,我的系统Vim中的个人设置丢失了。

将别名重命名为其他名称并进行尝试后,事实证明git无法使用它,所以我想我只是将 bin目录内的vim shell脚本更改为指向我的安装并复制进行一些更改以达到我想要的效果。

编辑

似乎从 /bin/目录内部,git无法进入自身之外。因此,无法从git的shell解释器中访问与git安装平行的文件夹。

猜猜我需要将我的vim安装移到共享目录中。好所有其他工具都可以轻松地在不同的vim位置使用<_ <

关于git - PowerShell,vim和别名与* .cmd(使用git时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com