Terminal Ubuntu, Bagaimana saya "tab" (autocomplete) nama file window-cmd-style (opsi siklus)?

13

Pada dasarnya saya ingin mengubah terminal ubuntu secara fungsional, sehingga saya dapat siklus melalui semua opsi ketika saya tab (pada baris baris cmd) dan tidak mencantumkan opsi karena per default?

Saya menggunakan bash, ubuntu 9.04. Saya melihat beberapa kemungkinan di ".bashrc", tetapi harus ada seseorang di luar sana yang sudah menyelesaikan masalah ini?

Daniel T. Magnusson
sumber
Anda tahu bahwa jika menekan Tab dua kali Anda mendapat daftar semua penyelesaian yang mungkin, bukan?
vava
@vava: Anda menjelaskan perintah kemungkinan-selesai bash, yang biasanya merupakan perilaku default. Pertanyaannya adalah bagaimana cara mengganti perilaku ini dengan perilaku yang disediakan oleh perintah menu-complete bash.
las3rjock
@ las3rjock, saya tahu, itu sebabnya saya meninggalkan komentar, bukan jawaban. Mungkin saja OP tidak tahu tentang fitur itu karena jauh lebih baik daripada mode bersepeda.
vava
@vava: OP menjelaskan perilaku penyelesaian-mungkin dan menyatakan bahwa ia ingin menggantinya dengan perilaku melengkapi-menu.
las3rjock
@vava saya tahu bagaimana terminal bekerja, dan saya ingin mengubah perilaku yang sangat menjengkelkan ini.
Daniel T. Magnusson

Jawaban:

16

Menurut komentar di halaman ini , menempatkan

bind '"\t":menu-complete'

di Anda .bashrcharus mengaktifkan penyelesaian tab siklik.

Lihat bagian 8.4.6 dari Bash Reference Manual untuk informasi lebih lanjut.

las3rjock
sumber
Terima kasih, sangat bagus temukan! - Cintai komentar di halaman itu "Butuh waktu bertahun-tahun untuk mengetahui bahwa bash mendukung penyelesaian tab siklik" - hah, superuser menang!
Daniel T. Magnusson
Terima kasih! Setelah ini diterapkan, apakah ada kombinasi tombol override untuk menggunakan cara lama sebentar? Shift + TAB, misalnya.
Ace
0

Sesuatu yang merupakan penyelamat bagi saya adalah memiliki siklus bash melalui kemungkinan bukannya menunjukkan daftar bodoh.

Karena bash menggunakan readlineuntuk pelengkapan otomatisnya, tambahkan baris berikut ke~/.inputrc

Setelah Anda puas dan telah diuji secara menyeluruh di bawah ini solusi untuk beberapa hari / minggu, cut dan paste (tidak copy!) Pengaturan yang sama dari ~/.inputrcke /etc/inputrcyang berisi pengaturan sistem-lebar, membuat ini tersedia untuk semua pengguna di sistem Anda (termasuk tamu).

Kodez:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

kemudian exitterminal Anda (atau terminal jarak jauh seperti dempul) dan buka lagi ...

Contoh:

  1. Bila Anda memiliki 3 file: file1, file2dan file3dan Anda ketik:

    e fTabTabTab

    akan berputar melalui:

    e file1
    e file2
    e file3

    dan ketika Anda ingin kembali, cukup tekan Shift+Tab

  2. Saat Anda mengetik:

    very-complicated-command with lots of command line parameters

    dan lain kali Anda membutuhkan perintah yang sama, Anda cukup mengetik:

    very

    dan itu akan diketik untuk Anda:

    very-complicated-command with lots of command line parameters

Ini akan menghemat banyak waktu di bash! ;-)

Sumber

Fabby
sumber