Sugesti otomatis yang cepat/tidak mengganggu seperti ikan untuk zsh.
Ini menyarankan perintah saat Anda mengetik berdasarkan riwayat dan penyelesaian.
Persyaratan: Zsh v4.3.11 atau lebih baru
Lihat INSTALL.md.
Saat Anda mengetikkan perintah, Anda akan melihat penyelesaian yang ditawarkan setelah kursor dalam warna abu-abu yang diredam. Warna ini dapat diubah dengan mengatur variabel ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
. Lihat konfigurasi.
Jika Anda menekan tombol → (widget forward-char
) atau Akhir (widget end-of-line
) dengan kursor di akhir buffer, ia akan menerima saran, mengganti konten buffer baris perintah dengan saran.
Jika Anda memanggil widget forward-word
, widget tersebut akan menerima sebagian saran hingga kursor berpindah.
Anda mungkin ingin mengganti variabel konfigurasi global default. Nilai default dari variabel-variabel ini dapat ditemukan di sini.
Catatan: Jika Anda menggunakan Oh My Zsh, Anda dapat meletakkan konfigurasi ini dalam file di direktori $ZSH_CUSTOM
. Lihat komentar mereka tentang penggantian internal.
Setel ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
untuk mengonfigurasi gaya yang menampilkan saran. Standarnya adalah fg=8
, yang akan mengatur warna latar depan menjadi warna 8 dari palet 256 warna. Jika terminal Anda hanya mendukung 8 warna, Anda perlu menggunakan angka antara 0 dan 7.
Warna latar belakang juga dapat diatur, dan saran dapat diberi gaya tebal, bergaris bawah, atau menonjol. Misalnya, ini akan menampilkan saran dengan teks merah muda tebal, bergaris bawah, dan berlatar belakang biru kehijauan:
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE= " fg=#ff00ff,bg=cyan,bold,underline "
Untuk info lebih lanjut, baca bagian Penyorotan Karakter di manual zsh: man zshzle
atau online.
Catatan: Beberapa pengguna iTerm2 melaporkan tidak dapat melihat saran. Jika hal ini memengaruhi Anda, masalahnya mungkin disebabkan oleh pengaturan warna yang salah. Untuk memperbaikinya, masuk ke pengaturan iTerm2, navigasikan ke profile > warna dan pastikan warna untuk Basic Colors > Background dan ANSI Colors > Bright Black berbeda .
ZSH_AUTOSUGGEST_STRATEGY
adalah array yang menentukan bagaimana saran harus dihasilkan. Strategi-strategi dalam array dicoba secara berturut-turut hingga ditemukan saran. Saat ini ada tiga strategi bawaan yang dapat dipilih:
history
: Memilih pertandingan terbaru dari sejarah.completion
: Memilih saran berdasarkan saran penyelesaian tab. (membutuhkan modul zpty
, yang disertakan dengan zsh sejak 4.0.1)match_prev_cmd
: Menyukai history
, tetapi memilih kecocokan terbaru yang item riwayat sebelumnya cocok dengan perintah yang paling terakhir dijalankan (info lebih lanjut). Perhatikan bahwa strategi ini tidak akan berfungsi seperti yang diharapkan dengan opsi ZSH yang tidak mempertahankan urutan riwayat seperti HIST_IGNORE_ALL_DUPS
atau HIST_EXPIRE_DUPS_FIRST
. Misalnya, pengaturan ZSH_AUTOSUGGEST_STRATEGY=(history completion)
pertama-tama akan mencoba menemukan saran dari riwayat Anda, namun, jika tidak dapat menemukan kecocokan, akan mencari saran dari mesin penyelesaian.
Plugin ini bekerja dengan memicu perilaku khusus ketika widget zle tertentu dipanggil. Anda dapat menambah dan menghapus widget dari array ini untuk mengubah perilaku plugin ini:
ZSH_AUTOSUGGEST_CLEAR_WIDGETS
: Widget dalam array ini akan menghapus saran saat dipanggil.ZSH_AUTOSUGGEST_ACCEPT_WIDGETS
: Widget dalam array ini akan menerima saran saat dipanggil.ZSH_AUTOSUGGEST_EXECUTE_WIDGETS
: Widget dalam array ini akan menjalankan saran saat dipanggil.ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS
: Widget dalam array ini akan menerima sebagian saran saat dipanggil.ZSH_AUTOSUGGEST_IGNORE_WIDGETS
: Widget dalam array ini tidak akan memicu perilaku khusus apa pun.Widget yang mengubah buffer dan tidak ditemukan di salah satu array ini akan mengambil saran baru setelah dipanggil.
Catatan: Widget tidak boleh dimiliki lebih dari satu array di atas.
Setel ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE
ke nilai integer untuk menonaktifkan saran otomatis untuk buffer besar. Standarnya tidak disetel, yang berarti saran otomatis akan dicoba untuk ukuran buffer apa pun. Nilai yang direkomendasikan adalah 20. Ini berguna saat menempelkan teks dalam jumlah besar di terminal, untuk menghindari terpicunya saran otomatis untuk string yang terlalu panjang.
Saran diambil secara asinkron secara default di zsh versi 5.0.8 dan lebih tinggi. Untuk menonaktifkan saran asinkron dan mengambilnya secara sinkron, unset ZSH_AUTOSUGGEST_USE_ASYNC
setelah mencari sumber plugin.
Alternatifnya, jika Anda menggunakan versi zsh yang lebih lama dari 5.0.8 dan ingin mengaktifkan mode asynchronous, atur variabel ZSH_AUTOSUGGEST_USE_ASYNC
setelah mencari plugin (dapat diatur ke apa pun). Perhatikan bahwa ada bug di versi zsh yang lebih lama dari 5.0.8 di mana ctrl + c akan gagal mereset prompt segera setelah mengambil saran secara asinkron.
Setel ZSH_AUTOSUGGEST_MANUAL_REBIND
(dapat diatur ke apa saja) untuk menonaktifkan pengikatan ulang widget otomatis pada setiap precmd. Hal ini dapat menjadi peningkatan kinerja yang besar, namun Anda harus menangani pengikatan ulang sendiri jika salah satu daftar widget berubah atau jika Anda atau plugin lain membungkus salah satu widget saran otomatis. Untuk mengikat kembali widget, jalankan _zsh_autosuggest_bind_widgets
.
Setel ZSH_AUTOSUGGEST_HISTORY_IGNORE
ke pola glob untuk mencegah penawaran saran untuk entri riwayat yang cocok dengan pola tersebut. Misalnya, setel ke "cd *"
untuk tidak pernah menyarankan perintah cd
apa pun dari riwayat. Atau setel ke "?(#c50,)"
untuk tidak menyarankan apa pun yang panjangnya 50 karakter atau lebih.
Catatan: Ini hanya memengaruhi history
dan strategi saran match_prev_cmd
.
Setel ZSH_AUTOSUGGEST_COMPLETION_IGNORE
ke pola glob untuk mencegah penawaran saran penyelesaian saat buffer cocok dengan pola tersebut. Misalnya, setel ke "git *"
untuk menonaktifkan saran penyelesaian untuk sub-perintah git.
Catatan: Ini hanya mempengaruhi strategi saran completion
.
Plugin ini menyediakan beberapa widget yang dapat Anda gunakan dengan bindkey
:
autosuggest-accept
: Menerima saran saat ini.autosuggest-execute
: Menerima dan menjalankan saran saat ini.autosuggest-clear
: Menghapus saran saat ini.autosuggest-fetch
: Mengambil saran (berfungsi bahkan ketika saran dinonaktifkan).autosuggest-disable
: Menonaktifkan saran.autosuggest-enable
: Mengaktifkan kembali saran.autosuggest-toggle
: Beralih antara saran yang diaktifkan/dinonaktifkan.Misalnya, ini akan mengikat ctrl + spasi untuk menerima saran saat ini.
bindkey ' ^ ' autosuggest-accept
Jika Anda mempunyai masalah, silakan telusuri daftar masalah di GitHub untuk melihat apakah orang lain telah melaporkannya.
Sebelum melaporkan masalah, coba nonaktifkan sementara bagian konfigurasi Anda dan plugin lain yang mungkin bertentangan dengan plugin ini untuk mengisolasi masalahnya.
Saat melaporkan masalah, harap sertakan:
.zshrc
terkecil dan paling sederhana yang akan mereproduksi masalah. Lihat komentar ini untuk contoh yang baik tentang apa artinya ini.zsh --version
) Hapus kode yang merujuk plugin ini dari ~/.zshrc
.
Hapus repositori git dari hard drive Anda
rm -rf ~ /.zsh/zsh-autosuggestions # Or wherever you installed
Edit file sumber di src/
. Jalankan make
untuk membangun zsh-autosuggestions.zsh
dari file sumber tersebut.
Permintaan tarik dipersilakan! Jika Anda mengirim permintaan tarik, harap:
develop
( BUKAN master
) Tes ditulis dalam ruby menggunakan kerangka rspec
. Mereka menggunakan tmux
untuk menjalankan pseudoterminal, mengirimkan simulasi penekanan tombol dan membuat pernyataan pada konten terminal.
File uji tinggal di spec/
. Untuk menjalankan tes, jalankan make test
. Untuk menjalankan pengujian tertentu, jalankan TESTS=spec/some_spec.rb make test
. Anda juga dapat menentukan biner zsh
yang akan digunakan dengan mengatur variabel lingkungan TEST_ZSH_BIN
(misal: TEST_ZSH_BIN=/bin/zsh make test
).
Anda dapat menjalankan pengujian untuk versi zsh apa pun yang didukung di image Docker dengan membuat image dari Dockerfile yang disediakan. Untuk membuat image buruh pelabuhan untuk versi zsh tertentu (di mana <version>
di bawah ini diganti dengan konten baris dari file ZSH_VERSIONS
), jalankan:
docker build --build-arg TEST_ZSH_VERSION= < version > -t zsh-autosuggestions-test .
Setelah membuat image, jalankan pengujian melalui:
docker run -it -v $PWD :/zsh-autosuggestions zsh-autosuggestions-test make test
Proyek ini dilisensikan di bawah lisensi MIT. Untuk teks lengkap lisensi, lihat file LISENSI.