Buradaki menu selectdavranışı kullanıyorum zsh, bu imlecin altında çeşitli olasılıkları görebileceğiniz bir menüyü çağırıyor. Bunun için belirlediğim .zshrc seçeneği
zstyle ':completion:*' menu select=2
Varsayılan olarak, Returnbu menüde bir olasılık seçmek için basılması yalnızca kelimeyi tamamlar - aslında komutu göndermez. Mesela böyle bir menü alabilirim
~ % cd de<TAB>
completing directory:
[Desktop/] Development/
ReturnBuraya basarak sonuçlanır
~ % cd Desktop/
Sonra basmak gerekiyor Returnbir ikinci aslında komutu göndermek için zaman.
Bunu yapmak için bu davranışı değiştirebilirim, böylece Returnher iki basışta tamamlamayı seçer ve bunu yaparak komutu gönderir
bindkey -M menuselect '^M' .accept-line
Ancak, bu bir problem var: bazen bir dosya veya dizin tamamlamak için gereken olmadan komutu gönderme. Örneğin, yapmanız gerekebilir ln -s Desktop Desktop2- bu bindkeydavranışla Masaüstü'nü tamamlamaya çalışmak ln -s Desktop/komut olarak gönderilmesine neden olur ve açıkçası bunu istemiyorum.
Sadece boşluklara basmama emri vermeme izin vereceğini biliyorum, ama bu şimdi bir alışkanlık.
Bunu göz önüne alarak, yalnızca bazı komutların bir Returnkez basmanıza izin vermesini sağlayacak bir yol var mı cd, ancak diğer tüm komutlar iki kez basılmasını mı gerektiriyor?
.zshrcdosya bunu daha sonra cevap basitçe komut tabanlı davranışı desteklemek için kaynak kodu kendiniz ayarlamak sürece, hiçbir olacak yapmaya izin vermez. Ama o zaman hala hangi komutları yapabileceğini tanımlamak zorundasın, bu da kendi başına ek bir