Como tornar o Sublime Text o editor padrão do Git?

216

Estou com um problema ao definir o Sublime Text 2 como core.editorcom git.

Eu li todas as postagens que pude encontrar abordando o problema, mas ainda nada está funcionando para mim. Estou executando o Windows.

Eu fiz:

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

e tentei isso com vários argumentos como -m. Quando abro o meu .gitconfig, é isso que está lá:

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

Se eu for para o Git e digite:

README.markdown --edit

o arquivo LEIA-ME é aberto no bloco de notas, não em texto sublime.

Alguém tem alguma idéia do que estou fazendo de errado ou como eu poderia consertar isso?

Spencer Moran
fonte
11
Se você estiver digitando apenas README.markdown --edit no cmd.exe, gitnão estará envolvido. Altere suas associações de arquivos no Windows se desejar que isso funcione.
Mat
1
Um FYI geral para a maioria das respostas abaixo: -wsignifica "Aguarde o arquivo ser fechado antes de retornar" e -nsignifica "Abrir uma nova janela". Fonte: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Minhas definições favoritas para usar Sublime Texto 3 como meu editor git: stackoverflow.com/questions/2596805/...
Gabriel Staples

Respostas:

343

janelas

Sublime Text 2 (Build 2181)

O Build 2181 mais recente acabou de adicionar suporte ao -wargumento da linha de comandos (espera). A configuração a seguir permitirá que o ST2 funcione como seu editor git padrão no Windows. Isso permitirá que o git abra o ST2 para enviar mensagens e tal.

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

Texto sublime 3 (compilação 3065)

Sublime Text 3 (Build 3065) adicionou o subl.exeassistente de linha de comando. Use subl.exe -hpara as opções disponíveis para você. Eu tenho hot_exit: truee remember_open_files: truedefino nas minhas configurações de usuário de texto sublime. Eu encontrei o seguinte para o git config funcionar bem para mim.

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

Mac e Linux

Defina Sublime como seu editor para o Git digitando o seguinte comando no terminal:

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


Com essa configuração do Git, a nova guia é aberta no meu editor. Eu edito minha mensagem de confirmação, salve a guia ( Ctrl+ S) e feche-a ( Ctrl+ W).

O Git esperará até que a guia seja fechada para continuar seu trabalho.

jrotello
fonte
14
Pessoalmente, além de definir meu editor como o @jrotello sugere, minha experiência com o ST2 / git melhorou bastante quando adiciono as seguintes opções às minhas configurações do ST2: {"hot_exit": false, "remember_open_files": false, "close_windows_when_empty": true }
Sandy
6
@Phrogz: Consegui fazê-lo funcionar no meu .gitconfig com a seguinte sintaxe:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken
4
Para mim, isso abrirá uma nova guia se o texto sublime já estiver aberto. Fechando a guia, o git não sabe que está pronto. Eu tentei --multiinstância, mas parece não fazer nada.
precisa
5
note que quando hot_exité falso e as luzes se apagam, todo o trabalho não salvo começará !!!!!!!!!!
Jürgen Paul
4
Na verdade, usando "-n -w", o git não parece capaz de dizer que a janela de texto sublime foi fechada (se eu tiver pelo menos uma janela sublime existente). "-w --multiinstância" ainda parece funcionar melhor, embora na nova janela sublime quaisquer guias existentes sejam reabertas. Parece que eles podem ser ignorados com segurança.
David Faivre 24/03
94

Você pode usar este comando no Mac e Linux:

git config --global core.editor "subl -n -w"
sfufoet
fonte
26
Atualmente, a recomendação no Mac atualmente é fazer o link simbólico de subl para algum lugar do seu $ PATH e definir seu editor como 'subl -w'. Está nos documentos oficiais.
317 Sandy Sandy
8
Os documentos a que me referi são: sublimetext.com/docs/2/osx_command_line.html
Sandy
8
Os documentos dizem para usar subl -w, mas se você tiver outras guias abertas, isso não funcionará corretamente. Descobri que subl -n -wfunciona melhor, pois abre uma nova janela.
Ian
1
@iano Se eu fizer isso devo fechar a aba ou fechar a janela para confirmar? Fechar janela não funcionava
Karthik T
Isso abre um documento vazio em sublime para mim até que eu segui estas instruções: sublimetext.com/docs/3/osx_command_line.html mas mudou o caminho de Sublime Text.app para Sublime 2.app Texto
Evanss
14

Para o Mac OS X no arquivo ~ / .gitconfig em [core], tive que colocar esse código para resolver o problema do meu lado.

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

Foi quando subl estava funcionando bem, mas o git não conseguiu acessá-lo. E estava exibindo esses erros

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ahmad Awais
fonte
11

Para Mac e Sublime Text 3 :

Se git config --global core.editor "subl -n -w"não funcionar, use este git configcomando:

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

Nota: não contém barras invertidas de escape.

nu-bo
fonte
7

o que funcionou para mim no cygwin / zsh:

em / usr / local / bin, crie um arquivo subl_git

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

no gitconfig:

editor = /usr/local/bin/subl_git
meeech
fonte
desculpe minha pergunta para iniciantes, mas como faço para acessar o gitconfig? Isso é diferente de correr git config --list? Desde já, obrigado.
Ryan perseguição
que apenas as lista. você ned para editar seu gitconfig
meeech 08/12/16
Eu tinha um espaço na minha pasta de usuário, então eu usei um modificado - #"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

