Como inicio o TextEditor a partir da linha de comando?

67

Eu trabalho muito na linha de comando em um terminal e gostaria de iniciar um editor de texto em um determinado arquivo. Eu sou do Linux Land e normalmente uso o kwrite ou o gedit a partir de um shell bash. Tentando encontrar o equivalente do Mac, como um palpite, tentei

user> textedit somefile.txt

e

user> texteditor somefile.txt

e

user> TextEditor somefile.txt

e outras variações. Não consigo encontrar o nome adequado do aplicativo editor de texto. (Não, vi não é do meu agrado.) Estranhamente, o cara de uma loja da Apple não sabia disso.

DarenW
fonte
Nathan e mipadi fornecem respostas, mas acho que são apenas respostas parciais, então adicionei uma. Não tenho certeza se seria melhor combinar as respostas de alguma forma e, se sim, como ter feito isso.
Viktor Haag
@ Viktor geralmente não é bom republicar coisas que as pessoas já disseram e as duplicatas exatas são removidas. Como você tinha algo a acrescentar, boas maneiras de seguir seria uma resposta dizendo "Além das técnicas de Nathan e mipadi ..." ou comentários sobre essas respostas nos seus adendos. O que você fez aqui é bom, mas não é exatamente uma 'melhor prática'. Obrigado por perguntar; agora você sabe o futuro :-).
precisa

Respostas:

105

Aqui estão algumas respostas possíveis, todas usando o utilitário de linha de comando 'open'.

A opção -a significa "abrir o argumento do arquivo com o aplicativo nomeado":

open -a TextEdit file.txt

A opção -e significa "abrir o argumento do arquivo com o aplicativo TextEdit":

open -e file.txt

A opção -t significa "abrir o arquivo com o aplicativo padrão para editar arquivos de texto, conforme determinado via LaunchServices". Por padrão, será /Applications/TextEdit.app; no entanto, é possível que essa configuração seja substituída:

open -t file.txt

Por fim, qualquer arquivo do tipo "texto" será aberto pelo aplicativo vinculado ao tipo de texto, se você apenas disser open file.txt. Você pode usar o comando "file" para revelar o que o sistema operacional pensa que o tipo de arquivo é: file file.txt. Portanto, por exemplo, se você renomeou "arquivo.txt" para apenas "arquivo de texto", open textfileainda o abriria no aplicativo de edição de arquivo de texto padrão, desde que file textfileainda pensasse que "arquivo de texto" era na verdade um arquivo de texto.

Um pequeno arquivo de 'ajuda' openpode ser encontrado executando

open --help

Ou você pode ler o manual inteiro com

man open
Viktor Haag
fonte
2
Coloquei isso no meu .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'" "e, em seguida, basta digitar no prompt de comando:" o text.txt ". É muito fácil para os dedos;)
cmroanirgo
opené a única maneira 'certa' de fazer isso.
CousinCocaine
13

O editor de texto padrão é o TextEdit. Você pode abrir um arquivo de texto usando open -a:

$ open -a TextEdit hi.txt

Se você quiser usar outro aplicativo, basta colocar o nome, assim:

$ open -a Coda index.html
Nathan Greenstein
fonte
Isso funcionou para mim (OSX Mojave) com o TextEdit e o Visual Studio Code. Obrigado!
RJ Dunnill
8

Existem duas maneiras:

Se o seu editor de texto padrão for o TextEdit, você pode simplesmente usar

open -t file.txt

para abri-lo no TextEditor.

Se o seu editor de texto padrão não for o TextEdit e você desejar abri-lo no TextEdit especificamente, poderá usar

/Applications/TextEdit.app/Contents/MacOS/TextEdit file.txt

Qualquer um desses pode ser um alias no arquivo de configuração do shell, é claro.

mipadi
fonte
Observe que não tenho certeza de que a convenção de passar o argumento do nome do arquivo diretamente para o nome do aplicativo na linha de comando possa não funcionar para todos os aplicativos. Somente aplicativos criados para aceitar nomes de arquivos na linha de comando como argumentos válidos para abertura funcionarão dessa maneira. Eu acho que o opencomando mais geral usa um método mais completo para fazer com que um aplicativo "abra" o argumento do arquivo passado para o comando open (isto é, depende da mesma funcionalidade pela qual a ação "clique duplo para abrir" do Finder funciona).
Viktor Haag
@ Viktor Haag: Ambos trabalharão com o TextEdit.
Mipadi
6

Se você procurar uma maneira confortável com mais "sensação de linux", adicione algo como o seguinte ao seu ~/.profile:

alias textmate='open -a TextMate'

ou

alias textedit='open -a TextEdit'

dependendo de seus editores.

Martin
fonte
2
Embora .profileobras, .bash_profileé mais comum no Mac OS X.
CousinCocaine
3

Se você já começou a escrever no terminal e deseja continuar no seu editor favorito, pode pressionar ctrl+ X, ctrl+ Ee continuar trabalhando no emacs ou no seu editor padrão do bash.

Se você deseja alterar o editor padrão, altere a variável de ambiente EDITOR para a sua favorita:

EDITOR=vim;export EDITOR
EDSancha
fonte
1

1) Interface de edição rápida de conteúdo do editor de texto aberto, observe que os arquivos gerados são armazenados no /tmpdiretório:

#Input content + Enter + Ctrl+D
open -f

#open empty tempfile
echo|open -f

#alias
alias txted='echo|open -f'
txted

2) Prefira pegar a entrada padrão e enviá-la para o TextEdit

echo "input something"|open -f
cat Dockerfile|open -f

3) Basta abrir um TextEdit:

open -e

De man open:

-e  Opens with TextEdit. 
-f  Reads input from standard input and opens with TextEdit.
Rod Terry
fonte
0

Veja se você tem o editor vim, eu nem percebi que meu terminal poderia usá-lo.

Experimentar:

user> vimtutor 

para descobrir seus controles.

Você pode editar arquivos muito bem com ele. A sintaxe se parece com:

user> vim foo.txt
user70580
fonte
0

O TextWrangler (agora extinto e substituído pelo BBEdit) quando instalado com o Command Line Utilities, permitiu:

edit README.txt

para lançar o TextWrangler, o que para mim é mais agradável do que open -t README.txt, mas talvez eu esteja sofrendo de inércia.

FYI - edité um arquivo executável binário (do kit TextWrangler), não apenas um alias ou link simbólico.

Sridhar Sarnobat
fonte
0

Desde que você deseja abrir "um" editor de texto. Não deve estar errado se você usar um editor de texto de linha de comando como o vim ou vi. Apenas digite

user> vim filename

Olhando para as outras respostas, isso pode parecer controverso. Mas como você trabalha principalmente dentro do terminal. Usar o vim ou o Gedit é a escolha ideal.

Himsara Gallege
fonte
-3

Use o geditcomando:

gedit your-file.ext
Alex Chaliy
fonte
3
geditnão é instalado por padrão no MacOS, embora t pode ser instalado via homebrewbrew install gedit
Scot
Funciona no Linux: D
Alex Chaliy
O OP está procurando uma solução para MacOS, não para Linux. E mencionado procurando algo para substituir o gedit no Linux. Além disso, este é um site do MacOS, portanto, uma solução Linux seria oftópica.
Scot