Làm cách nào để bắt đầu TextEditor từ dòng lệnh?


65

Tôi làm việc rất nhiều tại dòng lệnh trong Terminal và muốn bắt đầu một trình soạn thảo văn bản trên một tệp nhất định. Tôi đến từ Linux Land và thường sử dụng kwrite hoặc gedit từ shell bash. Cố gắng tìm Mac tương đương, như một phỏng đoán, đã thử

user> textedit somefile.txt

user> texteditor somefile.txt

user> TextEditor somefile.txt

và các biến thể khác. Tôi dường như không thể tìm thấy tên thích hợp của ứng dụng soạn thảo văn bản. (Không, vi không theo ý thích của tôi.) Thật kỳ lạ, anh chàng tại một cửa hàng Apple không biết điều này.


Cả Nathan và mipadi đều cung cấp câu trả lời, nhưng tôi nghĩ chúng chỉ là câu trả lời một phần, vì vậy tôi đã thêm một câu trả lời. Tôi không chắc có nên kết hợp câu trả lời của họ bằng cách nào đó hay không, và nếu vậy, làm thế nào để thực hiện điều đó.
Viktor Haag

@Viktor thường không tốt khi đăng lại những điều mà mọi người đã nói và các bản sao chính xác được xóa. Vì bạn có một cái gì đó để thêm vào, những cách hay để đi sẽ là một câu trả lời "Ngoài các kỹ thuật của Nathan và mipadi ...", hoặc nhận xét về những câu trả lời đó với các phụ lục của bạn. Những gì bạn đã làm ở đây là ổn, nhưng không chính xác là 'cách thực hành tốt nhất'. Cam ơn vi đa hỏi; bây giờ bạn biết cho tương lai :-).
Nathan Greenstein

Câu trả lời:


105

Dưới đây là một số câu trả lời có thể, tất cả đều sử dụng tiện ích dòng lệnh 'mở'.

Các -a tùy chọn có nghĩa là "mở đối số tập tin với các ứng dụng có tên":

open -a TextEdit file.txt

Các -e tùy chọn có nghĩa là "mở đối số tập tin với các ứng dụng TextEdit":

open -e file.txt

Các -t tùy chọn có nghĩa là "mở file với các ứng dụng mặc định cho các tập tin chỉnh sửa văn bản, được xác định thông qua LaunchServices". Theo mặc định, đây sẽ là /Appluggest/TextEdit.app; tuy nhiên, cài đặt này có thể bị ghi đè:

open -t file.txt

Cuối cùng, bất kỳ tệp nào thuộc loại "văn bản" sẽ được mở bởi ứng dụng được liên kết với loại văn bản nếu bạn chỉ nói open file.txt. Bạn có thể sử dụng lệnh "tệp" để tiết lộ hệ điều hành nghĩ loại tệp là gì : file file.txt. Vì vậy, ví dụ, nếu bạn đổi tên "file.txt" thành "textfile" thì open textfilevẫn sẽ mở nó trong ứng dụng chỉnh sửa tệp văn bản mặc định, miễn là file textfilevẫn nghĩ rằng "textfile" thực sự là một tệp văn bản.

openthể tìm thấy tệp 'trợ giúp' ngắn bằng cách chạy

open --help

Hoặc bạn có thể đọc toàn bộ hướng dẫn với

man open

2
Tôi đặt cái này vào .bash_profile của mình: "alias o = 'open -a Sublime \ Text \ 2'" và sau đó tôi có thể chỉ cần gõ tại dấu nhắc lệnh: "o text.txt". Nó rất dễ dàng trên các ngón tay;)
cmroanirgo

openlà cách "đúng" duy nhất để làm điều này.
CousinCocaine

13

Trình soạn thảo văn bản mặc định là TextEdit. Bạn có thể mở tệp văn bản trong đó bằng cách sử dụng open -a:

$ open -a TextEdit hi.txt

Nếu bạn muốn sử dụng một ứng dụng khác, chỉ cần đặt tên của nó vào, như thế này:

