Saya menggunakan oh-my-zsh di Mac OS X dengan homebrew'ed zsh 4.3.12. Baru-baru ini saya menemukan masalah aneh. Dalam scripts/not-used
saya punya beberapa .R
file:
breakdowns.R eventloop.R process-largeclients.R process-qt.R
reprocess-pinning.R calculate-qt-error.R generate_decision_tree.R process-net.R
process-scalingexp.R
Namun, ketika saya mencoba ls scripts/not-used/
+ Tabpenyelesaian pertama adalah ls scripts/not-used/_.R
di mana _
merupakan posisi kursor. Jika saya menekan Tablagi, saya mendapatkan penyelesaian aneh ini:
$ ls scripts/not-used/.R
breakdowns.R eventloop.R
Bagaimana cara menghapus perilaku buruk (salah) ini?
Opsi yang ditetapkan adalah:
alwaystoend autocd autonamedirs autopushd cdablevars completeinword
correctall extendedglob extendedhistory noflowcontrol
histexpiredupsfirst histignoredups histignorespace histreduceblanks histverify
incappendhistory
interactive login longlistjobs monitor promptsubst
pushdignoredups pushdminus pushdsilent pushdtohome
sharehistory shinstdin zle
zsh
autocomplete
oh-my-zsh
Nikola Knezevic
sumber
sumber
breakdowns.R eventloop.R
penyelesaian yang salah? Coba hapuscompleteinword
pilihan, karena ini memungkinkan penyelesaian dilakukan dari kedua ujung kursor, kiri dan kanan. Itu berarti, bahwa jika saya mengetikpac
seperti dalampacman
, dan ada perintah yang dipanggilarpac
, makaarpac
akan ada dalam daftar penyelesaian, karena penyelesaian terjadi di kedua sisi kursor, bukan hanya ke kanan.breakdowns.R eventloop.R
adalah penyelesaian yang salah, dalam arti ketidaklengkapan. Jika Anda melihat dekat pada daftar file, ada lebih dari hanya 2, berakhir dengan.R
.Jawaban:
Masalahnya terletak pada
zstyle
daftar pencocokan.Jika Anda menambahkan yang berikut ini ke Anda
.zshrc
, itu akan memperbaikinya:The
e:
(bukannya defaultr:
) memaksa kecocokan ke akhir string.Detail untuk opsi dapat ditemukan di ZSH: dokumen Kontrol Pencocokan Penyelesaian
sumber
Apakah Anda memperhatikan di mana kursor Anda diletakkan? Karena semua file diakhiri dengan .R, secara otomatis menambahkan saran yang mungkin untuk Anda.
Autocomplete menggunakan "kedua ujungnya" seperti yang dijelaskan oleh Tshepang.
Coba masukkan file ke folder ini tanpa nama .R, dan Anda akan melihat .R itu sedikit hilang.
Jujur, autocomplete sebenarnya membutuhkan sesuatu untuk "menyelesaikan" bukan asumsi direktori buta.
sumber
Gert mungkin tepat untuk memperbaikinya. Namun, saya menduga alasan untuk sifat tidak lengkap dari daftar file (breakdowns.R dan eventloop.R) adalah karena file-file tersebut menjadi satu-satunya file dalam direktori kerja saat ini yang ditandai sebagai executable. Anda dapat mengonfirmasi ini dengan "ls-l" dan melihat izin untuk sesuatu seperti rwx. Jika Anda tidak memiliki "./" atau direktori itu secara eksplisit di PATH maka saya berharap kedua file tersebut tidak muncul juga.
sumber