Страницы

Поиск по вопросам

четверг, 1 ноября 2018 г.

Замена дефолтного редактора кода в git

Начал работать с git (а именно c BitBucket) и встроенный редактор (VIM) оказался для меня весьма непонятным в управлении.
Возникло желание заменить его на другой (хоть на встроенный в OS Windows 7 блокнот). Как это сделать?


Ответ

1. Уровни настройки.
Редактор, который использует Git, выбирается из следующего списка, именно в этом порядке (из man git-commit):
Значение переменной окружения GIT_EDITOR Значение в конфигурации Git core.editor. Используется обычный для Git приоритет настроек:
--local — для данного проекта. --global — для данного пользователя. Логично настраивать редактор именно на этом уровне. --system — для этой рабочей машины (в рамках ОС). Значение переменной окружения VISUAL Значение переменной окружения EDITOR (зачем столько переменных?) Если все эти варианты не установлены, то использует Vi/Vim.
2. Зачем -w?
Зачем в большинстве приведенных команд параметр -w (--wait)? Git открывает редактор и ждет возврата exit code, чтобы продолжить работу на основе данных в файле. Если этого параметра нет, Git будет продолжать работу сразу и не дождется, когда вы отредактируете и сохраните файл.
из atom -h
-w, --wait Wait for window to be closed before returning.
3. Настройка через изменение core.editor
Не требует прямого редактирования файлов и обладает гибкостью в уровнях настройки. Минус в том, что остальные приложения продолжат использовать редактор по умолчанию.
В общем виде настройка конфигурации выглядит так:
git config --global core.editor "editor --parameters"
3.1 Linux, OS X
Многие редакторы (Atom, TextWrangler и другие) не включают поддержку командной строки при установке. Их необходимо включить отдельно, найдя в меню команду Install Shell Commands
Эти строки можно сразу копировать и выполнять в терминале:
Atom
git config --global core.editor "atom -w"
Emacs (-w по умолчанию):
git config --global core.editor "emacs"
Sublime Text
git config --global core.editor "subl -n -w"
Textmate
git config --global core.editor "mate -w"
TextWrangler
git config --global core.editor "edit -w"
Vim (-w по умолчанию):
git config --global core.editor "vim"
3.2 Windows
Вариант 1: добавить редактор в переменную PATH и использовать строки как для *nix.
Некоторые редакторы при установке сами прописывают себя в PATH.
Вариант 2: не меняя переменную PATH, напрямую указать путь к исполняемому файлу. Обратите внимание на вложенность кавычек и на то, как лаконично выглядит параметр --wait под Windows
Notepad++, на 32-битной ОС (источник):
git config --global core.editor \ "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Notepad++, на 64-битной ОС:
git config --global core.editor \ "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Комментариев нет:

Отправить комментарий