Nhấn alt + số trong bash và bạn nhận được (arg [số]) đó là gì?


101

Nhấn alt + số trong bash và bạn nhận được (arg [số]) đó là gì?

(Loại câu hỏi này phù hợp hơn để hỏi một con người, thay vì cố gắng "đoán" thuật ngữ chính xác để tìm kiếm trên tài liệu thông qua internet).


Nếu bạn đã set keymap vitham gia ~/.inputrc, thì việc đánh Esc + Digitsẽ dẫn bạn đến chế độ tương tự, như thể chuẩn bị lặp lại lệnh vi (nhưng bạn không thể sử dụng các ràng buộc vi từ chúng, chỉ có những emacs xấu xí thôi :-()
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Cụm từ tìm kiếm của tôi là alt số linux terminal , alt + 1-9 thiết bị đầu cuối và cuối cùng alt vỏ + 1 mà mang tôi đến đây.
sshow

Câu trả lời:


62

Thuật ngữ bạn muốn tìm kiếm trên google là:

"readline arguments"

Ví dụ, điều này sẽ dẫn đến chương này từ sổ tay tham khảo bash :

Bạn có thể truyền các đối số số cho các lệnh Readline. Đôi khi đối số hoạt động như một số lặp lại , những lần khác, nó là dấu hiệu của đối số là quan trọng. Nếu bạn chuyển một đối số phủ định cho một lệnh thường hoạt động theo hướng tiến, lệnh đó sẽ hoạt động theo hướng lùi. Ví dụ: để ngắt văn bản về đầu dòng, bạn có thể nhập 'M-- C-k'.

Cách chung để chuyển các đối số số cho một lệnh là nhập các chữ số meta trước lệnh. Nếu 'chữ số' đầu tiên được nhập là dấu trừ ('-'), thì dấu của đối số sẽ là số âm. Khi bạn đã nhập một chữ số meta để bắt đầu đối số, bạn có thể nhập phần còn lại của các chữ số, sau đó nhập lệnh. Ví dụ: để cung cấp cho lệnh Cd đối số là 10, bạn có thể nhập 'M-1 0 C-d', thao tác này sẽ xóa mười ký tự tiếp theo trên dòng nhập.

Để điều đó hoạt động, bạn phải biết khóa Meta được ánh xạ ở đâu: đôi khi là Alt, đôi khi Esc, những máy tính tuyệt vời có một khóa Meta chuyên dụng;)

Đối với những người không quen thuộc với cú pháp, 'M-- Ck' tương đương với Meta_key+ - Ctrl+ k. "M" là viết tắt của phím Meta, như đã lưu ý, thay đổi theo hệ thống, "C" là viết tắt của phím Ctrl. Dấu "-" sau một ký tự (như "M-") không phải là thứ bạn nhập, đó là cách biểu thị các phím bấm đồng thời.


2
Có cách nào để lặp lại các ký tự số bằng cách sử dụng các đối số số không? Ví dụ: giả sử tôi muốn viết 128 số không ('0'), tôi nghĩ mình có thể viết Alt + 128 rồi đến 0, nhưng điều đó cho tôi (arg: 1280(mặc dù tôi đã bỏ phím Alt). Làm cách nào để lặp lại các số bằng cơ chế này?
Victor Zamanian

1
@Victor: câu hỏi thú vị. tôi không thể nghĩ ra cách nào để làm điều đó với readline. có lẽ bạn đang tốt hơn off với một cái gì đó giống như$(perl -e 'print "0" x 128')


28

Để lặp lại các ký tự số - ví dụ: 128 số 0, hãy nhấn như sau:

Meta-key + 1 2 8 Ctrl + v 0


Ohhhh, nó giống như vim(có thể là emacs nữa, tôi không thể nhớ).
Sridhar Sarnobat

12

Thử cái này. Nhập Alt 4, sau đó gõ T, sau đó nhấn Enter.

Đã chỉnh sửa để sử dụng HTML nhanh hơn.


9
Điều gì xảy ra cho bạn? Tôi không nhận được gì cả.
Mortimer McMire,

1
Bốn tký tự được chèn.
Wesley Baugh

4
Trong phiên bản Bash của tôi (4.4), không cần nhấn ENTER.
luca76

9

Nó lặp lại lệnh tiếp theo được đưa ra nhiều lần, giống như trong Emacs. Ví dụ: M-1-0 C-pdi chuyển lại 10 mục lịch sử. M-4 C-hkhoảng cách lùi bốn ký tự, M-3 M-tdi chuyển từ trước đó về phía trước ba lần, v.v. Ở đây tôi sử dụng M-nghĩa là "meta" cho phím Alt, cũng như tùy chỉnh trong Bash.


9

Tôi biết điều này đã là một câu trả lời được chấp nhận, tuy nhiên tôi đã tìm thấy một số ví dụ hữu ích cũng chứng minh các công dụng bổ sung ngoài việc lặp lại các ký tự đơn giản. Các đối số chữ số có thể áp dụng cho tất cả các loại. Ví dụ chuỗi "Alt + 3, Escape, Backspace" sẽ xóa ngược 3 từ.


4

Tôi không biết nhưng khi bạn thực hiện alt + số và sau đó nhấn một ký tự, bạn sẽ nhận được ký tự ký tự num: (arg: 123) + a -> 123 lần "a"


8
bạn không biết, nhưng bạn biết? % - |

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.