Meninggalkan Neovim dan Beralih ke Zed
(stevedylan.dev)- Setiap developer memiliki perjalanan editor teksnya sendiri hingga sampai ke alat yang dipakai saat ini. Kisah-kisah seperti ini menarik, dan menumbuhkan apresiasi besar terhadap alat pengembangan serta upaya yang dicurahkan ke dalamnya
- Tulisan ini dibuat untuk membagikan perjalanan tersebut kepada orang-orang yang tertarik pada alat pengembangan, sekaligus mendorong mereka untuk bereksperimen dengan alat baru
Awal perjalanan editor teks
- Pertama kali menggunakan Atom sambil mulai mempelajari dasar-dasar HTML, CSS, dan Javascript
- Beralih ke VSCode, tetapi saat itu istrinya perlu memakai laptop untuk mengedit foto, dan MacBook yang dipakai sebagai gantinya mengalami penurunan performa karena build Electron milik VSCode
- Di saat itu ia kebetulan menemukan Vim, lalu terpikat oleh alur kerja yang berpusat pada keyboard dan kecepatannya, sehingga mulai mempelajari Vim
- Pada awalnya menggunakan Vim sambil mengubah Vim RC, lalu kemudian mengenal Neovim melalui video chris@machine
- Selama bertahun-tahun menggunakan Neovim dengan produktivitas tinggi. Banyak waktu dihabiskan untuk menyesuaikan konfigurasi, tetapi pada akhirnya sampai pada kondisi yang nyaris tidak membutuhkan perubahan konfigurasi lagi
Perubahan
- Namun seiring waktu, file konfigurasi terus perlu disederhanakan, dan bahkan untuk mempertahankan fungsi dasar pun dibutuhkan banyak usaha
- Sesekali setiap kali plugin diperbarui, Neovim mengalami masalah, sehingga harus menghentikan pekerjaan dan menghabiskan waktu untuk menyelesaikannya. Untuk mengatasi hal ini ia mencoba menyederhanakan konfigurasi, tetapi usaha untuk mempertahankan fungsi dasar tetap diperlukan
- Terutama saat bekerja pada codebase besar, Neovim menjadi lambat dan layar terkadang macet, yang mengganggu produktivitas
- Sempat mencoba beralih ke emulator terminal lain seperti Alacritty dan Wezterm, tetapi tidak ada perbedaan besar
- Sebelumnya pernah mendengar tentang Zed, tetapi sempat berhenti menggunakannya karena bukan berbasis terminal. Namun setelah mendengar penilaian positif soal kecepatan Zed, ia memutuskan untuk mencobanya lagi
- Setelah memakainya setiap hari selama 2 bulan, Zed memberikan pengalaman yang sangat memuaskan, dan ia berencana terus memakainya ke depan. Ia tidak berniat kembali ke Neovim
Pengalaman menggunakan Zed
- Untuk memahami alasan memilih Zed, ia ingin menjelaskan pengalaman penggunaan secara umum sejauh ini dan bagaimana editor ini disesuaikan dengan kebutuhannya
Semua hal "langsung bekerja dengan baik"
- Salah satu keunggulan terbesar Zed adalah bahwa "semuanya langsung bekerja dengan baik"
- Khususnya fitur seperti Language Server Protocol (LSP), yang di Neovim memerlukan banyak waktu untuk dikonfigurasi, di Zed bekerja dengan baik secara bawaan
- Di Zed, key binding seperti "lihat definisi", "pergi ke definisi", dan "code action" tersedia secara default, dan karena mendukung sebagian besar bahasa, hampir tidak menimbulkan masalah
Kecepatan
- Salah satu alasan utama memilih Zed adalah kecepatannya, dan hasilnya sangat memuaskan
- Bahkan pada codebase besar, Zed bekerja cepat tanpa lag, dan sejauh ini belum pernah mengalami masalah performa
- Mungkin saja Neovim bisa dibuat lebih cepat, tetapi daripada membuang waktu demi peningkatan produktivitas itu, memakai Zed adalah pilihan yang lebih baik
Mode Vim
- Sebagai pengguna Neovim, ia pernah kecewa dengan plugin Vim di VSCode karena tidak stabil dan penuh bug
- Mode Vim di Zed adalah fitur yang dibuat langsung oleh pengembangnya, sangat stabil, dan mendukung fitur-fitur penting dengan baik
- Struktur key binding-nya sangat fleksibel dan menyediakan kemampuan yang kemungkinan besar disukai pengguna Vim
Fitur AI
- Zed juga menyediakan fitur AI, dan Copilot sudah tertanam secara bawaan
- Model AI seperti OpenAI, Ollama, dan Anthropic dapat digunakan melalui API
- Fitur inline assistant yang memungkinkan memilih sebagian kode lalu memanggil AI assistant dengan
ctrl-enteruntuk menulis kode juga berguna
Zed ≠ Neovim
- Zed tidak bisa sepenuhnya menggantikan Neovim. Kekuatan besar Neovim adalah keberadaannya yang native di terminal
- Untuk tugas sederhana seperti mengedit file kecil, Neovim lebih praktis, tetapi untuk sesi jangka panjang atau proyek, Zed terasa sempurna
Menyesuaikan Zed untuk pengguna Neovim
Zed memang bukan pengganti penuh Neovim, tetapi lewat berbagai pengaturan kecil, pengalaman penggunaannya bisa sangat ditingkatkan agar terasa familier bagi pengguna Neovim/Vim
Mode Vim dan key binding
- Hal pertama yang perlu dilakukan adalah mengaktifkan mode Vim. Zed menyediakan halaman dokumentasi untuk mode Vim, yang menjelaskan binding Vim dasar dan cara menambahkan pengaturan lain
- Salah satu keunggulan besar Zed adalah key binding dapat diatur berdasarkan mode Vim. Misalnya, Anda bisa menerapkan key binding berbeda untuk mode "Normal" dan mode "Visual"
[
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space b": "editor::ToggleGitBlame",
"shift-k": "editor::Hover",
"space l f": "editor::Format",
"space d": "diagnostics::Deploy",
"space f f": "file_finder::Toggle",
"space o": "tab_switcher::Toggle",
"space e": "workspace::ToggleLeftDock",
"space /": "workspace::NewSearch",
"n": "search::SelectNextMatch",
"shift-n": "search::SelectPrevMatch",
"space t": "workspace::NewCenterTerminal",
"g b": "editor::ToggleComments",
"+ +": "workspace::Save",
"space c": "pane::CloseActiveItem"
}
},
{
"context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",
"bindings": {
"shift-j": "editor::MoveLineDown",
"shift-k": "editor::MoveLineUp"
}
},
]
- Selain itu, Anda juga bisa mengatur key binding untuk berpindah panel di Zed agar alur kerjanya mirip dengan Neovim
[
{
"context": "Dock || Terminal || Editor",
"bindings": {
"ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
]
- Disarankan juga merujuk ke keymap Vim bawaan untuk menyesuaikan pengaturan yang diperlukan. Keymap Vim bawaan adalah referensi yang berguna mengenai apa saja yang didukung Zed dan bagian mana yang mungkin ingin disesuaikan
UI yang disederhanakan
- Zed pada dasarnya sudah menawarkan UI minimal, tetapi jika Anda lebih menyukai tampilan yang lebih mirip konfigurasi Neovim, Anda bisa menonaktifkan tab bar, scroll bar, toolbar, dan elemen lainnya
{
"cursor_blink": false,
"relative_line_numbers": true,
"scrollbar": {
"show": "never"
},
"vertical_scroll_margin": 0,
"tab_bar": {
"show": false
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
},
}
Pengganti plugin
- Di Zed, untuk navigasi antar file atau buffer dengan fungsi yang mirip Telescope, Anda bisa memakai tab switcher (
Toggle)
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- Pencarian seluruh proyek berfungsi sebagai pengganti Telescope, dan hasilnya dapat dilihat melalui tampilan multi-buffer sehingga mudah dinavigasi
- Toggle terminal mirip seperti di VSCode, tetapi di Zed juga ada opsi untuk membuka terminal sebagai buffer di tampilan editor utama
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- Memang tidak bisa sepenuhnya menggantikan Tmux dan fitur perpindahan proyek, tetapi fitur perpindahan proyek di Zed cukup baik untuk menangani kebutuhan ini
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
Haruskah menggunakan Zed?
- Jika Anda sedang mempertimbangkan untuk mencoba Zed, disarankan memakainya selama beberapa hari
- Zed adalah editor teks yang unik dan mumpuni, dan pada akhirnya yang penting adalah alat yang benar-benar meningkatkan produktivitas
- Alat itu bisa saja VS Code, JetBrains, atau EMacs
- Pilih alat yang paling cocok untuk Anda, tetapi jangan terlalu keras kepala untuk mencoba hal baru
3 komentar
Komentar Hacker News
Awalnya menyukai Zed, tetapi karena fokusnya beralih ke fitur kolaborasi dan AI, kemampuannya sebagai editor dasar jadi terasa kurang memadai sehingga menjadi kurang berguna
Alasan menggunakan Helix adalah karena sempat ingin beralih dari VSCodium ke Vim atau Neovim, tetapi konfigurasi plugin terasa sulit
Baru-baru ini beralih dari Vim ke Zed, dan merasa Zed sangat bagus dalam banyak hal
Saat memakai Zed, sangat menikmati performanya yang cepat dan UI yang rapi
Enam bulan lalu beralih dari VSCode ke Zed, tetapi baru-baru ini kembali lagi ke Neovim
Berharap Zed menjadi lebih matang dan stabil
Bertanya apakah pernah mencoba distribusi Neovim
Jika ingin Neovim yang sesungguhnya di VSCode, disarankan untuk melihat
vscode-neovimMenjadi tertarik pada Kakoune dan Helix lalu menulis ekstensi editor modal untuk VSCode
Saat menjelajahi Zed di macOS, kesannya adalah editor yang cepat dan kaya fitur
Saya juga baru-baru ini beralih ke Helix.
Seperti pendapat di Hacker News, karena saya tidak memanfaatkan semua plugin di NeoVim sebelumnya, saya mencoba helix lalu langsung pindah. Namun, tema warnanya benar-benar cukup mengejutkan.
Maksud Anda, tema bawaannya terlalu ungu jadi kurang bagus? :eyes: