¿Cómo inicio TextEditor desde la línea de comandos?


67

Trabajo mucho en la línea de comandos en una Terminal y me gustaría iniciar un editor de texto en un archivo determinado. Soy de Linux Land y normalmente uso kwrite o gedit de un shell bash. Intentando encontrar el equivalente de Mac, como una suposición, intenté

user> textedit somefile.txt

y

user> texteditor somefile.txt

y

user> TextEditor somefile.txt

y otras variaciones Parece que no puedo encontrar el nombre correcto de la aplicación del editor de texto. (No, vi no es de mi agrado.) Curiosamente, el chico de una tienda de Apple no sabía esto.


Tanto Nathan como mipadi proporcionan respuestas, pero creo que son solo respuestas parciales, así que agregué una. No estoy seguro de si hubiera sido mejor combinar sus respuestas de alguna manera y, de ser así, cómo hacerlo.
Viktor Haag

@Viktor generalmente no es bueno volver a publicar cosas que la gente ya ha dicho, y se eliminan los duplicados exactos. Como tenía algo que agregar, una buena manera de hacerlo sería una respuesta que diga "Además de las técnicas de Nathan y mipadi ...", o comentarios sobre esas respuestas con sus adiciones. Lo que has hecho aquí está bien, pero no es exactamente una "mejor práctica". Gracias por preguntar; ahora lo sabes para el futuro :-).
Nathan Greenstein

Respuestas:


105

Aquí hay algunas respuestas posibles, todas utilizando la utilidad de línea de comando 'abrir'.

La opción -a significa "abrir el argumento del archivo con la aplicación nombrada":

open -a TextEdit file.txt

La opción -e significa "abrir el argumento del archivo con la aplicación TextEdit":

open -e file.txt

La opción -t significa "abrir el archivo con la aplicación predeterminada para editar archivos de texto, según lo determinado mediante LaunchServices". Por defecto, esto será /Applications/TextEdit.app; sin embargo, es posible que esta configuración se anule:

open -t file.txt

Finalmente, cualquier archivo que sea del tipo "texto" será abierto por la aplicación vinculada al tipo de texto si solo lo dice open file.txt. Puede utilizar el comando "archivo" para revelar lo que piensa el sistema operativo del tipo de archivo es: file file.txt. Entonces, por ejemplo, si cambió el nombre de "archivo.txt" a solo " open textfilearchivo de texto ", lo abriría en la aplicación de edición de archivos de texto predeterminada, siempre y cuando file textfiletodavía pensara que "archivo de texto" era en realidad un archivo de texto.

Puede encontrar un breve archivo de "ayuda" openejecutando

open --help

O puede leer todo el manual con

man open

2
Puse esto en mi .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'" y luego simplemente puedo escribir en el símbolo del sistema: "o text.txt". Es muy fácil para los dedos;)
cmroanirgo

openes la única forma "correcta" de hacer esto.
CousinCocaine

13

El editor de texto predeterminado es TextEdit. Puede abrir un archivo de texto allí usando open -a:

$ open -a TextEdit hi.txt

Si quieres usar otra aplicación, solo pon su nombre, así:

$ open -a Coda index.html

Esto funcionó para mí (OSX Mojave) con TextEdit y Visual Studio Code. ¡Gracias!
RJ Dunnill

8

Hay dos maneras:

Si su editor de texto predeterminado es TextEdit, simplemente puede usar

open -t file.txt

para abrirlo en TextEditor.

Si su editor de texto predeterminado no es TextEdit, y desea abrirlo específicamente en TextEdit, puede usar

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

Cualquiera de estos puede convertirse en un alias en su archivo de configuración de shell, por supuesto.


Tenga en cuenta que no estoy seguro de que la convención de pasar el argumento del nombre de archivo directamente al nombre de la aplicación en la línea de comando puede no funcionar para todas las aplicaciones. Solo las aplicaciones creadas para aceptar nombres de archivo en la línea de comandos como argumentos válidos para abrir funcionarán de esta manera. Yo creo que el más general opencomando utiliza un método más a fondo para obtener una solicitud para "abrir" el argumento de archivo pasó a la orden de apertura (es decir, que depende de la misma funcionalidad mediante el cual del Finder "doble clic para abrir la" acción funciona).
Viktor Haag

@Viktor Haag: Ambos funcionarán con TextEdit.
mipadi

6

Si busca una forma cómoda con más "linux feel", agregue algo como lo siguiente a su ~/.profile:

alias textmate='open -a TextMate'

o

alias textedit='open -a TextEdit'

dependiendo de tus editores.


2
Aunque .profilefunciona, .bash_profilees más común en OS X.
CousinCocaine

3

Si ya comenzó a escribir en la terminal y desea continuar en su editor favorito, puede presionar ctrl+ X, ctrl+ Ey continuar trabajando en emacs o en su editor de bash predeterminado.

Si desea cambiar el editor predeterminado, cambie la variable de entorno EDITOR a su favorito:

EDITOR=vim;export EDITOR

1

1) Interfaz de edición de contenido TextEdit de apertura rápida, tenga en cuenta que los archivos generados se almacenan en el /tmpdirectorio:

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

#open empty tempfile
echo|open -f

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

2) Prefiere tomar entrada y salida estándar a TextEdit

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

3) Simplemente abra un TextEdit:

open -e

De man open:

-e  Opens with TextEdit. 
-f  Reads input from standard input and opens with TextEdit.

0

Vea si tiene el editor vim, ni siquiera me di cuenta de que mi terminal podría usarlo.

Tratar:

user> vimtutor 

para descubrir sus controles.

Puedes editar archivos bastante bien con él. La sintaxis se parece a:

user> vim foo.txt

0

TextWrangler (ahora desaparecido y reemplazado con BBEdit) cuando está instalado con el Command Line Utilities, le permitió hacer:

edit README.txt

para lanzar TextWrangler, que para mí es mejor open -t README.txt, pero tal vez solo estoy sufriendo de inercia.

FYI: edites un archivo ejecutable binario (del kit TextWrangler), no solo un alias o un enlace simbólico.


0

Ya que desea abrir "un" editor de texto. No debería estar mal si usa un editor de texto de línea de comandos como vim o vi. Sólo tipo

user> vim filename

Mirando las otras respuestas esto puede parecer controvertido. Pero como trabajas principalmente dentro de la terminal. Usar vim o Gedit es la opción ideal.


-3

Use el geditcomando:

gedit your-file.ext

3
geditno está instalado de forma predeterminada en MacOS, aunque t puede instalarse a través de homebrewbrew install gedit
Scot

Funciona en Linux: D
Alex Chaliy

El OP está buscando una solución MacOS, no Linux. Y mencionó buscar algo para reemplazar gedit en Linux. Además, este es un sitio de MacOS, por lo que una solución de Linux sería de gran utilidad.
Scot
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.