Zsh: buat panah ke atas melewati perintah yang identik

10

Di sebagian besar shell Unix, tombol panah-atas menggantikan perintah yang sedang diedit oleh perintah sebelumnya dalam sejarah. Sejarah dapat dilihat menggunakan perintah history.

dapat ditekan lebih dari satu kali untuk memanjat dalam sejarah.

Pertanyaanku adalah:

Bagaimana saya bisa mengkonfigurasi shell saya sehingga melewatkan semua perintah yang identik dengan yang sekarang?

Memang saya sering memasukkan banyak makeberturut-turut. Ketika saya ingin memasukkan lagi (atau memodifikasi sedikit) perintah yang lebih lama saya harus menekan berkali-kali hanya untuk melewati semua makeperintah.

Saya tahu itu bukan satu-satunya tip yang meningkatkan produktivitas shell.

bonus:

  • berikan konfigurasi yang berfungsi untuk shell Bash.
  • melestarikan sejarah (mengetahui bahwa Anda mengetik perintah berkali-kali dalam satu baris dapat bermanfaat)
Gabriel Devillers
sumber

Jawaban:

15

Untuk zsh, letakkan ini di konfigurasi Anda:

setopt histignoredups

Apa yang dilakukannya, itu akan mengabaikan entri riwayat yang digandakan selama pencarian.

Pengaturan yang setara untuk bash adalah

HISTCONTROL=$HISTCONTROL:ignoredups
Martin Sugioarto
sumber
1
terima kasih, setopt histignoredupsmelakukan pekerjaan tetapi juga menekan duplikat dari sejarah
Gabriel Devillers
Ya persis. Dalam kebanyakan kasus, inilah yang Anda inginkan. Ketika Anda telah melihat saran dan Anda tidak menginginkannya, Anda tidak ingin memiliki saran ini lagi. Itu tidak menghapus duplikat dari riwayat, btw.
Martin Sugioarto
Anda benar tetapi maksud saya: duplikat di masa mendatang tidak akan ditambahkan ke riwayat.
Gabriel Devillers
Mereka ditambahkan kalau tidak opsi lain yang disebut histexpiredupsfirstbahwa saya juga menggunakan tidak masuk akal. Itu membuat duplikat kedaluwarsa terlebih dahulu sebelum melihat usia. (Saya berbicara tentang zsh di sini)
Martin Sugioarto