$ open -a Coda index.html

Điều này làm việc cho tôi (OSX Mojave) với cả TextEdit và Visual Studio Code. Cảm ơn bạn!
RJ Dunnill

8

Có hai cách:

Nếu trình soạn thảo văn bản mặc định của bạn là TextEdit, bạn chỉ cần sử dụng

open -t file.txt

để mở nó trong TextEditor.

Nếu trình soạn thảo văn bản mặc định của bạn không phải là TextEdit và bạn muốn mở nó trong TextEdit một cách cụ thể, bạn có thể sử dụng

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

Tất nhiên, một trong hai có thể được tạo thành bí danh trong tệp cấu hình shell của bạn.


Lưu ý rằng tôi không chắc chắn rằng quy ước chuyển trực tiếp đối số tên tệp sang tên của ứng dụng trên dòng lệnh có thể không hoạt động đối với tất cả các ứng dụng. Chỉ các ứng dụng được xây dựng để chấp nhận tên tệp trên dòng lệnh làm đối số hợp lệ để mở sẽ hoạt động theo cách này. Tôi nghĩ rằng openlệnh chung hơn sử dụng một phương pháp kỹ lưỡng hơn để khiến ứng dụng "mở" đối số tệp được truyền cho lệnh mở (nghĩa là nó phụ thuộc vào cùng chức năng mà hành động "nhấp đúp để mở" của Trình tìm kiếm hoạt động).
Viktor Haag

@Viktor Haag: Cả hai sẽ hoạt động với TextEdit.
mipadi

6

Nếu bạn tìm kiếm một cách thoải mái với nhiều "cảm giác linux", hãy thêm một cái gì đó như sau vào ~/.profile:

alias textmate='open -a TextMate'

hoặc là

alias textedit='open -a TextEdit'

tùy thuộc vào biên tập viên của bạn.


2
Mặc dù .profilehoạt động, .bash_profilephổ biến hơn trên OS X.
CousinCocaine

3

Nếu bạn đã bắt đầu viết trong thiết bị đầu cuối và bạn muốn tiếp tục trên trình chỉnh sửa yêu thích của mình, bạn có thể nhấn ctrl+ X, ctrl+ Evà tiếp tục làm việc trong emacs hoặc trình chỉnh sửa bash mặc định của bạn.

Nếu bạn muốn thay đổi trình chỉnh sửa mặc định, hãy thay đổi EDITOR biến môi trường thành trình chỉnh sửa yêu thích của bạn:

EDITOR=vim;export EDITOR

0

Xem nếu bạn có trình soạn thảo vim, tôi thậm chí không nhận ra thiết bị đầu cuối của mình có thể sử dụng nó.

Thử:

user> vimtutor 

để tìm ra các điều khiển của nó.

Bạn có thể chỉnh sửa các tập tin khá tốt với nó. Cú pháp trông giống như:

user> vim foo.txt

0

TextWrangler (hiện không còn tồn tại và được thay thế bằng BBEdit) khi được cài đặt với Command Line Utilities, cho phép bạn thực hiện:

edit README.txt

để khởi chạy TextWrangler, với tôi nó đẹp hơn open -t README.txt, nhưng có lẽ tôi chỉ bị quán tính.

FYI - editlà một tệp thực thi nhị phân (từ bộ TextWrangler), không chỉ là bí danh hoặc liên kết tượng trưng.


-3

Sử dụng geditlệnh:

gedit your-file.ext

2
geditkhông được cài đặt theo mặc định trên MacOS, mặc dù t có thể được cài đặt qua homebrewbrew install gedit
Scot

Nó hoạt động trên Linux: D
Alex Chaliy

OP đang tìm kiếm một giải pháp MacOS, không phải Linux. Và đề cập đến việc tìm kiếm một cái gì đó để thay thế gedit trên Linux. Ngoài ra, đây là một trang web MacOS, vì vậy một giải pháp Linux sẽ không hiệu quả.
Scot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.