Как мне использовать установленный Vim в Git Bash вместо того, который шел с Git?

22

Я установил Vim и Git C:\Program Files (x86)\(vim|git)соответственно.

Когда я запускаю Vim из Git Bash, он запускает внутреннюю версию Vim, поставляемую с установщиком Git. Есть ли способ переопределить это поведение, которое не требует изменения моего .profileили чего- .bashrcлибо подобного, чтобы я мог запустить версию Vim, которую я установил в Program Files?

Спасибо.

matpie
источник

Ответы:

20

По умолчанию Git запускает vim from Git\bin\vim. На самом деле это скрипт, который содержит путь к самому исполняемому файлу:

#!/bin/sh
exec /share/vim/vim73/vim "$@"

Поэтому вы можете отредактировать этот файл так, чтобы он указывал на ваше местоположение в Git.

Редактор по умолчанию может быть переопределен в Git\etc\gitconfig:

[core]
editor = path_to_your_editor
не берите в голову
источник
5
На случай, если кто-то придет сюда после 2012-08-17, путь к gitconfigфайлу при chocolatelyустановке gitc:\program files\git\ningw64\etc\gitconfig
THBBFT,
3

Предполагая, что изменение содержимого C:\Program Files (x86)\{vim,git}возможно, у вас есть по крайней мере эти две опции в зависимости от значения вашей %PATH%переменной среды:

  1. Если у вас есть C:\Program Files (x86)\vim\vim73в вашем %PATH%вы можете просто удалить vimбинарный файл , который был установлен с Git. Чтобы это работало, Vim должен быть запущен как, vimа не по полному пути.

  2. Возможно, ваш Program Files (x86)каталог находится на томе NTFS, поэтому вы можете удалить исполняемый файл Vim, установленный Git, и сделать символическую ссылку на настоящий исполняемый файл Vim.

xaizek
источник
2

Если ваша установка Vim доступна по пути, откройте консоль Powershell и выполните следующее:

git config --global core.editor "$(Get-Command vim | % { $_.Source -replace '\\','\\\\' })"

Он установит ваш редактор git на Vim, который находится на пути.

bazzilic
источник
1
Это будет работать в Git. Я искал вариант, который будет использовать системную версию Vim в Git Bash. Принятый ответ работает лучше всего.
Matpie
@ sirlancelot, я думаю, я неправильно понял твой вопрос.
Базилик