Saya sering menemukan diri saya dalam skenario ini. Saya sedang mengetik perintah dan saya perlu memeriksa sesuatu yang lain sebelum saya menyelesaikannya.
Apakah ada cara untuk membuka subkulit semacam dengan input saya saat ini yang masih diingat, maka ketika saya keluar dari subkulit ini saya kembali ke tempat saya sebelumnya?
$ mylongcommand -n -e <SOME KEY COMBINATION WHICH OPENS A SUBSHELL>
$ date
...
$ exit
$ mylongcommand -n -e <BACK TO WHERE I WAS>
saya menggunakan zsh
command-line
zsh
Panayiotis
sumber
sumber
screen
atautmux
untuk mendapatkan beberapa terminal virtual di konsol.Jawaban:
Ada kombinasi tombol EscQyang menyimpan buffer perintah dan memungkinkan untuk memasukkan perintah baru. Setelah menjalankan perintah, buffer berisi apa yang Anda ketikkan sebelumnya. Jika Anda harus menjalankan perintah lain sebelum menyelesaikan ini, Anda bisa mengetik EscQlagi.
(Saya tidak mencoba membuka subkulit setelah menekan EscQ.)
Lihat http://zsh.sourceforge.net/Intro/intro_10.html dan cari "esc-q"
sumber
Saya biasanya menggunakan Ctrl+ Uyang menghapus baris saat ini dan menyimpannya ke dalam buffer. Dari sana saya melakukan apa yang pernah saya butuhkan sebelum
mylongcommand
. Lalu ketika saya siap, saya menggunakan Ctrl+ Yuntuk menempelkanmylongcommand
kembali prompt saya.Ingat perintah setengah mengetik saat saya memeriksa sesuatu
sumber
Solusi saya untuk ini jelas berteknologi rendah dan kikuk, tetapi bergantung pada urutan-kunci yang mungkin sudah Anda kenal: Hit Ctrl+ A, lalu #, lalu ENTER.
Ini memiliki efek memasukkan a
#
di awal baris, sehingga membuatnya menjadi komentar, kemudian mengeksekusi, sehingga mendorongnya ke dalam sejarah perintah. Anda kemudian dapat memasukkan perintah bantu Anda, kemudian gulir ke atas melalui sejarah perintah ke perintah yang dikomentari, menghapus#
dan menyelesaikan perintah yang diperlukan.sumber
Saya mengetik Ctrl+ Zuntuk "menangguhkan" perintah yang saya ketikkan dan ketik perintah lain. Setelah saya menjalankan perintah itu (atau membatalkannya dengan Ctrl+ C), perintah yang ditangguhkan kembali untuk edisi (bahkan mengingat posisi kursor). Sebagai kenyamanan tambahan, jika baris perintah kosong ketika saya mengetik Ctrl+ Z, kunci akan memanggil
bg
built-in sebagai gantinya (jadi ganda Ctrl+ Zmengirimkan perintah yang sedang berjalan langsung ke latar belakang).(Sebelumnya diposting di Ingat perintah setengah diketik sementara aku memeriksa sesuatu yang terutama memiliki solusi untuk bash, di mana Anda tidak dapat melakukan apa-apa jadi nyaman. Ini adalah versi yang sedikit lebih bagus dari built-in pengikatan
M-q
kepush-line
.)Ini tidak menjalankan subshell: perintah yang Anda ketik setelah "menangguhkan" yang sebelumnya berjalan di shell yang sama. Ini memungkinkan Anda melakukan hal-hal seperti mengubah direktori saat ini jika Anda sadar setelah mengetik perintah yang Anda maksud untuk menjalankannya di direktori yang berbeda. Jika Anda ingin menjalankan contoh shell baru, Anda dapat menjalankan
zsh
dari pengikatan kunci, tapi saya tidak berpikir itu sangat berguna.sumber