Como eu faço o Git usar o editor de minha escolha para commits?

Eu preferiria escrever minhas mensagens de commit no Vim, mas elas estão abrindo no Emacs.

Como faço para configurar o Git para sempre usar o Vim? Note que eu quero fazer isso globalmente, não apenas para um único projeto.

   

Se você quer definir o editor apenas para o Git, você também não precisa de ambos:

  • Configure o core.editor na sua configuração do Git: git config --global core.editor "vim"
  • Configure a variável de ambiente GIT_EDITOR : export GIT_EDITOR=vim

Se você quiser definir o editor para o Git e também outros programas , defina as variables ​​de ambiente padronizadas VISUAL e EDITOR *:

 export VISUAL=vim export EDITOR="$VISUAL" 

* A configuração de ambos não é necessariamente necessária, mas alguns programas podem não usar o VISUAL mais correto. Veja VISUAL vs. EDITOR .


Para Sublime Text : Adicione isto ao .gitconfig . O --wait é importante. (permite digitar texto em sublime e esperará pelo evento save / close.

 [core] editor = 'subl' --wait 

‘subl’ pode ser substituído pelo caminho completo do executável, mas geralmente está disponível quando instalado corretamente.

Copie e cole isto:

 git config --global core.editor "vim" 

Caso você queira saber o que está fazendo. De man git-commit :

VARIÁVEIS DE AMBIENTE E CONFIGURAÇÃO

O editor usado para editar a mensagem de log de confirmação será escolhido a partir da variável de ambiente GIT_EDITOR , da variável de configuração core.editor , da variável de ambiente VISUAL ou da variável de ambiente EDITOR (nessa ordem).

No Ubuntu e também no Debian (obrigado @ MichielB) também é possível alterar o editor padrão:

 sudo update-alternatives --config editor 

Qual solicitará o seguinte:

 There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode * 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 

No windows 7, ao adicionar o editor “Sublime”, ele ainda estava me dando um erro:

Anulando a confirmação devido à mensagem de confirmação vazia.

Sublime não conseguiu manter o foco.

Para corrigir isso, abri o arquivo .gitconfig em c: / users / username / folder e adicionei a seguinte linha com a opção –wait fora das aspas duplas.

 [core] editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait 

Espero que seja útil para alguém que enfrenta problema semelhante com Sublime.

No Windows 7, configurando o editor para o Notepad ++

  • Abra qualquer editor de texto.
  • Abra este arquivo: C:\Users\YOUR_USERNAME\.gitconfig
  • Adicione esta seção ao final:

 [core] editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • Salve e feche o arquivo.
  • Quando você está cometendo com o git, apenas escreva git commit e pressione Enter . Ele irá abrir o Notepad ++.
  • Escreva sua mensagem de commit no topo do arquivo, salve e feche o arquivo. Feito!

E se você estiver trabalhando com designers usando a linha de comando, então o Pico, e não conheça atalhos;)

 git config --global core.editor "pico" 

Ou

 export VISUAL=pico export EDITOR=pico 

Configurando o Sublime Text 2 como editor de confirmação do Git no Mac OSX 10

Execute este comando:

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

Ou apenas:

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

Para tornar o Visual Studio Code (vscode) seu editor git padrão

 git config --global core.editor "code --wait" 

Atom como seu editor git

 git config --global core.editor "atom --wait" 

Atom precisa ser configurado para ser executado a partir da linha de comando para o acima para funcionar:

OS X : instalar comandos shell do Atom: barra de menu> Atom> Instalar Comandos do Shell

Windows : nenhuma ação é necessária – o atom está configurado para ser executado a partir da linha de comandos por padrão

Para usuários do emacs

.emacs :

 (server-start) 

shellrc :

 export EDITOR=emacsclient 

Windows: Configurando o Bloco de Notas como o Editor de Mensagens de Confirmação Padrão

 git config --global core.editor notepad.exe 

Pressione Ctrl + S para salvar sua mensagem de commit. Para descartar, basta fechar a janela do bloco de notas sem salvar.

No caso de você clicar no atalho para salvar, então decida abortar, vá para Arquivo-> Salvar como, e na checkbox de diálogo que é aberta, altere “Salvar como tipo” para “Todos os arquivos (*. *)”. Você verá um arquivo chamado “COMMIT_EDITMSG”. Exclua e feche a janela do bloco de notas.

