11 poin oleh GN⁺ 2024-08-19 | 3 komentar | Bagikan ke WhatsApp
  • 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-enter untuk 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

 
GN⁺ 2024-08-19
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

    • Saat ini kembali ke editor dan IDE lama, dan berencana mencobanya lagi nanti
  • Alasan menggunakan Helix adalah karena sempat ingin beralih dari VSCodium ke Vim atau Neovim, tetapi konfigurasi plugin terasa sulit

    • Helix langsung bisa dipakai, jadi terus digunakan, dan key binding-nya intuitif serta membantu mempelajari key binding Vim
    • Tema warna bawaannya agak mengejutkan
  • Baru-baru ini beralih dari Vim ke Zed, dan merasa Zed sangat bagus dalam banyak hal

    • Namun, ada banyak bug pada fungsi dasarnya, jadi berharap fitur dasar lebih diprioritaskan daripada integrasi AI dan semacamnya
  • Saat memakai Zed, sangat menikmati performanya yang cepat dan UI yang rapi

    • Jika integrasi Git dan dukungan remote lebih baik, kemungkinan bisa beralih sepenuhnya
  • Enam bulan lalu beralih dari VSCode ke Zed, tetapi baru-baru ini kembali lagi ke Neovim

    • Menyukai pendekatan Zed terhadap integrasi Vim, tetapi kembali ke Neovim karena kurangnya fitur dasar dan adanya bug
    • Bersedia kembali lagi jika Zed sudah lebih matang
  • Berharap Zed menjadi lebih matang dan stabil

    • Sampai saat itu, menggunakan Sublime Text 4, yang performanya sangat baik, dan ekstensi LSP serta Sublime Merge menutupi kekurangan VSCode
  • Bertanya apakah pernah mencoba distribusi Neovim

    • Distribusi seperti LazyVim, AstroVim, dan NvChad sudah menyiapkan plugin dan integrasi yang dibutuhkan
  • Jika ingin Neovim yang sesungguhnya di VSCode, disarankan untuk melihat vscode-neovim

    • Bisa menggunakan VIM yang sebenarnya bersama semua fitur VSCode
  • Menjadi tertarik pada Kakoune dan Helix lalu menulis ekstensi editor modal untuk VSCode

    • Mendukung sebagian besar fitur VIM, serta menambahkan perilaku dan mode baru berbasis AST
    • Berencana menulis posting blog tentangnya
  • Saat menjelajahi Zed di macOS, kesannya adalah editor yang cepat dan kaya fitur

    • Namun, di sistem *nix, Zed tidak seumum vi/vim
    • Dengan mempertimbangkan beragam infrastruktur dan batasan deployment, lebih mudah fokus pada editor yang umum tersedia
    • Zed bisa menjadi alternatif untuk vi/vim, tetapi kecil kemungkinan sebagian besar pengguna vi/vim akan beralih sepenuhnya
 
taking 2024-08-19

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.

 
roxie 2024-08-26

Maksud Anda, tema bawaannya terlalu ungu jadi kurang bagus? :eyes: