Mac OS X Terminal: Tùy chọn bản đồ + xóa để xóa lùi


232

Đã thử ánh xạ nó từ Tùy chọn -> Cài đặt -> Bàn phím, nhưng hộp tổ hợp "phím" chỉ "xóa chuyển tiếp" nhưng không "xóa". Mặt khác, bàn phím của tôi chỉ "xóa" và không có "xóa chuyển tiếp"!

Có một số cách khác để làm điều đó ngoại trừ từ các sở thích?


Theo "xóa từ lùi", bạn có nghĩa là phím xóa lùi? Tôi không biết bất kỳ bàn phím Apple nào gần đây có phím xóa.
Sören Kuklau

Theo "xóa từ lùi", ý tôi là chính xác - để xóa toàn bộ từ bắt đầu từ con trỏ lùi. :) Macbook cuối cùng có một khóa có nhãn "xóa", nhưng nó hoạt động như backspace.
ibz

Tôi đang đối mặt với cùng một vấn đề. bàn phím bị xóa lùi nhưng không thể được sử dụng làm ràng buộc trong Terminal.app.
knoopx

Đối với tôi, câu hỏi của bạn xứng đáng được hàng triệu người ủng hộ. Nó đã giúp tôi rất nhiều. Trước đó, tôi là Ubuntu. Bây giờ, điều này làm cho cuộc sống của tôi dễ dàng hơn trong Mac OS. Cảm ơn.
doptimusprime

Câu trả lời:


424

Bật khóa tùy chọn làm khóa meta

  1. Tới Terminal> Preferences> Profiles>Keyboard
  2. Kiểm tra Use option key as meta key.

Hình ảnh

Trên macOS High Sierra 10.13.6, được chụp vào ngày 23 tháng 10 năm 2018.

Minh họa của cửa sổ để bật khóa tùy chọn làm khóa meta

Ghi chú

Nhiều ứng dụng (bao gồm bash và tcsh) coi Meta-Delete là "từ xóa ngược".


32
Đó là trong tùy chọn Terminal> cài đặt> bàn phím, ngay phía dưới.
Jon

16
Tại sao điều này không mặc định?!
Ross Hambrick

8
Trên Yosemite, cài đặt này hiện nằm trong Tùy chọn -> Cấu hình -> Bàn phím. Có vẻ như bạn phải thay đổi / thiết lập nó cho mỗi hồ sơ.
palimpsestor

6
Trên bàn phím không phải của Hoa Kỳ, phím tùy chọn thường là cần thiết để có được một số ký tự nhất định (ví dụ: ống '|' khá quan trọng ở vỏ). Trong trường hợp đó <Esc> b và <Esc> f được đề cập trong các câu trả lời khác có lẽ là giải pháp tốt nhất?
Touko

8
Thật không may, điều này là phản tác dụng đối với các lập trình viên có bàn phím nước ngoài, những người cần sử dụng phím tùy chọn để có được các ký hiệu đặc biệt {, bởi vì điều đó sẽ không hoạt động khi phím tùy chọn được sử dụng làm khóa meta.
Magne

74

Thiết bị đầu cuối của OS X chạy bash, bao gồm hỗ trợ đọc. Làm theo lời khuyên của Glomek và nói với thiết bị đầu cuối sử dụng tùy chọn làm khóa meta (hoặc sử dụng cách khác Esc) và sau đó bạn đã có một loạt các tùy chọn tiện dụng: Ctrl+ wxóa từ phổ biến (cũng như Meta + xóa như đã đề cập), nhưng bạn cũng có thể sử dụng Meta + f và Meta + b để đi tới và lùi các từ, Ctrl+ aCtrl+ eđến đầu và cuối dòng, Ctrl+ kxóa (giết) từ con trỏ đến cuối dòng và nhiều hơn nữa.

Xem http://www.bigsmoke.us/readline/shortype để biết bảng tham khảo nhỏ.


3
Làm thế nào là "tiện dụng" này? Phần còn lại của hệ thống sử dụng deletevới vòng loại để xóa các từ.
idrougge

Có thể có "xóa dòng" là tốt?
wenbert

1
Readline là tuyệt vời, nhưng điều này không giúp OP. Ctrl + w xóa một WORD (cách nhau bằng khoảng trắng), không phải từ (cách nhau bằng dấu chấm câu + khoảng trắng). Với con trỏ ở cuối cat .git/refs/heads, Ctrl-w cho kết quả cat. Meta + xóa kết quả trongcat .git/refs/
idbrii

@nadafigment, 'a' và 'e' là viết tắt của?
Pacerier

63

Xóa một từ trở lại:

Ctr-w.


2
sau khi đọc xong, tôi phát hiện ra rằng "xóa từ chuyển tiếp" là ctrl + k (bằng cách dùng thử và lỗi). bây giờ tôi tự hỏi tại sao có quá ít tài liệu về tất cả điều này.
người chiến thắng n.

8
Ctr-k xóa tất cả ở phía trước, không chỉ một từ, không?
Shai

cái này hoạt động trên máy mac của tôi Nó cũng hoạt động trên linux Ubuntu?
dùng391339

1
Ctrl + w xóa một WORD (cách nhau bằng khoảng trắng), không phải từ (cách nhau bằng dấu chấm câu + khoảng trắng). Với con trỏ ở cuối cat .git/refs/heads, Ctrl-w cho kết quả cat. Meta + xóa kết quả trongcat .git/refs/
idbrii

24

Theo mặc định, backspace meta thực hiện một từ ngược yank trong hầu hết các shell. Nếu bạn nhấn thoát và sau đó nhấn backspace, điều đó khá nhiều hoạt động ở khắp mọi nơi.


3
Tuyệt vời, không yêu cầu thiết lập thêm. Tôi nhận thấy <Esc> b<Esc> fcũng làm việc để nhảy trở lại hoặc chuyển tiếp một từ.
joeytwiddle

1
Tôi thích <ALT> + M ARI TÊN nhiều hơn. ESC không cho phép nhấp liên tục vào b hoặc f.
Vitali Pom

1
Tôi đã sử dụng <ALT> + MROWI TÊN để di chuyển, nhưng tôi thấy rằng không có cách nào để xóa theo cách tương tự. Cách tiếp cận CTRL + W được đề cập ở trên không dừng lại ở các ký tự không phải từ giống như <ALT> + MROWI, do đó, nó xóa mọi thứ cho đến khoảng trắng. Bất kỳ cách nào để xóa bằng cách sử dụng phát hiện ranh giới tương tự như <ALT> + Mũi tên sẽ được đánh giá cao
Rene Wooller

18

⌃W(control + W) không giống với meta + xóa (ESC + xóa nếu bạn không chọn tùy chọn sử dụng làm khóa meta) meta + xóa sẽ coi / _là dấu phân cách từ trong đó ^Wsẽ coi khoảng trắng là dấu phân cách.

ví dụ: sử dụng ESC + Bakcspace trên (con trỏ ở cuối)

rm /dira/dirb/file1

cho

rm /dira/dirb/

trong khi ^ W trên cùng sẽ cung cấp cho

rm

Vì vậy, tốt hơn là sử dụng \ 033 \ 177 thay vì ^ W khi xác định sửa đổi cấu hình thiết bị đầu cuối. Bằng cách đó, bạn thực sự ánh xạ đến những gì esc⌫ đang làm và bạn tiếp tục có ^ W để xóa từ dựa trên dấu phân cách không gian.

Tôi rất thích có thể đăng một hình ảnh về cách làm điều này nhưng như một người mới tôi không thể.

tham khảo nhận xét bouke để xem cách sửa đổi hồ sơ thiết bị đầu cuối.


5
Đối với những người muốn thực hiện việc này iterm2, bạn có thể truy cập Tùy chọn> Khóa> thêm Ánh xạ khóa ⌥⌫để gửi mã hex 0x1B 0x7F. 🍻
qix

Làm thế nào bạn phát hiện ra đó \033\177là những gì bạn muốn cho "xóa một phần của từ"?
cậy

thực sự bạn chỉ cần nhấn dãy phím bạn muốn trong hộp thoại Terminal Preference. Tùy chọn → Cấu hình → Tab Bàn phím → nút + sau đó chọn "tùy chọn" sửa đổi và phím "xóa" sau đó chọn trường văn bản và nhấn phím thoát sau đó nhấn phím and và bạn đã hoàn tất. Esc + thực hiện tương tự như ⌥⌫
Stephane Gasparini

14

Trong hồ sơ của Terminal, bạn có thể liên kết (tùy chọn + xóa) với ⌃W (control + W), để nó hoạt động tương tự như các ứng dụng khác.

Cài đặt bàn phím thiết bị đầu cuối


stty phải có ^ w ánh xạ tới werase (hành vi mặc định) để nó hoạt động. Sử dụng stty -a trên dòng lệnh để xem cách ánh xạ được đặt.
natersoz

4

Phím tắt chỉnh sửa lệnh

Ctrl + a - đi đến đầu dòng lệnh

Ctrl + e - đi đến cuối dòng lệnh

Ctrl + k - xóa từ con trỏ đến cuối dòng lệnh

Ctrl + u - xóa từ con trỏ đến đầu dòng lệnh

Ctrl + w - xóa từ con trỏ đến đầu từ (nghĩa là xóa ngược một từ)

Ctrl + y - dán từ hoặc văn bản đã bị cắt bằng một trong các phím tắt xóa (chẳng hạn như phím tắt ở trên) sau con trỏ

Ctrl + xx - di chuyển giữa bắt đầu dòng lệnh và vị trí con trỏ hiện tại (và quay lại lần nữa)

Alt + b - di chuyển lùi một từ (hoặc đi đến bắt đầu từ mà con trỏ hiện đang bật)

Alt + f - di chuyển về phía trước một từ (hoặc đi đến cuối từ mà con trỏ hiện đang bật)

Alt + d - xóa đến cuối từ bắt đầu tại con trỏ (toàn bộ từ nếu con trỏ ở đầu từ)

Alt + c - viết hoa đến cuối từ bắt đầu từ con trỏ (toàn bộ từ nếu con trỏ ở đầu từ)

Alt + u - tạo chữ hoa từ con trỏ đến cuối từ

Alt + l - tạo chữ thường từ con trỏ đến cuối từ

Alt + t - hoán đổi từ hiện tại với trước đó

Ctrl + f - di chuyển về phía trước một ký tự

Ctrl + b - di chuyển lùi một ký tự

Ctrl + d - xóa ký tự dưới con trỏ

Ctrl + h - xóa ký tự trước con trỏ

Ctrl + t - hoán đổi ký tự dưới con trỏ với ký tự trước

Phím tắt thu hồi lệnh

Ctrl + r - tìm kiếm lịch sử ngược

Ctrl + g - thoát khỏi chế độ tìm kiếm lịch sử

Ctrl + p - lệnh trước đó trong lịch sử (nghĩa là quay lại lịch sử lệnh)

Ctrl + n - lệnh tiếp theo trong lịch sử (nghĩa là chuyển tiếp qua lịch sử lệnh) Alt +. - sử dụng từ cuối cùng của lệnh trước

Phím tắt điều khiển lệnh

Ctrl + l - xóa màn hình

Ctrl + s - dừng đầu ra ra màn hình (đối với lệnh dài dòng)

Ctrl + q - cho phép xuất ra màn hình (nếu trước đó đã dừng sử dụng lệnh ở trên)

Ctrl + c - chấm dứt lệnh

Ctrl + z - tạm dừng / dừng lệnh

Lệnh Bash Bang (!) Bash cũng có một số tính năng tiện dụng sử dụng! (bang) để cho phép bạn thực hiện một số nội dung thú vị với các lệnh bash.

!! - chạy lệnh cuối cùng! Blah - chạy lệnh gần đây nhất bắt đầu bằng 'blah' (ví dụ: ls)

! blah: p - in ra lệnh mà! blah sẽ chạy (cũng thêm nó dưới dạng lệnh mới nhất trong lịch sử lệnh)

! $ - từ cuối cùng của lệnh trước đó (giống như Alt +.)

! $: p - in ra từ đó! $ sẽ thay thế

! * - lệnh trước ngoại trừ từ cuối cùng (ví dụ: nếu bạn nhập '_find somefile.txt /', thì! * Sẽ cung cấp cho bạn '_find somefile.txt')

! : p - in ra những gì! sẽ thay thế


2

Với Natural Text Editingcài đặt sẵn được kích hoạt trong Hồ sơ -> Phím. Bạn chỉ có thể loại bỏ từ

  • Lạc hậu với alt + delete
  • Chuyển tiếp với fn + alt + delete
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.