如何将便携式文本编辑器设置为 Git 便携式的默认文本编辑器?

How can I set the portable text editor as default text editor of Git portable?

Windows, Git v2.11 便携版

在当前计算机上,我的 USB 闪存驱动器具有 E: 名称。但在其他计算机上它可以有其他字母(例如 F:G:)...

我的便携式 Git (v2.11) 位于 <My USB-drive>:\apps\PortableGit-2.11\ 文件夹中。我的便携式文本编辑器 (Sublime Text 3) 位于 <My USB-drive>:\apps\Sublime-Text-3\ 文件夹中。

如果我用 E 写入 core.editor 值,那么它在我当前的计算机上工作正常(当我启动 git commit 命令时):

git config --system core.editor "'E:/apps/Sublime-Text-3/sublime_text.exe' -n -w"

但在我的U盘名称使用其他字母的其他计算机上它不会工作。

如何将便携式文本编辑器设置为 Git 便携式的默认文本编辑器而不出现该问题? 是否可以指向便携式 Git 位置的相对路径?

您可以使用 2 个环境变量:HOMEDRIVEEXEPATH

HOMEDRIVE - 您 运行 来自的驱动器(例如:C:

EXEPATH - git 运行 来自的完整路径(例如:"C:\MyApps\GitPortable"

因此您可以在 gitconfig:

中使用这两个

editor = "$HOMEDRIVE/apps/Sublime-Text-3/sublime_text.exe"

您需要确保 $HOMEDRIVE 出现在 gitconfig 文件中(并且未被 shell 操纵,因此 运行 git config --system --edit 和将其直接添加到那里(在 [core] 部分下)。还要确保变量在单引号 ''

内是 而不是

对于 windows,要通过示例打开 Notepad++,请在文件 C:\users<用户帐户>.gitconfig 中插入以下行:

[core]
    editor = \"C:/Program Files/Notepad++/notepad++.exe\" -multiInst -notabbar -nosession -noPlugin

控制它:$ git config --global --list

user.name=<firstName LastName>
user.email=<your email>
merge.tool=kdiff3
diff.guitool=kdiff3
core.editor="C:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin
core.rebase=false
fetch.prune=false
rebase.autostash=false