Eu costumava git config --global core.editor emacs
definir meu editor de git como emacs, mas quando faço isso e comprometo algo, o editor abre uma nova janela em vez de abrir o emacs dentro do terminal. Eu quero usar o emacs como se -nw fosse dado a ele, mas escrever isso -> git config --global core.editor emacs -nw
não é a solução.
Eu preciso usar o git básico por enquanto.
Respostas:
Quando você executa
git config --global core.editor emacs -nw
, seu shell divide a linha de comando em palavras antes de chamar o git. Assim, o Git vê "emacs -nw" como dois argumentos separados. Ele precisa apenas de um para colocar no arquivo de configuração, para que o outro seja ignorado. (Na verdade, isso é mentira, mas você pode verificar a página de manual para obter detalhes.) Você pode colocar aspas em torno de uma série de palavras para dizer ao seu shell para não desmembrá-las:git config --global core.editor "emacs -nw"
dará ao "emacs -nw" git como um argumento único que fará o que você quiser.fonte
Você não especifica o que há de errado em abrir uma nova janela do GUI emacs. Se o problema for o longo tempo de inicialização, considere usar o emacsclient como seu editor. Em poucas palavras, você executa
(server-start)
o arquivo init do emacs e mantém o emacs da GUI normal aberto, e então diz ao git para usar um editor chamado emacsclient. O que acontece é que o arquivo editado aparece em um novo buffer no seu emacs em execução. Depois de terminar, você pressionaC-x #
para finalizar a sessão do emacsclient e, em seguida, o git (ou outro processo de shell que iniciou o editor) sabe que o editor "emacsclient" termina o arquivo e continua com ele. ("emacsclient" também é uma palavra, por isso também resolve seu problema imediato)Mesmo quando a edição precisa ser feita na janela do terminal, você pode executar
emacsclient -nw
e eliminar o longo tempo de inicialização. Existem mais possibilidades,man emacsclient
é uma boa leitura.fonte