Apa itu "<Esc> Kv" di bash

13

Ketika saya di bash dan tekan Esc, Shift+ K, V, bash api sampai $EDITORdengan nama file yang mirip dengan /tmp/bash-fc-186566385.

Mengapa demikian dan apa tujuannya?

Saya mungkin perlu menyebutkan bahwa saya menjalankan bash dengan set -o vi.

René Nyffenegger
sumber

Jawaban:

10

Ini memungkinkan Anda membuat perintah dengan pengeditan penuh Vi. Jika Anda mengetik beberapa perintah dan menyimpan keluar :wq, perintah akan dijalankan.

CLARIFICATION: ini memungkinkan Anda untuk membangun perintah di editor apa pun yang telah Anda atur $EDITORdan ketika Anda menyimpan dan keluar darinya, konten akan dijalankan. (Mengklarifikasi bahwa itu bukan hanya Vi!)

JUGA, sebagaimana dicatat oleh RealSkeptic , kombinasi shift+ Ktidak diperlukan untuk membuka editor. Cukup esc, Vakan.

forquare
sumber
Harap dicatat bahwa beberapa keyboard memiliki kunci yang berlabel v. Menekan tombol (atau tombol yang lebih baik) untuk mendapatkan Kbiasanya ditandai sebagai <kbd>Shift</kbd>+<kbd>K</kbd>dan menekan tombol untuk mendapatkan (huruf kecil) vsebagai<kbd>V</kbd>
Anthon
Tidak, tetapi hasil edit Anda pada pos OPs memang salah.
Anthon
2
Bukankah mode editor dapat dijangkau hanya dengan escape-V? "Shift-K" tampaknya hanya voodoo.
RealSkeptic
@RealSkeptic Anda benar, informasi tambahan yang baik
forquare
3
Juga Ctrl-x + e (jika Anda tidak dalam mode vi)
Iacchus
12

Anda tidak perlu Shift+ k. Menggunakan Esc+ vakan berfungsi karena Anda mengizinkan pengeditan baris perintah shell menggunakan editor vi bawaan set -o vi(hal yang sama dapat dicapai dengan Ctrl+ x+ e). Ini sama dengan mengeksekusi fcperintah builtin yang berguna untuk memanipulasi daftar histori dan file histori. Ini akan memanggil editor apa pun yang diatur dalam Anda $EDITOR(jika tidak, editor default shell Anda) untuk menulis perintah yang panjang, rumit atau kompleks dan kemudian jalankan setelah menyimpan dan menutup editor. Lihat di sini untuk detail tentang fcperintah: Bash history builtins .

coffeMug
sumber