Edit: Como alternativa, e mais facilmente, exclua todo o conteúdo da janela do bloco de notas aberto e pressione Salvar. (obrigado mwfearnley pelo comentário!)

Eu acho que para pequenos write-ups, como o bloco de notas de mensagens de confirmação serve melhor, porque é simples, existe com o Windows, abre em nenhum momento. Mesmo o seu sublime pode demorar um ou dois segundos para ser ativado quando você tem uma carga de plugins e outras coisas.

Melhores configurações para o Sublime Text 3 como seu editor git (instruções para Windows e Linux):

Para seguir estas instruções no Windows, certifique-se de ter instalado o git para o Windows . No Windows, gosto de usar o Git BASH para parecer mais com o Linux.

Primeiro, queremos criar um projeto Sublime Text especial para que possamos especificar configurações de projeto especiais que desejamos definir sempre que o git chamar o editor, para facilitar as coisas ao editar no git. Por exemplo, eu normalmente coloco minha régua em 120 caracteres na maioria dos projetos, mas para mensagens git commit eu quero que sejam 72 caracteres para que caiba bem em um terminal quando você chamar git log ou git lg .


1. Crie um projeto Sublime Text com as configurações que queremos usar para editar as mensagens de confirmação do git

Abra o Sublime Text e vá para “Arquivo” -> “Nova Janela” para criar um novo projeto anônimo. Vá para “Projeto” -> “Salvar projeto como …” e escolha um local para salvá-lo. No Linux , salvei-o em meu diretório inicial do Linux com o nome de arquivo .gitconfig.sublime-project . O caminho é, portanto: ~/.gitconfig.sublime-project . No Windows, salve-o também no seu diretório pessoal, ex: C:\Users\MY_USER_NAME\.gitconfig.sublime-project Agora, vá para “Project” -> “Edit Project” para editar as configurações do projeto. Cole o seguinte e salve as configurações. Faça mais edições para as configurações do seu projeto, se desejar.

 { //For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html "folders": [ ], "settings": { // Disables horizontal scrolling if enabled. // May be set to true, false, or "auto", where it will be disabled for // source code, and otherwise enabled. "word_wrap": false, // Set to a value other than 0 to force wrapping at that column rather than the // window width "wrap_width": 0, // Columns in which to display vertical rulers "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles // The number of spaces a tab is considered equal to "tab_size": 4, // Set to true to insert spaces when tab is pressed "translate_tabs_to_spaces": true, }, "build_systems": [ ] } 

2. Configure o editor para ser usado pelo git

Agora precisamos configurar o editor para ser usado pelo git, editando o arquivo .gitconfig .

Para o Linux:

Sua cópia de usuário estará localizada em ~/.gitconfig . Abra este arquivo e adicione as seguintes linhas. Certifique-se de usar o nome do caminho correto para o projeto git que você acabou de criar acima! Estou usando o ~/.gitconfig.sublime-project .

 [core] editor = subl --project ~/.gitconfig.sublime-project --wait 

O --wait é importante, pois força o git a esperar até você fechar o arquivo antes de continuar. A linha --project é importante para dizer ao Sublime Text qual projeto você deseja abrir sempre que o git abrir o Sublime.

Por @ resposta digitaldreamer acima ( https://stackoverflow.com/a/2596835/4561887 ), ” subl pode ser substituído pelo caminho completo do executável, mas [o alias subl ] geralmente está disponível quando [Sublime está] corretamente instalado. ”

Para Windows:

Para o Windows, primeiro leia as instruções do Linux para informações de segundo plano. Agora vamos fazer algo quase idêntico.

(OPCIONAL: crie um subl alias para uso no Git BASH):

Abra um editor de texto (ex: Notepad, Notepad ++, Sublime Text, Geany, etc), e crie um arquivo chamado “.bash_profile” no seu diretório home. Seu caminho, portanto, será: C:\Users\MY_USER_NAME\.bash_profile . Salve o seguinte nele:

 alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe" 

Isso cria um apelido Git BASH chamado subl que agora podemos usar no Git BASH para Windows, para abrir facilmente o Sublime. Esta etapa não é necessária, mas é útil para uso geral do Git BASH. Agora você pode chamar subl . , por exemplo, no Git BASH para abrir um novo projeto Sublime no seu diretório atual.

(OBRIGATÓRIO):

Edite o arquivo .gitconfig encontrado em seu diretório pessoal: C:\Users\MY_USER_NAME\.gitconfig , adicionando o seguinte a ele. Observe as mudanças sutis das instruções do Linux acima:

 [core] editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait 
  • Observe que você deve especificar o caminho completo para o executável do Sublime Text. Observe a direção das barras! Use / NOT \ para separar pastas no nome do caminho! (Obrigado VonC por me ajudar a ver isso ).
  • Nosso subl alias que fizemos para o Git BASH acima não funciona aqui, então você não pode usá-lo como fizemos no exemplo do Linux, em vez disso você deve especificar o caminho inteiro como mostrado acima.
  • O símbolo ~ , no entanto, ainda funciona aqui para chegar ao diretório base do Windows.

2.5. (Opcional) Instale o pacote “Git” no Sublime Text 3.

Isso dá a você destaque de syntax para mensagens git commit , assim como access a outros comandos git como git blame (que eu uso com freqüência no Sublime Text) ou git commit (que eu não uso no Sublime Text pois prefiro o linha de comando para o stream geral do git, como eu mencionei nos meus comentários abaixo desta resposta).

Para instalar um pacote: Primeiro, assegure-se de que “Package Control” esteja instalado. Em seguida, pressione Ctrl + Shift + P (o mesmo que Ferramentas → Paleta de Comandos) e digite todo ou parte de “Controle de Pacote: Instalar Pacote” e pressione Enter. Na checkbox de pesquisa que aparece, procure o pacote “Git” e pressione Enter, ou clique nele, para instalá-lo automaticamente.

Uma vez instalado, Ctrl + Shift + P, em seguida, procurar por “git” trará os comandos git que você pode usar internamente dentro do Sublime Text agora, como git blame .


3. Use isso

Agora, quando você chamar git commit , por exemplo, como normal a partir da linha de comando, o Sublime Text abrirá no .gitconfig.sublime-project que criamos acima, com as configurações do projeto! À medida que você digita um parágrafo, você notará que ele se estende além da régua que definimos, uma vez que o quebra automática de linhas está desativado. Para forçar um envoltório difícil por meio de retornos rígidos inseridos automaticamente no final de cada linha, coloque o cursor na linha longa que deseja encapsular automaticamente e pressione Alt + Q. Agora, o hard-wrap / hard-fold será feito em 72 caracteres, que é o que definimos no parâmetro “rulers” das configurações do projeto, acima.

Agora, salve sua mensagem de commit com Ctrl + S , e saia (para completar seu git commit ) com Ctrl + Shift + W.

Feito!

Mvim como seu editor git

Como todos os outros aplicativos da GUI, você deve iniciar o mvim com o sinalizador de espera.

 git config --global core.editor "mvim --remote-wait" 

Apenas tente EDITOR=vim git commit .

Ou você pode configurar seu EDITOR para vim por export EDITOR=vim em seu bashrc.

Para usuários do TextWrangler da loja de aplicativos Mac:

 git config --global core.editor "open -n -W -a TextWrangler" 

Além disso, verifique se o seu “TextWrangler> Preferências> Aplicativo> Quando o TextWrangler se torna ativo:” a configuração está definida como “Não fazer nada”

Isso funciona para mim no OS X 10.11.4 com TextWrangler 5.0.2 da loja de aplicativos Mac.

Explicação:

O -n significa abrir em uma nova instância.

O -W significa esperar até que o aplicativo saia antes de usar o conteúdo do arquivo editado como a mensagem de confirmação.

O -a TextWrangler significa usar o aplicativo TextWrangler para abrir o arquivo.

Veja man open no seu aplicativo Mac Terminal para mais detalhes.

Para usuários do Windows que desejam usar neovim com o Windows Subsystem for Linux:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

Esta não é uma solução à prova de falhas, já que não suporta o rebasing interativo (por exemplo). Melhorias muito bem vindas!

Para usuários do Textmate

Isso abre o editor Textmate quando você deseja editar seus commits. Requer ferramentas de linha de comando textmate para serem instaladas.

git config --global core.editor "mate -w"

Para usuários do Windows que desejam usar o Kinesics Text Editor

Crie um arquivo chamado ‘k.sh’, adicione o seguinte texto e coloque em seu diretório home (~):

 winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1 

No prompt do git, digite:

 git config --global core.editor ~/k.sh