Bagaimana cara memperluas wildcard di bash?


10

Saya ingat bash dapat melakukan hal berikut:

Misalkan ada 3 file: a, b, c di direktori saat ini, ketika saya input:

$> somecommand *

dan kemudian tekan tombol atau kombinasi tombol atau urutan tombol, wildcard * online diperluas sebagai:

$> somecommand a b c

tapi saya tidak bisa mengingat dan tidak bisa mengeluarkan urutan kunci! Tolong!


5
CobaCtrl-X *
Stéphane Chazelas

Jawaban:


7

Jika tidak, Anda harus mengikat glob-expand-wordurutan kunci. Biasanya dengan menambahkan sesuatu seperti:

"\C-x*": glob-expand-word

untuk .inputrc.

Untuk memeriksa masalah status saat ini, sesuatu seperti:

bind -P | grep glob-expand-word

Di mana hasilnya mungkin:

glob-expand-word can be found on "\C-x*".

Yang artinya:

Ctrl-x*

Ini juga kemungkinan besar berhasil:

Ctrl-xCtrl-*


Lihatlah bind -Pdan manual untuk kebaikan lainnya.


3

Sepertinya Anda sedang mencari daftar selesai. Di halaman manual untuk bash:

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes
     sive  tabs, !, for listing alternatives on partial word comple
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program
     mable completion facilities

Jadi itu tergantung pada fungsi penyelesaian untuk beberapa orang dan bagaimana ini selesai.


2

Jika Anda menggunakan set -o vidalam bash, maka Ctrl-X*tidak berfungsi.

Dalam set -o vimode, Anda perlu menggunakan Esc*sebagai gantinya.


1
Mungkin perlu dicatat bahwa begitu Anda berada dalam mode normal, <C-X>*akan berfungsi, tetapi yang <C-X>berlebihan dan tidak melakukan apa pun. ( <C-X>tidak menurun seperti halnya di vi.) Jika Anda berada dalam mode insert, maka Anda harus menggunakan <Esc>terlebih dahulu.
wchargin

Ini bagus. Apa ini namanya? bash pintasan keyboard? Apakah ada beberapa dokumentasi di mana saya dapat menemukan lebih banyak cara pintas keyboard ini?
wisbucky

2
@wisbucky: Agak terlambat, tetapi untuk orang lain, GNU Readline bertanggung jawab untuk ini. Ketika Anda mengalami hari yang lambat, baca bagian EDITING COMMANDS dari man readline. Saya telah menggunakan Bash selama 10 tahun dan saya masih belajar yang baru.
Soren Bjornstad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.