Com o Sublime Text 2 e a seguinte configuração, se nada acontecer quando você fechar o arquivo de comentários do git commit:

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

Se o commit do git não terminar quando você fechar o arquivo de comentários do COMMIT_EDITMSG no Sublime, é provável que isso ocorra porque você está executando o CMD no modo administrador (e já possui um Texto Sublime aberto no modo não administrador). Eu tive o mesmo problema e funcionou para mim quando iniciei meu CMD no modo normal.

Ps: só queria responder ao problema @david apontado nos comentários da resposta aceita, mas não pude postar comentários, já que sou novo aqui ... por isso fiz uma nova resposta, porque acho que isso pode ser útil para algumas pessoas que encontram o problema.

François
fonte
Obrigado pela dica. Você conhece uma solução?
Scott Wegner
@ScottWegner Basta iniciar seu CMD no modo não administrador, como uma solução alternativa. Você não precisa estar no modo de administrador para executar comandos git. No entanto, se você realmente precisa estar no modo de administrador, não encontrei solução para isso, exceto abrir outra instância do CMD.
Francois
Obrigado pelo seguimento. Acabo com shells elevados porque meu ambiente de desenvolvimento requer o modo de administrador para outras ferramentas (Visual Studio), portanto, executo meu shell inteiro elevado. Acho que vou explorar apenas elevando as ferramentas necessárias.
Scott Wegner
1
@ ScottWegner Eu pessoalmente uso o Cmder (a versão completa ainda inclui o msysgit). Permite várias instâncias de CMD, bash ou outros shells, em uma janela exclusiva com guias. Você pode iniciar algumas guias no modo administrador e outras no modo normal. Normalmente, tenho uma guia dedicada ao git e outras guias para minhas outras ferramentas. Talvez você esteja interessado em tentar. É uma ótima ferramenta!
François
re: admin mode - acho que o truque é que seu shell e sublime precisam estar usando os mesmos privilégios. ou seja, se você estiver executando o seu terminal elevado e sublime também é elevado, ele funciona sem problemas.
Joseph Evensen
5

Acabei de fazê-lo com sucesso com a ajuda do PowerShell (ferramentas de linha de comando para Windows, que também devem ser usadas como linha de comando padrão no GithubforWindows)

Basta criar uma pasta "WindowsPowerShell" em "C: \ Usuários \% nome de usuário% \ Meus Documentos". Em seguida, crie um arquivo chamado "profile.ps1". Verifique se você possui a extensão de arquivo correta, .ps1 e não .txt. dentro do profile.ps1, coloque esta linha para definir um comando alternativo:

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

Verifique se o diretório sublime da sua máquina está correto. Você também pode ver os detalhes da configuração aqui .

Agora, eu posso editar arquivos com o Sublime Text 2 por meio do comando PowerShell digitando:

subl filename

Espero que isso seja útil ...

rwinzhang
fonte
4
Para abrir a pasta atual no Sublime Text 2, você pode usar: subl .
awayken
Para Sublime Text 3, use o novo subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

Eu enfrentei o mesmo problema com o editor git no Windows hoje à noite e finalmente consegui.

Você precisará definir o caminho do editor com a sintaxe bash e usar o formato DOS 8.3 para evitar espaços :

Isso não funciona (para mim):

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

Isso faz:

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

Você pode obter o nome do DOS 8.3 para um diretório com dir / x

Diego Buendia
fonte
1

Eu estava apenas lutando com isso por algum motivo, nenhum dos exemplos acima funcionou para mim. Esta foi a minha solução no entanto:

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

Você precisa especificamente do ' 'contorno do caminho e $*do final dos argumentos, tudo dentro " ".

justin.m.chase
fonte
1

Se você é usuário de Mac, veja como:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
mainframer
fonte
1

bem, tive alguns problemas ao invocar o notepad ++ do gitbash, mesmo depois de defini-lo como meu core.editor.

Eu resolvi tudo acrescentando a linha abaixo ao meu arquivo .bashrc no meu diretório de instalação do gitbash.

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

então, eu posso chamar o bloco de notas ++ com o alias "npp". Eu sinto que isso pode ajudá-lo se você alterar o diretório para o respectivo editor que deseja usar.

OLATOMIDA
fonte
1

Para usuários de MAC, posso dizer para o Sublime, use o seguinte:

Primeiro, verifique o arquivo .gitconfig usando o comando:

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

Agora pode-se adicionar esta configuração:

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

Onde l1dirá para começar na linha 1.

bvmCoder
fonte
0

Para o Windows 7, encontrei a seguinte solução:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
fonte
0

No Windows, se você estiver instalando o git, poderá selecionar outro editor e fornecer a seguinte linha de comando. C: \ Arquivos de Programas \ Sublime Text 3 \ sublime_text.exe -w Imagem do instalador

Xavier John
fonte
0

Eu não vi nenhuma instância de atualizações relacionadas ao Windows, permitindo que a instalação do Git escolha ativamente o Sublime Text como seu editor de texto padrão, sem todo o estereótipo e os códigos de substituição originais ... Texto sublime mostrado como opção na (re) instalação do Git

Angelfirenze
fonte
0

No MacOS (Mojave), abaixo, estou trabalhando para mim no Sublime 3 :

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

Pratik Patel
fonte