Fish Shell 3.7.0: Kekal Dengan C++ Sambil Membawa Peningkatan


Fish Shell 3.7.0 meningkatkan pager sejarah, prestasi, dan penulisan skrip. Lepasannya 4.x pada masa depan akan menukar dalaman Fish kepada Rust.

Dalam ekosistem Linux, salah satu ciri yang menonjol kerana kepelbagaian dan kuasanya adalah pelbagai jenis shell yang boleh dipilih oleh pengguna.

Bersama dengan Bash klasik dan lain-lain seperti Zsh dan Tcsh, Fish telah diiktiraf dan diterima secara meluas sebagai pilihan utama di kalangan ramai pengguna Linux kerana pendekatan mesra pengguna dan ciri-ciri canggihnya untuk waktu yang lama.

Keluaran Fish 3.7.0 yang baru-baru ini diumumkan, dengan lebih daripada 1289 komit, mengukuhkan kedudukan ini, menjanjikan penambahbaikan dan pembaikan. Mari kita lihat mereka.

Fish Shell 3.7.0

Sorotan Utama

Fish 3.7.0 meningkatkan pengurusan sejarah baris arahan. Kini, pengguna boleh mencari baris arahan yang kompleks dengan padanan subsekuen dengan mudah. Pager sejarah juga memperkenalkan ciri carian yang lebih pintar dan cara yang lebih intuitif untuk mengendalikan pertanyaan carian yang tidak sepadan.

Mengenai prestasi, penyempurnaan arahan dan globbing menunjukkan peningkatan kelajuan yang ketara, terutamanya pada sistem fail yang lebih perlahan seperti NFS, yang merupakan keuntungan besar bagi pengguna yang menangani beban kerja baris perintah yang berat.

Satu lagi ciri menonjol dalam kemas kini ini adalah keupayaan untuk menetapkan masa tamat untuk urutan pelbagai kekunci, meningkatkan kebolehgunaan ciri seperti penukaran mod dalam mod vi. Pada masa yang sama, LS_COLORS tidak lagi akan ditetapkan secara automatik, memberi dorongan kepada pengguna untuk mengamalkan konfigurasi yang lebih diperibadikan.

Peningkatan Scripting dan Baris Perintah

  • Kestabilan dan Fleksibiliti: Fish 3.7.0 menangani beberapa pepijat dan meningkatkan pengalaman penulisan skrip. Daripada membaiki situasi kerosakan hingga memperbaiki arahan terbina dalam ‘jobs’, kemas kini ini menjadikan penulisan skrip lebih boleh dipercayai dan serba boleh.
  • Pengalaman Interaktif: Kemas kini ini membawa perubahan ketara pada pengalaman interaktif, seperti carian sejarah yang lebih baik dalam mod vi, laporan direktori kerja yang lebih baik dalam iTerm2, dan konfigurasi warna pemilihan yang dipertingkatkan.
  • Penyempurnaan Perintah dan Peningkatan Prompt: Fish 3.7.0 juga memperkenalkan fungsi bind baru untuk pengurusan sejarah, mesej ralat yang dipertingkatkan, dan sokongan lanjutan untuk perintah luaran.

Penyesuaian Estetik dan Kegunaan

Tema lalai kini menggunakan warna bernama, selaras dengan palet terminal, dan tema Dracula diselaraskan dengan perubahan terkini. Selain itu, arahan memaparkan direktori kerja dengan lebih tepat.

Akhirnya, Fish 3.7.0 menambah pelbagai pilihan pelengkap untuk pelbagai perintah, menjadikan kehidupan lebih mudah bagi pengguna. Pelepasan ini juga melihat peningkatan pada penjana pelengkap halaman manual, dan beberapa penyesuaian pelengkap lain telah dibuat.

Karat: Jalan Di Hadapan

Shell Fish kebanyakannya dikodkan dalam C++. Walau bagaimanapun, ini akan berubah tidak lama lagi.

David Adam, salah seorang pemaju utama Fish, mengesahkan bahawa hampir semua kod C++ telah berjaya dipindahkan ke Rust. Peralihan ini menambah 87,029 baris kod Rust sambil menghapuskan semua 76,776 baris kod C++, menandakan penulisan semula 100% mengikut kemas kini terbaru mereka.

Walau bagaimanapun, beliau menjelaskan bahawa pencapaian ini tidak bermakna versi baru shell Fish sudah sedia untuk pengguna akhir. Keadaan terkini projek ini menjanjikan, dengan beberapa penambahbaikan prestasi, tetapi ia juga menghadapi cabaran dalam beberapa bidang tertentu.

Yang perlu diperhatikan, penulisan semula ini masih belum mencapai matlamat teknikalnya, terutamanya berkaitan keselamatan benang (thread safety), yang merupakan motivasi utama untuk peralihan ke Rust.

Selain itu, sokongan platform tetap menjadi halangan yang ketara. Sokongan jangka pendek untuk platform seperti Cygwin dan MSys2 nampaknya tidak mungkin, dan pembungkusan untuk pengedaran Linux yang lebih lama menimbulkan cabaran.

Memandangkan perkara ini, siri ketiga Fish yang sedia ada akan terus menggunakan C++ untuk pengkodannya. Tetapi, apabila ia melancarkan siri keempatnya, dijangka akan membuat perubahan yang ketara dengan menukar bahasa pengaturcaraan utamanya kepada Rust.