Как я могу сделать Sublime Text редактором по умолчанию для Git?

216

У меня проблема с настройкой Sublime Text 2 как core.editorс git.

Я прочитал все посты, которые я мог найти для решения проблемы, но все еще ничего не работает для меня. Я использую Windows.

Я сделал:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

и попробовал это с различными аргументами, как -m. Когда я открываю .gitconfig, вот что там:

[user]
    name = Spencer Moran
    email = smoran02@gmail.com
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Если я пойду в Git и наберу:

README.markdown --edit

файл README открывается в Блокноте, а не в Sublime Text.

Кто-нибудь знает, что я делаю не так или как я мог это исправить?

Спенсер Моран
источник
11
Если вы печатаете только README.markdown --edit в cmd.exe, gitне участвует вообще. Измените ваши ассоциации файлов в Windows, если вы хотите, чтобы это работало.
Мат
1
Общий FYI для большинства ответов ниже: -wозначает «Дождаться закрытия файла перед возвратом» и -nозначает «Открыть новое окно». Источник: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese,
Мои любимые настройки для использования Sublime Text 3 в качестве моего редактора git: stackoverflow.com/questions/2596805/…
Габриэль Стейплз

Ответы:

343

Windows

Возвышенный текст 2 (сборка 2181)

В последней сборке 2181 только что добавлена ​​поддержка -wаргумента командной строки (wait). Следующая конфигурация позволит ST2 работать в качестве редактора git по умолчанию в Windows. Это позволит git открыть ST2 для сообщений коммита и тому подобного.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Возвышенный текст 3 (сборка 3065)

В Sublime Text 3 (Build 3065) добавлен subl.exeпомощник командной строки. Используйте subl.exe -hдля доступных вам вариантов. У меня есть hot_exit: trueи remember_open_files: trueустановить в моих пользовательских настройках Sublime Text. Я нашел следующее, чтобы git config работал хорошо для меня.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac и Linux

Установите Sublime в качестве редактора для Git, введя следующую команду в терминале:

git config --global core.editor "subl -n -w"


С этим Git config, новая вкладка открывается в моем редакторе. Я редактирую свое сообщение о коммите, сохраняю вкладку ( Ctrl+ S) и закрываю ее ( Ctrl+ W).

Git будет ждать закрытия вкладки, чтобы продолжить работу.

jrotello
источник
14
Лично, в дополнение к настройке моего редактора, как подсказывает @jrotello, мой опыт работы с ST2 / git значительно улучшился, когда я добавил следующие параметры в настройки ST2: {"hot_exit": false, "Remember_open_files": false, "close_windows_when_empty": true }
Сэнди
6
@Phrogz: я смог заставить его работать в моем .gitconfig со следующим синтаксисом:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken
4
Для меня это откроет новую вкладку, если возвышенный текст уже открыт. Закрытие вкладки не позволяет git знать, что все готово. Я попробовал --multiinstance, но, похоже, ничего не делает.
Дэвид Фэйвр
5
обратите внимание, что когда hot_exitложь и свет погас, все несохраненные работы начнутся !!!!!!!!!!
Юрген Павел
4
На самом деле, используя "-n -w", git не может сказать, что закрытое текстовое окно закрыто (по крайней мере, если у меня есть открытое существующее окно). "-w --multiinstance" по-прежнему работает лучше, хотя в новом возвышенном окне все существующие вкладки открываются заново. Кажется, их можно смело игнорировать.
Дэвид Фавр
94

Вы можете использовать эту команду на Mac и Linux:

git config --global core.editor "subl -n -w"
sfufoet
источник
26
На самом деле, рекомендация для Mac в эти дни состоит в том, чтобы использовать символическую ссылку subl где-нибудь в вашем $ PATH и установить для вашего редактора значение 'subl -w'. Это в официальных документах.
Сэнди
8
Документы, на которые я ссылался: sublimetext.com/docs/2/osx_command_line.html
Сэнди,
8
Документы говорят, чтобы использовать subl -w, но если у вас есть другие открытые вкладки, это не будет работать правильно. Я нашел subl -n -wработы лучше, так как он открывает новое окно.
13
1
@iano, если я сделаю это, я должен закрыть вкладку или закрыть окно для фиксации? закрытое окно не работает
Karthik T
Это открывает пустой документ в превосходной для меня, пока я следовал этим инструкциям: sublimetext.com/docs/3/osx_command_line.html, но изменил путь от Sublime Text.app до Sublime Text 2.app
Evanss
14

Для Mac OS X в файле ~ / .gitconfig в [core] мне пришлось поместить этот код, чтобы решить проблему с моей стороны.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

Это было, когда subl работал нормально, но git не смог получить к нему доступ. И отображал эти ошибки

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ахмад Авайс
источник
11

Для Mac и возвышенного текста 3 :

Если git config --global core.editor "subl -n -w"не работает, используйте эту git configкоманду:

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Примечание: он не содержит экранирования от обратной косой черты.

ню-бо
источник
7

что у меня сработало в cygwin / zsh:

в / usr / local / bin создайте файл subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

в gitconfig:

editor = /usr/local/bin/subl_git
meeech
источник
извините за вопрос новичка, но как мне получить доступ к gitconfig? Это отличается от бега git config --list? Заранее спасибо.
Райан Чейз
это просто перечисляет их. тебе нужно отредактировать свой gitconfig
meeech
У меня был пробел в моей пользовательской папке, поэтому я использовал измененный -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

