Cái gì là <Esc> Kv 'trong bash


13

Khi tôi đang ở bash và nhấn Esc, Shift+ K, V, bash cháy lên $EDITORvới một tên tập tin tương tự /tmp/bash-fc-186566385.

Tại sao lại như vậy và mục đích của nó là gì?

Tôi có lẽ cần phải đề cập rằng tôi đang chạy bash với set -o vi.

Câu trả lời:


10

Điều này cho phép bạn xây dựng một lệnh với chỉnh sửa Vi đầy đủ. Nếu bạn gõ một số lệnh vào và lưu thoát, :wqcác lệnh sẽ được chạy.

XÁC NHẬN: nó cho phép bạn xây dựng lệnh trong bất kỳ trình soạn thảo nào bạn đã đặt $EDITORvà khi bạn lưu và thoát khỏi nó, nội dung sẽ được chạy. (Làm rõ rằng đó không chỉ là Vi!)

CSONG , như được lưu ý bởi RealSkeptic , kết hợp shift+ Kkhông bắt buộc để đưa lên trình chỉnh sửa. Đơn giản esc, Vsẽ.


Xin lưu ý rằng một vài bàn phím có một khóa được dán nhãn v. Nhấn phím (hoặc phím tốt hơn) để nhận Kthường được đánh dấu là <kbd>Shift</kbd>+<kbd>K</kbd>và nhấn phím để lấy (chữ thường) v<kbd>V</kbd>
Anthon

Không, nhưng chỉnh sửa của bạn đối với bài OP đã không chính xác.
Anthon

2
Không phải chế độ soạn thảo có thể truy cập đơn giản bằng esc-V? "Shift-K" dường như chỉ là voodoo.
RealSkeptic

@RealSkeptic bạn là chính xác, thông tin bổ sung tốt
forapes

3
Ngoài ra Ctrl-x + e (nếu bạn không ở chế độ vi)
Iacchus

12

Bạn không cần Shift+ k. Sử dụng Esc+ vsẽ hoạt động vì bạn đang cho phép chỉnh sửa dòng lệnh shell bằng trình soạn thảo vi tích hợp bằng cách sử dụng set -o vi(có thể đạt được điều tương tự với Ctrl+ x+ e). Điều này tương đương với việc thực thi fclệnh dựng sẵn rất hữu ích để thao tác danh sách lịch sử và tệp lịch sử. Nó sẽ gọi bất kỳ trình soạn thảo nào được đặt trong $EDITOR(nếu không, trình soạn thảo mặc định của shell của bạn) để viết một lệnh dài, khó hoặc phức tạp và sau đó thực thi chúng sau khi lưu và đóng trình soạn thảo. Xem ở đây để biết chi tiết về fclệnh: nội dung lịch sử Bash .

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.