Misalkan saya memiliki yang berikut di terminal saya:
> cp my_file_name originals/#
Dimana #
mewakili kursor.
Apakah ada kombinasi tombol untuk disisipkan my_file_name
ke posisi kursor, sehingga saya tidak perlu mengetik lagi? Saya sadar ALT + . untuk mendapatkan argumen terakhir dari perintah sebelumnya, tetapi saya ingin argumen sebelumnya dari perintah saat ini!
cp myfile orginals/
melakukan hal yang sama persis seperticp myfile originals/myfile
?copy-prev-shell-word
:(Jawaban:
Salah satu cara melakukannya adalah menggunakan ekspansi brace :
sumber
Kamu bisa memakai Ctrl + W untuk memotong argumen dan menyimpannya di clipboard Anda, lalu Ctrl + Y untuk menempelkannya lagi:
sumber
Penggunaan rumit, tetapi penyiapan lebih sederhana:
Anda dapat mengikat keystroke (saya akan menggunakan Ctrl - Q ) ke
readline
copy-backward-word
berfungsi dan lakukan ini:Alt - 2 Ctrl - Q Ctrl - y Ctrl - Alt - h
Itu berarti:
digit-argument
copy-backward-word
(salin dua kata sebelumnya)yank
(pasta)backward-kill-word
(singkirkan kata tambahan)Untuk mengikat ketukan pada baris perintah:
atau tambahkan ini ke
~/.inputrc
:Penggunaan lebih sederhana, tetapi pengaturan lebih rumit:
Anda dapat membuat urutan penekanan tombol yang panjang menjadi makro yang dipicu oleh satu penekanan tombol (saya akan menggunakan Alt - q di sini dan memanfaatkan Ctrl - q mengikat dari atas):
Pada prompt shell:
atau di
~/.inputrc
:Ingat, Anda juga harus mengikat Ctrl - q seperti di atas.
Sekarang untuk menyalin kata sebelum yang sekarang yang perlu Anda tekan adalah Alt - q .
sumber
Inilah cara lain, walaupun saya tidak yakin mengapa Anda ingin melakukan apa yang Anda coba lakukan, karena nama file tersirat dalam contoh perintah cp Anda (dan akan berfungsi seperti yang diharapkan).
Ini dapat diperluas, juga, untuk mengubah nama file:
sumber
Lakukan seperti ini:
! # adalah baris saat ini,: 1 adalah argumen pertama.
sumber
Anda bisa mencoba ini:
cp my_file_name
Ctrl + WCtrl + Y
originals/
Ctrl + YTapi itu tidak berhasil ketika Anda sudah berada di ujung garis. Mungkin sesuatu yang serupa mungkin berhasil. (dan dengan salinan, tidak dipotong)
Sunting: Coba Alt + B , Ctrl + W , Ctrl + Y , Akhir , Ctrl + Y - Sedikit solusi yang berantakan!
sumber
Saya punya ini di saya
~/.inputrc
:!#
adalah garis saat ini,:$
adalah kata terakhir, dan\e^
aku shistory-expand-line
.sumber