С Sublime Text 2 и следующей конфигурацией, если ничего не происходит, когда вы закрываете файл комментариев git commit:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Если git commit не завершается, когда вы закрываете файл комментариев COMMIT_EDITMSG в Sublime, я обнаружил, что это, вероятно, связано с тем, что вы запускаете CMD в режиме администратора (и Sublime Text уже открыт в режиме без прав администратора). У меня была та же проблема , и она работала для меня , когда я начал свою CMD в обычном режиме.

Ps: просто хотел ответить на проблему, указанную @david в комментариях к принятому ответу, но я не смог оставить комментарий, так как я здесь новичок ... поэтому я сделал новый ответ, потому что я думаю, что это может быть полезно для некоторых людей, сталкивающихся с проблемой.

Francois
источник
Спасибо за чаевые. Знаете ли вы о решении?
Скотт Вегнер
@ScottWegner В качестве обходного пути просто запустите CMD в режиме без прав администратора. Вам не нужно находиться в режиме администратора для запуска команд git. Однако, если вам действительно нужно быть в режиме администратора, я не нашел решения для этого, кроме как открыть еще один экземпляр CMD.
Франсуа
спасибо за продолжение. Я получаю повышенные оболочки, потому что моей среде разработки требуется режим администратора для других инструментов (Visual Studio), поэтому я запускаю всю свою оболочку с повышенными правами. Я думаю, что я буду исследовать только повышение инструментов, которые нуждаются в этом.
Скотт Вегнер
1
@ScottWegner Я лично использую Cmder (полная версия даже включает в себя msysgit). Он позволяет создавать несколько экземпляров CMD, bash или других оболочек в уникальном окне с вкладками. Некоторые вкладки можно запускать в режиме администратора, а другие - в обычном режиме. У меня обычно есть одна вкладка, посвященная git, и другие вкладки для других моих инструментов. Может быть, вам было бы интересно попробовать. Это отличный инструмент!
Франсуа
Re: режим администратора - я думаю, хитрость в том, что ваша оболочка и возвышенный должны использовать одни и те же привилегии. т. е. если вы работаете с терминалом поднятым и возвышенным, он работает плавно.
Джозеф Эвенсен
5

Я только что успешно сделал это с помощью PowerShell (инструменты командной строки для Windows, которые также используются в качестве командной строки по умолчанию в GithubforWindows)

Просто создайте папку «WindowsPowerShell» на «C: \ Users \% username% \ My Documents». Затем создайте файл с именем "profile.ps1". Убедитесь, что у вас правильное расширение файла .ps1, а не .txt. внутри profile.ps1 поместите эту строку, чтобы установить команду псевдонима:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Убедитесь, что на вашем компьютере верный каталог. Вы также можете увидеть детали конфигурации здесь .

Теперь я могу редактировать файлы с помощью Sublime Text 2 с помощью команды PowerShell, просто набрав:

subl filename

Надеюсь, это полезно ...

rwinzhang
источник
4
Чтобы открыть текущую папку в Sublime Text 2, вы можете использовать: subl .
awayken
Для Sublime Text 3 используйте новый файл subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

Сегодня вечером я столкнулся с той же проблемой с редактором git в Windows , и, наконец, я понял.

Вам нужно будет указать путь к редактору с помощью синтаксиса bash и использования формата DOS 8.3, чтобы избежать пробелов :

Это не работает (для меня):

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

Это сделать:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Вы можете получить имя DOS 8.3 для каталога с помощью dir / x

Диего Буэндиа
источник
1

Я почему-то боролся с этим, ни один из приведенных выше примеров не работал для меня. Это было мое решение, однако:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

Вам особенно нужно, чтобы ' 'вокруг пути и $*в конце args, все в " ".

justin.m.chase
источник
1

Если вы пользователь Mac, то вот как:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
mainframer
источник
1

у меня возникли проблемы с вызовом notepad ++ из gitbash даже после установки его в качестве core.editor.

я все решил, добавив следующую строку в мой файл .bashrc в моем каталоге установки gitbash.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

Итак, я могу вызвать Notepad ++ с псевдонимом "Npp". Я чувствую, что это может помочь вам, если вы измените каталог на соответствующий редактор, который вы хотите использовать.

OLATOMIDE
источник
1

Для пользователей MAC я могу сказать, что для Sublime используйте следующее:

Сначала проверьте файл .gitconfig с помощью команды:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Теперь можно добавить эту конфигурацию:

git config --global core.editor "subl -n -wl1"

Где l1скажут начать с 1 строки.

bvmCoder
источник
0

Для Windows 7 я нашел следующее решение работает:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
источник
0

В Windows, если вы устанавливаете git, вы можете выбрать другой редактор и указать следующую командную строку. C: \ Program Files \ Sublime Text 3 \ sublime_text.exe -w Образ установщика

Ксавье Джон
источник
0

Я не видел каких-либо обновлений, касающихся Windows, позволяющих установке Git активно выбирать Sublime Text в качестве текстового редактора по умолчанию без всяких усилий и исходных кодов переопределения ... Sublime Text показывается как опция в (пере) установке Git

Angelfirenze
источник
0

На MacOS (Mojave) ниже работает для меня для Sublime 3 :

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"

Пратик Патель
источник