Saya mengerti saya bisa mengetik \
enterdi akhir bash
baris perintah untuk melanjutkan perintah di baris lain. Tapi bagaimana saya bisa membagi baris perintah cepat - yang sudah diketik sepenuhnya - menjadi dua?
Sebagai contoh, bagaimana saya bisa mematahkan garis ini sebelum then
tanpa harus memotong sisanya dan mengetiknya lagi?
$ if true; then ls; fi
fc
perintah juga - ini tersedia di hampir semua shell.Jawaban:
Sebuah baris baru karakter LF (line feed), alias Control-J. Jika Anda menekan Ctrl+ J, ini menjalankan perintah
accept-line
, sama seperti Returntombol. Untuk memasukkan karakter LF literal, tekan Ctrl+ V Ctrl+ J. Perintah Ctrl+ V(quoted-insert
) menyisipkan karakter berikutnya secara harfiah. Dengan demikian, untuk memisahkan garis, Anda dapat memasukkan \ Ctrl+ V.Jika Anda sering melakukannya, Anda bisa membuatnya menjadi makro:
sumber
Anda dapat menggunakan
edit-and-execute-command
, biasanya dipetakan ke Ctrl+ x+ e, untuk membuka perintah saat ini di editor . Saat keluar dari editor, perintah akan dijalankan.sumber
vim
ke tambang seperti:export EDITOR=vim
.:q!
atauZQ
tetapi tidak berhasil.ggdG:wq
atau:%d|wq
, dll.). Perintah akan tetap dalam sejarah (mungkin sebagai duplikat jika Anda memanggilnya dari entri sebelumnya), tetapi itu tidak akan dieksekusi.Catatan - jawaban ini khusus untuk vi dan vim
Untuk mengedit baris yang diketik saat ini, tekan
ESC
(untuk masuk kevi
atauvim
mode perintah), lalu ketikv
atauvi
.Perhatikan semua perintah edit vi / vim berfungsi. misalnya
ESC
+A
menempatkan ke akhir baris yang diketik saat ini.ESC
+0
menempatkan kursor di awal baris.sumber
CTRL
+v
laluCTRL
+j
untuk melempar baris baru seharusnya berfungsi.