Anda ingin:
masukkan-kelengkapan
ALT* untuk 'masukkan semua penyelesaian'
Dengan ini, direktori yang berisi nama file 'aa ab ac ad'
ls a*
diikuti oleh alt + *
akan selesails aa ab ac ad
Entri halaman buku tentang penjilidan:
masukkan-kelengkapan (M- *)
Masukkan semua pelengkapan teks sebelum titik yang mungkin dihasilkan oleh pelengkapan yang mungkin.
glob-expand-word
Pada beberapa sistem di atas tidak akan berfungsi dengan wildchars, berikut ini berfungsi pada sistem seperti itu untuk saya:
ctrlx, *(kombo dua langkah)
Contoh: Saya mengisi direktori dengan:
touch {a,b,c,d,e,f}{1,2,3,4,5,6,7,8,9,0}00{a,b,c,d,f,e}
Saya kemudian ls *100*
diikuti oleh ctrl + x, *
, yang mengubah readline saya menjadi:
ls a100a a100b a100c a100d a100e a100f b100a b100b b100c b100d b100e b100f c100a c100b c100c c100d c100e c100f d100a d100b d100c d100d d100e d100f e100a e100b e100c e100d e100e e100f f100a f100b f100c f100d f100e f100f
Entri halaman manual untuk mengikat:
glob-expand-word (Cx *)
Kata sebelum titik diperlakukan sebagai pola untuk perluasan pathname, dan daftar nama file yang cocok dimasukkan, menggantikan kata. Jika argumen numerik diberikan, '*' ditambahkan sebelum perluasan nama path.
Halaman Manusia
touch aa ab ac ad
dan mengetikls a
diikuti denganalt+*
memberikan daftar, tetapi melakukannya denganls a*
tidak. Wildcard adalah inti dari pertanyaan itu.GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
danGNU bash, version 4.2.0(1)-release (x86_64--netbsd)
tetapi tidakGNU bash, version 4.2.45(2)-release (i386-apple-darwin12.2.0)
. Dan dengan bekerja, maksud saya diajukan dalam teks. Akan memeriksa file conf saya untuk melihat apakah saya memiliki sesuatu yang ekstra.GNU bash, version 4.2.37(1)-release (arm-unknown-linux-gnueabihf)
(raspbian)Coba tambahkan ini ke ~ / .inputrc:
show-all-if-ambiguous membuat tab menekan sekali (bukan dua kali) daftar semua penyelesaian. Itu juga membuat tab pertama menyisipkan awalan bersama ekspresi glob.
glob-complete-word (\ eg) juga akan lengkap
*0
(tanpa*
di akhir) untuk1.0.
. Itu juga melengkapi misalnya/System/Library/Launch*/*Finde
untuk/System/Library/LaunchAgents/com.apple.Finder.plist
.Jika Anda ingin mengonversi
*
ke1.0.1 1.0.2
dalam contoh di atas, gunakan salah satu sisipan-penyelesaian (\ e *) atau glob-expand-word (\ Cx *).sumber
Masalah ini disebabkan oleh bug dalam paket "bash-completion".
Ketika paket ini tidak diinstal bash apakah itu penyelesaian standar, ini adalah mesin penyelesaian nama file umum yang cukup bagus.
Paket "bash-completion" seharusnya melihat sisa baris dan menjadi "pintar" tentang daftar yang dihasilkannya. Namun, itu tidak berhasil menduplikasi ekspansi "glob".
Secara pribadi, saya pikir paket tersebut mencoba terlalu keras dan akhirnya hanya dapat digunakan oleh "pengguna biasa yang paling bodoh".
Namun, sebelum menghapusnya, Anda mungkin ingin memeriksa bagian atas file "/ usr / share / bash-completion / bash_completion" untuk tambahan berguna pada .bashrc Anda untuk 'penyetelan kotor' dari penyelesaian bash bawaan.
BTW: Ini memiliki lebih dari seratus bug yang tercatat ... https://bugs.debian.org/cgi-bin/pkgreport.cgi?package=bash-completion
sumber