Як запустити TextEditor з командного рядка?


65

Я багато працюю в командному рядку в Терміналі і хотів би запустити текстовий редактор у певному файлі. Я з Linux Land і зазвичай використовую kwrite або gedit з bash shell. Намагався знайти еквівалент Mac, як здогадувався, спробував

user> textedit somefile.txt

і

user> texteditor somefile.txt

і

user> TextEditor somefile.txt

та інші варіанти. Я не можу знайти належну назву програми для редагування тексту. (Ні, ви мені не до вподоби.) Як не дивно, хлопець в магазині Apple цього не знав.


І Натан, і Міпаді дають відповіді, але я думаю, що це лише часткові відповіді, тому я додав одну. Я не впевнений, чи було б краще якось поєднати свої відповіді, і якщо так, то як це зробити.
Віктор Хааг

@Viktor, як правило, непогано повторно публікувати речі, про які люди вже говорили, а точні дублікати видаляються. Оскільки вам було до чого додати, хорошими шляхами буде відповідь, що говорить "Крім технік Натана та Міпаді ...", або коментарі до цих відповідей із вашими доповненнями. Що ви тут зробили, це добре, але не зовсім "найкраща практика". Спасибі за питання; тепер ви знаєте на майбутнє :-).
Натан Грінштейн

Відповіді:


105

Ось кілька можливих відповідей, усі вони використовують утиліту командного рядка «відкрити».

Параметр -a означає "відкрити аргумент файлу з названим додатком":

open -a TextEdit file.txt

Параметр -e означає "відкрити аргумент файлу за допомогою програми TextEdit":

open -e file.txt

Параметр -t означає "відкрити файл за допомогою програми за замовчуванням для редагування текстових файлів, як визначено через LaunchServices". За замовчуванням це буде /Applications/TextEdit.app; однак, можливо, цей параметр переможе:

open -t file.txt

Нарешті, будь-який файл типу "текст" відкриється програмою, прив'язаною до типу тексту, якщо ви просто скажете open file.txt. Ви можете використовувати команду «Файл» , щоб показати , що операційна система вважає , що тип файлу: file file.txt. Так, наприклад, якщо ви перейменували "file.txt" у просто "текстовий файл", то open textfileвсе одно відкриєте його в програмі для редагування текстових файлів за замовчуванням, доки file textfileвсе ще думали, що "текстовий файл" насправді є текстовим файлом.

Короткий файл довідки openможна знайти, запустивши

open --help

Або ви можете прочитати цілий посібник із

man open

2
Я поміщую це у свій .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'", і тоді я можу просто ввести командний рядок: "o text.txt". На пальцях дуже легко;)
cmroanirgo

openце єдиний «правильний» спосіб це зробити.
CousinCocaine

13

Текстовим редактором за замовчуванням є TextEdit. Ви можете відкрити текстовий файл там, використовуючи open -a:

$ open -a TextEdit hi.txt

Якщо ви хочете скористатися іншим додатком, просто введіть його ім’я, наприклад:

$ open -a Coda index.html

Це працювало для мене (OSX Mojave) як з TextEdit, так і з кодом Visual Studio. Дякую!
RJ Dunnill

8

Є два способи:

Якщо текстовим редактором за замовчуванням є TextEdit, ви можете просто використовувати

open -t file.txt

щоб відкрити його в TextEditor.

Якщо текстовим редактором за замовчуванням не є TextEdit, і ви хочете спеціально відкрити його в TextEdit, ви можете використовувати

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

Звичайно, будь-який із них може бути створений псевдонімом у вашому конфігураційному файлі оболонки.


Зауважте, що я не впевнений, що домовленість про передачу аргументу імені файлу безпосередньо до імені програми в командному рядку може працювати не для всіх програм. Таким чином працюватимуть лише програми, створені для прийняття імен файлів у командному рядку як вагомих аргументів для відкриття. Я думаю, що більш загальна openкоманда використовує більш ретельний метод, щоб отримати програму "відкрити" аргумент файлу, переданий команді open (тобто це залежить від тієї ж функціональності, за якою працює "подвійний клацання для відкриття" Finder).
Віктор Хааг

@Viktor Haag: Обоє будуть працювати з TextEdit.
mipadi

6

Якщо ви шукаєте комфортний спосіб із більшою кількістю почуттів Linux, додайте у ваше щось таке ~/.profile:

alias textmate='open -a TextMate'

або

alias textedit='open -a TextEdit'

залежно від ваших редакторів.


2
Хоча .profileпрацює, .bash_profileчастіше зустрічається на OS X.
CousinCocaine

3

Якщо ви вже почали писати в терміналі і хочете продовжувати роботу з улюбленим редактором, ви можете натиснути ctrl+ X, ctrl+ Eта продовжити роботу в emacs або вашому типовому редакторі bash.

Якщо ви хочете змінити редактор за замовчуванням, змініть змінну середовища EDITOR на улюблену:

EDITOR=vim;export EDITOR

0

Подивіться, чи є у вас редактор vim, я навіть не розумів, що мій термінал може його використовувати.

Спробуйте:

user> vimtutor 

розібратися в її контролі.

Ви можете досить добре редагувати файли. Синтаксис виглядає приблизно так:

user> vim foo.txt

0

TextWrangler (тепер він не працює і замінений на BBEdit), коли він встановлений на Command Line Utilities, дозволяє:

edit README.txt

запустити TextWrangler, що мені приємніше open -t README.txt, але, можливо, я просто страждаю від інерції.

FYI - editце двійковий виконуваний файл (з набору TextWrangler), а не просто псевдонім або посилання.


-3

Використовувати geditкоманду:

gedit your-file.ext

2
geditне встановлено за замовчуванням на MacOS, хоча t можна встановити через homebrewbrew install gedit
Scot

Працює на Linux: D
Алекс Чалій

ОП шукає рішення для MacOS, а не Linux. І згадав, що шукає чогось замінити gedit в Linux. Крім того, це сайт MacOS, тому рішення Linux було б корисним.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.