Saya ingin tcsh'ism yang belum dapat saya temukan: Pada baris kosong tanpa konten, saya ingin menekan tombol tab dan melihat yang setara dengan ls. Artinya saya ingin
$ <tab>
untuk melakukan sesuatu selain memberi saya \ t. Saya telah menemukan sumber daya yang luar biasa untuk penyelesaian perintah, tetapi tidak untuk kasus dasar ini. Bantuan apa pun ini akan sangat bagus! Terima kasih.
shell
configuration
zsh
Kristopolous
sumber
sumber
Perilaku Tabpada awal garis dikendalikan oleh gaya . Namun, hanya ada dua perilaku yang didukung:
insert-tab
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' insert-tab true
zstyle ':completion:*' insert-tab pending[=N]
Jika Anda hanya ingin menyelesaikan perintah di posisi itu,
zstyle ':completion:*' insert-tab true
lakukan. Jika Anda menginginkan sesuatu yang berbeda, seperti mendaftarkan file di direktori saat ini, Anda perlu memodifikasi_main_complete
.Sebuah utas terbaru tentang daftar pekerja zsh dibahas
insert-tab
.sumber
_main_complete
adalah bagian dari kode zsh yang mengimplementasikan penyelesaian. Ada diCompletion/Base/Core/_main_complete
dalam pohon sumber, biasanya dipasang di lokasi seperti/usr/share/zsh/functions/Completion/Base/_main_complete
.-command-
tidak menyebabkan <Tab> mencantumkan file di direktori saat ini. Yang Anda lakukan adalah membatasi kecocokan untuk menghilangkan nama perintah. Tetapi hanya hal-hal yang akan diselesaikan dalam posisi ini yang terdaftar, jadi bukan file dalam direktori saat ini (hanya direktori dan executable tergantung padaautocd
danPATH
).Berikut ini adalah implementasi lengkap autolist tcsh di zsh, saat Anda menekan tab pada baris kosong
Ini dia:
Jika Anda ingin meniru tcsh lebih dekat, tambahkan juga ini ke .zshrc Anda:
sumber
Saya menulis widget zsh ini yang meningkatkan penggunaan TAB, tidak hanya pada baris kosong, tetapi juga saat Anda mengetikkan perintah.
Ini dapat dikonfigurasi untuk menambahkan "cd" atau "./" dalam kasus-kasus tersebut dengan variabel global.
export TAB_LIST_FILES_PREFIX
sumber