Phím tắt đối diện với Ctrl + k là gì?


12

Ctrl+ Kxóa phần còn lại của dòng trong một dòng lệnh UNIX. Làm cách nào để xóa tất cả văn bản trước con trỏ?

Câu trả lời:


15

Sử dụng Ctrl+ u:

Từ bashtài liệu, Killing And Yanking :

unix-line-disard (Cu)

Giết lùi từ con trỏ đến đầu dòng hiện tại.

Ctrl+ uHành vi không chỉ kiểm soát bởi các vỏ có biên tập dòng riêng của họ như bash, zsh, tcsh, sh -o emacs, mà còn bởi sự kỷ luật dòng của trình điều khiển thiết bị đầu cuối khi ở chế độ kinh điển (như trong cat, hoặc triển khai cơ bản của sh/ kshkhi không có line-biên tập viên đã được kích hoạt ). Do đó, nó hoạt động ở khắp mọi nơi.

Bạn có thể kiểm tra kỷ luật dòng của trình điều khiển đầu cuối bằng cách sử dụng stty -a(hoặc stty -everythingtrong hệ thống BSD):

$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

1
"Nó chỉ hoạt động nếu shell của bạn hỗ trợ Chế độ chỉnh sửa Readline Emacs". Điều này là sai. ^uđược quản lý theo kỷ luật dòng TTY (miễn là TTY ở chế độ đầu vào dòng, trái ngược với chế độ nhập ký tự). Do đó, nó hoạt động ở khắp mọi nơi. Xem man sttyvà tìm kiếm kill CHAR. Ngoài ra, tôi giữ vỏ của mình ở chế độ vi, và nó cũng hoạt động ở đó.
Patrick

@Patrick: Đừng biết về điều này, hãy xóa phần sai đó.
cuonglm

1
Lưu ý rằng như tôi đã nói, ^Ugiết chết ở đầu dòng chỉ trong readline / bash , không phải trong các shell khác.
Stéphane Chazelas

1
@ StéphaneChazelas: Trong bash, ^Kcũng giết đến cuối bộ đệm, vì vậy tôi nghĩ ^Ulà đảo ngược của nó?
cuonglm

1
Thật vậy, xin lỗi. Lưu ý rằng đó ^Kkill-linemột chút sai lệch. Lưu ý rằng cũng có một backward-kill-lineràng buộc ^X^?(cũng giết nhiều hơn một dòng).
Stéphane Chazelas
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.