Alterar o editor padrão para arquivos abertos no terminal? (por exemplo, defina-o para TextEdit / Coda / Textmate)

110

Existe uma maneira de fazer com que os arquivos abertos para edição no terminal sejam abertos no Textedit?

Por exemplo, onde um comando pode abrir um arquivo para edição (como git commit), em vez de abrir esse arquivo no vim ou emacs, ele abriria no Textedit (ou talvez outro aplicativo de edição de texto de sua escolha, como Coda ou Sublime).

E como uma pergunta bônus, existe alguma maneira de configurar especificamente o git para abrir automaticamente o arquivo criado após a execução git commitem um editor do diretório de aplicativos?

Diógenes
fonte
1
Sim, estou usando o OSX (10.6.4).
Diógenes
A melhor solução que encontrei é usar duti-> apple.stackexchange.com/a/123954/58507
Gomino
para mac os 10.10+, as soluções acima não funcionam. Tente este apple.stackexchange.com/questions/123833/…
Rishikesh Shukla

Respostas:

136

A maioria dos programas verificará a $EDITORvariável de ambiente, então você pode definir isso para o caminho do TextEdit em seu bashrc. O Git também usará isso.

Como fazer isso:

  • Adicione o seguinte ao seu ~/.bashrcarquivo:
    export EDITOR="/Applications/TextEdit.app/Contents/MacOS/TextEdit"
  • ou apenas digite o seguinte comando em seu Terminal:
    echo "export EDITOR=\"/Applications/TextEdit.app/Contents/MacOS/TextEdit\"" >> ~/.bashrc

Se você estiver usando zsh, use em ~/.zshrcvez de ~/.bashrc.

alternativo
fonte
20
Perfeito, é isso. Também executei este comando para ter certeza de que o git funciona da maneira que eu esperava. Isso git config --global --unset-all core.editorentão git config --global --add core.editor "open -W -n".
Diógenes
Você está usando um shell diferente?
alternativa
5
no meu caso, estou usando zsh, obviamente, preciso atualizar o .zshrcarquivo de configuração.
Malloc,
3
use aspas se o caminho para seu editor tiver espaços, por exemplo, "echo "export EDITOR=\"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl\"" >> ~/.bashrc" e você pode ter que recarregar seu .bashrc com:source ~/.bashrc
Mars Redwyne
Obrigado, defini o editor nano como padrão por este. Veja como adicioná-lo ao OSX: http://hints.macworld.com/article.php?story=20021017065800302
Micer
28

Use git config --global core.editor mate -wou git config --global core.editor opencomo @dmckee sugere nos comentários.

Referência: http://git-scm.com/docs/git-config

Ionuț G. Stan
fonte
3
... e configurá-lo para usar opensignifica que você obtém automaticamente o padrão do localizador. Portanto, as mudanças no localizador são propagadas naturalmente.
dmckee --- ex-moderador gatinho
4
openusa Launch Services para determinar o tipo de arquivo, principalmente com base em sua extensão. Se o arquivo tiver uma extensão desconhecida, não conseguirá abri-lo. Geralmente, seu editor CLI deve ser algo que assume arquivos de texto ...
Gordon Davisson
Algumas instruções (muito) explícitas seriam muito úteis ... a referência é extremamente concisa.
Diógenes
2
@Diogenes: Veja minha resposta em uma postagem diferente se você ainda precisar de ajuda mais explícita: stackoverflow.com/questions/6435246/…
X-Istence
4
Melhor ser git config --global core.editor "open -W"(caso contrário, você obterá um Aborting commit due to empty commit message.erro).
rsenna
18

Para OS X e Sublime Text

Disponibilize subl.

Coloque isso em ~/.bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

Coloque isso em ~/.bashrc

export EDITOR=subl
Kirk Strobeck
fonte
Descobri que isso não funciona corretamente com chsh. O arquivo é aberto, mas todas as alterações são perdidas. Eu tive que usar chsh -s /bin/zshpara trocar as conchas manualmente.
Cryptc
9

Para quem vier aqui em 2018:

  • vá para iTerm -> Preferências -> Perfis -> Avançado -> Histórico Semântico
  • no menu suspenso, escolha Abrir com Editor e no menu suspenso à direita escolha o editor de sua preferência
Alexandre
fonte
5

Configure seu editor para apontar para este programa:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Com o SVN, você deve definir SVN_EDITORa variável de ambiente para:

$ export SVN_EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit

E então, quando você tentar confirmar algo, o TextEdit será iniciado.

Pablo Santa Cruz
fonte
1
Eu prefiro usar /usr/bin/open, porque isso usará o padrão do localizador como você definir.
dmckee --- ex-moderador gatinho
Como você faria o mesmo para o git?
Diógenes
A primeira é apenas definir EDITOR = para isso, mas o que eu digito para a segunda linha?
Usuário
1

Para Sublime Text 3:

defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'

Consulte Definir TextMate como editor de texto padrão no Mac OS X para obter detalhes.

KFunk
fonte
0

Se você quiser que o editor trabalhe com operações git, definir a $EDITORvariável de ambiente pode não ser suficiente, pelo menos não no caso de Sublime - por exemplo, se você deseja rebase, ele apenas dirá que o rebase foi bem-sucedido, mas você ganhou ' t tiver a chance de editar o arquivo de qualquer forma, o git irá fechá-lo imediatamente:

git rebase -i HEAD~
Successfully rebased and updated refs/heads/master.

Se você deseja que o Sublime funcione corretamente com o git, você deve configurá-lo usando:

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

Vim aqui procurando por isso e encontrei a solução nessa essência no github .

mrapacz
fonte