8

Начал работать с git (а именно c BitBucket) и встроенный редактор (VIM) оказался для меня весьма непонятным в управлении.

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

Nick Volynkin
  • 34,094
DarkVss
  • 925

3 Answers3

13

1. Уровни настройки.

Редактор, который использует Git, выбирается из следующего списка, именно в этом порядке (из man git-commit):

  1. Значение переменной окружения GIT_EDITOR
  2. Значение в конфигурации Git core.editor. Используется обычный для Git приоритет настроек:
    1. --local — для данного проекта.
    2. --global — для данного пользователя. Логично настраивать редактор именно на этом уровне.
    3. --system — для этой рабочей машины (в рамках ОС).
  3. Значение переменной окружения VISUAL
  4. Значение переменной окружения EDITOR (зачем столько переменных?)
  5. Если все эти варианты не установлены, то использует 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"
Nick Volynkin
  • 34,094
5

В гите есть настройка для редактора, можно сделать например так

git config --global core.editor youreditor

Переменная youreditor должна быть прописана в PATH. Когда Вы набираете в виндовой консоли youreditor, то консоль лезет в PATH и смотрит, какой файл соответствует собственно youreditor.

Однако менять его стоит на что-то продвинутое, с обычным блокнотом Вы гарантированно получите немало проблем, в частности с окончаниями строк.

  • я пытаюсь хоть на что-то более функциональное поменять. такой вариант я сразу испробовал.итог-в конфиге поменялось,а на деле нет.... – DarkVss Jul 22 '15 at 12:44
  • 2
    @DarkVss функциональнее vim сложнее что-то придумать. просто нужно научиться его готовить – zzashpaupat Jul 22 '15 at 12:45
  • @DarkVss, Вы прописали путь к вашему более функциональному редактору в переменных окружения? – Утка Учится Укрываться Jul 22 '15 at 12:46
  • @MakarovAV благодарю) – DarkVss Jul 22 '15 at 12:51
0

Очень удобный редактор git средах от JetBrains (PHPStorm, WebStorm, RubyMine, IDEA)

Алгоритм добавления git репозитория:

  1. VCS -> Enable VCI
  2. git add ./
  3. Создаем на BitBucket новый репозиторий
  4. Прописываем в настройках терминала phpstom "C:\Program Files (x86)\Git\bin\sh.exe" --login -i - в случае windows, /bin/bash - в случае linux
  5. Пишем в консоли

    git remote add origin https://ASDAlexey@bitbucket.org/ASDAlexey/angular-multi-select.git  
    
Nofate
  • 34,603
  • Я не понял, а причем тут добавление репозитория? Зачем при этом добавлять файлы и не коммитить их? – Nick Volynkin Jul 23 '15 at 09:26
  • Конечно в JetBrains (PHPStorm, WebStorm, RubyMine, IDEA) можно коммитит и пушить. Я просто описал алгоритм подключения редактора к git bitbucket.org аналогично подключается и к github Внутри JetBrains хороший визуальный интерфейн git, но также паралльно с ним можно пользоваться обычным терминолом, который тоже встроен в JetBrains. – Alexey Popov Jul 24 '15 at 09:05
  • да, я тоже всегда пользуюсь встроенной консолью в IDEA (впрочем, она вроде как просто "прокси" для zsh ). Вы в принципе дельный ответ написали, только он не на этот вопрос. Вот мне интересно, можно ли чтобы после команды git commit (без параметра -m"...") у меня редактирование сообщения открывалось в IDEA. Знаете, как такое настроить? – Nick Volynkin Jul 24 '15 at 09:09
  • и, кстати, если дефолтный редактор не заменить, то даже из консоли в IDEA после команды git commit или git rebase -i <revision> откроется Vim. – Nick Volynkin Jul 24 '15 at 09:11