it-swarm-id.com

Saya menggunakan IDE (Eclipse) untuk mengembangkan perangkat lunak. Mengapa saya harus beralih ke vim atau emacs?

Pekerjaan saya sehari-hari adalah pengembang Java/web. Saya telah menggunakan Eclipse selama ~ 5 tahun. Saya pikir sangat bagus dan saya juga menggunakan Webstorm untuk javascript dan html/jsp.

Saya kadang-kadang perlu ssh ke server dan main-main dengan file konfigurasi; untuk ini saya menggunakan vi dan itu menyakitkan saya. Saya harus membuka halaman web yang mencantumkan sintaks/perintah: tekan escape, lalu asterix, putar tiga kali dan teks akan dimasukkan dua baris di atas kursor Anda . Ini sangat tidak intuisi kepada saya, dan saya membayangkan siapa pun yang tumbuh di akhir tahun delapan puluhan sembilan puluhan.

Berikut adalah alasan utama saya pikir Eclipse brilian (dan saya menganggap IDE lain), dan tidak beralih ke emacs dan/atau vim.

  • Sorotan kesalahan tanpa perlu mengkompilasi ulang proyek.
  • Bantuan kode.
  • Refactoring.
  • Pembukaan panggilan hiearchy/Pembukaan deklarasi.
  • Sepenuhnya terintegrasi dengan kontrol sumber.
  • Debugger disertakan.
  • ketersediaan plugin pihak ke-3 - mis. findbugs/checkstyle.

Salah satu argumen yang saya dengar adalah bahwa dengan emacs/vim Anda dapat membuat plugin Anda sendiri - baiklah, tetapi Anda dapat melakukannya di Eclipse juga. Tapi Anda tidak perlu karena semuanya sudah ada di sana! Ini seperti mengatakan membeli mobil setengah jadi ini, Anda dapat membangun sisanya sendiri.

Mengapa orang menggunakan emacs/vim? Apakah orang yang menggunakannya benar-benar bekerja pada proyek berorientasi objek yang kompleks di organisasi besar?

Apa alasan untuk beralih ke vim/emacs. Bagaimana peningkatan produktivitas saya jika saya beralih?

31
NimChimpsky

Gunakan alat apa pun yang sesuai dengan kebutuhan Anda. Mengetahui VIM atau Emacs adalah hal yang baik jika Anda harus masuk ke server jauh dan mengedit file konfigurasi atau yang serupa. Saya tahu VIM cukup baik , tapi saya tidak akan menggunakannya untuk berkembang di Jawa. Itulah tujuan Eclipse, Netbeans dll.

36
user281377

Emacs dan Vi masih punya tempat.

  • Mereka tersedia di mana-mana di lingkungan Unix dan Unix, dan dapat diinstal pada sebagian besar platform populer lainnya.

  • Mereka populer dan stabil, jadi mempelajarinya sekali terbayar dalam jangka panjang.

  • Mereka menjalankan terminal teks, sehingga Anda dapat menggunakannya dalam sesi telnet dan ssh.

  • Mereka menyediakan mode pengeditan dan penyorotan sintaks untuk berbagai bahasa, termasuk bahasa yang sangat baru dan sangat langka. (Ini adalah salah satu keunggulan favorit saya.)

Namun, kunci untuk memahami program-program ini adalah untuk mengetahui masalah apa yang semula dimaksudkan untuk mereka selesaikan. Untuk Vi ini sedang mengedit file teks melalui koneksi terminal selambat 300 Baud. Dalam lingkungan itu Anda tidak ingin menampilkan menu atau secara radikal mengubah isi layar jika Anda bisa menghindarinya.

Emacs dimaksudkan untuk digunakan di lingkungan yang lebih cepat. Kekuatannya adalah bisa dimuat sekali dan tidak pernah keluar. Pengguna dapat menyelesaikan tugas lain yang mereka butuhkan dari Emacs tanpa pergi, dan seringkali dengan cara yang lebih ramah daripada jika mereka harus melakukannya dari baris perintah. Orang-orang tidak memiliki lingkungan desktop grafis dengan jendela Emacs terbuka. Emacs memungkinkan pengguna menyelesaikan hampir semua tugas normal (dan banyak yang aneh) hanya dengan beberapa stroke. Apa pun yang tidak ada di dalamnya dapat dituliskan.

Jelas kebutuhan masyarakat telah banyak berubah sejak program-program ini diperkenalkan, tetapi mereka masih memiliki beberapa kekuatan nyata. Saya telah mempelajari dasar-dasar keduanya, dan menggunakannya setiap minggu. Meski begitu, saya pikir kekuatan mereka sering dilebih-lebihkan. Mereka telah mencapai status legendaris sehingga orang tidak mengakui kelemahan mereka dan cenderung berpikir mereka melakukan sesuatu yang salah jika Emacs/Vi tidak membuat mereka lebih produktif daripada Eclipse atau Visual Studio.

Sekarang to the point.

Java adalah bahasa populer dengan dukungan luar biasa di Eclipse, dan kemungkinan besar Anda sedang mengembangkan kode pada sistem operasi modern yang memungkinkan Anda dengan cepat menyelesaikan tugas-tugas umum dan membuat skrip orang lain tanpa melakukannya melalui IDE Anda. Saya pikir tidak masuk akal bagi Anda untuk beralih.

39
PeterAllenWebb

Saya telah menggunakan emacs selama 5+ tahun. Saya tidak bisa lagi memberi tahu Anda kombinasi tombol yang saya gunakan, jari-jari saya hanya mengingatnya dan harus melihat keyboard hanya untuk melihat apa yang diketik tangan saya.

Beberapa tahun yang lalu saya mulai menggunakan Eclipse, dan tidak ada kemungkinan saya akan kembali ke emacs dengan bebas. Maafkan ingatan otot, meskipun Anda kehilangan C-x r SPC 1 Lama, Eclipse membuat saya jauh lebih produktif dan itulah yang terpenting.

Tidak, saya tidak berpikir Anda harus beralih, tetapi Anda harus mendedikasikan beberapa jam untuk mempelajari dasar-dasar vim sehingga Anda tidak perlu mencarinya lagi.

16
Martin Wickman

Mengapa saya harus beralih ke vim atau emacs?

Kemungkinan besar, Anda tidak boleh beralih . Vim adalah editor teks yang luar biasa, sangat kuat, tetapi bukan pengganti IDE, dan tidak boleh ! Eclipse sangat pandai subset dari hal-hal khusus-IDE, dan vim sangat baik pada subset dari hal-hal khusus pengeditan teks. Masing-masing memiliki fokusnya sendiri, berbeda.

Saya tahu ada plugin yang memperluas fungsionalitas vim sehingga dapat melakukan banyak hal yang sama dengan IDE yang sama IDE bisa. Tapi itu masih bukan kekuatan utama vim, dan IDE hampir selalu dapat melakukannya dengan lebih baik. Karena itulah yang menjadi fokus mereka.

Apa yang saya lakukan dalam pekerjaan sehari-hari adalah menggunakan keduanya Visual Studio dan vim untuk mengedit C #. Ini bekerja sangat baik untuk saya, dan saya tidak akan pernah memotong salah satu dari mereka untuk bergantung secara eksklusif pada yang lain.

Sejauh emacs berjalan, saya bukan ahli, tapi saya tidak berpikir itu dapat bersaing dengan Eclipse's IDE fitur ketika datang ke Java (perbaiki) saya jika saya salah) .Jika Anda mengembangkan di LISP, maka itu tentu saja dapat dianggap sebagai IDE yang sangat baik, tapi saya tidak berpikir itu memiliki dukungan yang sama untuk Java.

Jadi jika Anda ingin editor teks yang lebih kuat untuk digunakan bersama Eclipse, maka saya pasti akan merekomendasikan Anda belajar vim atau emacs. Tetapi sebagai suplemen, bukan sebagai pengganti . Ini benar-benar dapat memberikan hasil dalam jangka panjang, meskipun tidak satu pun dari mereka memiliki kurva belajar yang sangat mudah :)

Berikut adalah Nice gondrong baca tentang kekuatan vim. Dan inilah daftar beberapa trik bagus yang dapat Anda lakukan.

7
Nick Knowlson

Pada dasarnya, baca ini (PDF) untuk melihat mengapa Emacs sangat kuat. Setelah Anda mengetahui LISP, hampir mudah untuk menulis ekstensi untuknya (saya memiliki beberapa alur kerja kontrol sumber dan penyebaran yang ditulis melalui add-on yang saya tulis untuk diri saya sendiri yang disebut employer-mode). Sejauh apa yang Anda sebutkan di atas;

  • Sorotan kesalahan tanpa perlu mengkompilasi ulang proyek. Tidak masuk akal untuk semua bahasa. Anda dapat dengan mudah mengintegrasikan REPLs dari banyak bahasa ke dalamnya. Saat ini, saya punya Ruby, python, haskell, common LISP, scheme dan erlang semua terhubung ke emacs. Kebetulan, add-on JavaScript js2-mode memiliki "kompilasi" tambahan penuh sehingga menyoroti hal-hal seperti kesalahan sintaks untuk Anda, jadi tentu saja mungkin, tetapi bukan norma
  • Bantuan kode. ada tambahan untuk itu yang disebut autocomplete.el, Saya percaya, periksa wiki Emacs
  • Refactoring. Saya menganggap Anda maksud "refactoring otomatis", yang tidak masuk akal dalam semua bahasa. Mungkin ada untuk beberapa orang, tapi saya tidak tahu.
  • Pembukaan panggilan hiearchy/Pembukaan deklarasi.
  • Sepenuhnya terintegrasi dengan kontrol sumber. Memiliki git-mode dibangun pada Emacs 22.3, tidak yakin tentang kontrol sumber lain
  • Debugger disertakan. Basis bahasa-per-bahasa di sini. Secara umum, jika memiliki REPL integrasi, ia memiliki debugger Emacs juga, tetapi itu tidak universal
  • ketersediaan plugin pihak ke-3 - mis. findbugs/checkstyle. tidak tahu tentang yang spesifik itu, tetapi ada banyak tambahan untuk itu, dari mengapa-bukan-ini-di-pangkalan-paket-berguna, hingga yang sangat remeh

Yang mengatakan, jika Anda tidak suka LISP, dan Anda tidak bermaksud mempelajarinya, saya tidak bisa merekomendasikan Emacs. Kemenangan yang Anda dapatkan darinya adalah belajar tentang kerajinan alat dan menerapkan prinsip-prinsip itu untuk meningkatkan produktivitas Anda sendiri, tidak mendapatkan banyak mod yang tersedia dan merangkai mereka bersama-sama.

6
Inaimathi

Saya melihat dua opsi di sini:

  • Gunakan Nano sebagai gantinya - Ini persis seperti Notepad di Windows untuk Linux. Tidak memerlukan kombinasi hotkey, Anda cukup mengetik nano somefile.conf dan Anda memiliki editor yang bagus. Anda bahkan dapat menambahkan highlight sintaksis
  • Simpan program secara lokal dan sinkronkan melalui SCP ke server - Saya melakukan ini ketika saya perlu bekerja di situs web kecil tetapi tidak memiliki sumber daya yang cukup untuk menjalankan Apache secara lokal. Saya cukup memunculkan WinSCP, membuka direktori yang saya inginkan, dan menggunakan "Tetap perbarui file jarak jauh". Perubahan biasanya tercermin dalam hitungan detik
  • Gunakan plugin di editor/IDE Anda untuk bekerja "langsung" dengan file jarak jauh - Sebelum saya peduli dengan kontrol revisi, saya cukup menjalankan Notepad ++ (editor pilihan saya) dan menggunakan NppFTP untuk bekerja pada file. NppFTP lebih cepat daripada opsi WinSCP karena Npp segera memberitahukannya saat file disimpan, yang langsung diunggah. Namun seperti yang saya katakan Anda kehilangan kontrol revisi. Saya yakin ada plugin untuk Eclipse yang dapat Anda gunakan

Semoga ini membantu

3
TheLQ

Secara pribadi, saya suka Vim karena sangat bagus dalam mengedit teks, yaitu sangat ergonomis (keybindings tidak terlalu membebani tangan saya dan saya tidak perlu menggunakan mouse terlalu banyak) dan efisien untuk digunakan setelah Anda terbiasa itu (yang tentu saja akan membutuhkan waktu dan kesabaran, karena itu bukan editor yang paling intuitif untuk pemula).

Namun saya lebih suka Eclipse untuk skala besar Java pengembangan karena banyak fitur yang tersedia. Tentu saja, ada beberapa plugin yang dapat membuat Eclipse sedikit lebih bisa ditoleransi.

2
user7908

Saat ini saya mencoba untuk beralih dari NetBeans ke vim. Belajar vim membutuhkan waktu dan latihan, tetapi saya melihat kelebihannya, sebut saja mereka, "editor GUI" untuk kasus-kasus tertentu.

Tapi, tidak seperti Anda, saya kebanyakan mengkodekan Ruby, dan saya tidak memerlukan semua sihir hitam kode-penghasil-kode-otomatis, refactor-my-code yang ditawarkan NetBeans dan Eclipse. Jika saya mengkode Java atau C # saya pasti tidak akan mencoba untuk beralih sama sekali.

1

Sebagai pengguna lama emacs, saya menemukan emacs cukup nyaman sebagai lingkungan pengeditan dan pengembangan (dan sampai batas tertentu, itu juga terintegrasi dengan proses pembangunan, kontrol versi, pencarian konteks cepat dan sejenisnya, jadi saya kira itu memenuhi syarat itu sebagai "IDE").

Saya juga sangat nyaman menggunakan editor vi dan vi (seperti saya mulai menggunakan ed, karena saya pikir emacs terlalu kompleks; dalam retrospeksi yang terbelakang, tetapi itu memberi saya fondasi yang kuat untuk pembelajaran vi di masa depan). Saya menggunakan vi terutama untuk "suntingan cepat kecil", terutama pada mesin jarak jauh di mana emacs tidak diinstal.

Untuk Anda "Saya kadang-kadang perlu ssh ke server dan main-main dengan file konfigurasi; untuk ini saya menggunakan vi" skenario, saya akan merekomendasikan satu set kecil perintah dan beberapa pemikiran umum sekitar vi:

  • Vi bukan modal, ia memiliki perintah "a" (append), "A" (append di akhir baris), "i" (insert) dan "I" (masukkan di awal baris), mengambil teks untuk disisipkan sebagai argumen dan menandakan "end-of-command" dengan Esc
  • h, j, k dan l adalah kunci gerakan. Ini MUNGKIN bekerja menggunakan tombol panah, tetapi karena urutan VT-style "I am an arrow key" dimulai dengan Esc, ini akan mematahkan perintah penyisipan teks yang tidak Anda pikirkan
  • : linenum menggerakkan Anda ke baris linenum , baris 1 adalah top- kebanyakan baris dan baris $ adalah yang terbawah
  • . adalah perintah "repeat last command" (lihat poin pertama)

Seharusnya tidak lebih dari satu atau dua jam bermain-main dengan vi untuk berada di "Saya dapat dengan percaya diri mengedit file teks, tetapi saya mungkin tidak efisien dengan itu" dan itu sebagus Anda mungkin harus . Kegagalan itu, editor mana pun yang tidak faf tentang konversi otomatis antara tab dan spasi harus "cukup baik" untuk tujuan Anda. Jika Eclipse diinstal pada semua server jarak jauh Anda, saya tidak melihat menggunakannya sebagai masalah besar, sungguh.

1
Vatine

Jika Anda senang dengan Eclipse, maka jangan beralih.

Jika Anda dapat menggunakan Eclipse di mana pun Anda butuhkan, jangan beralih.

Jika proyek/perusahaan Anda secara eksklusif menggunakan Eclipse, jangan beralih.

Jika Anda jarang membutuhkan sesuatu yang lain, cetak lembar contekan untuk salah satu editor dan tarik keluar dari laci saat Anda membutuhkannya, lalu kembali menggunakan Eclipse.

Lihat pertanyaan (sama) di SO: https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-Eclipse

Sejauh menjawab, "Apakah orang yang menggunakannya benar-benar bekerja pada proyek berorientasi objek yang kompleks di organisasi besar?" - Pegang topimu sonny, tapi jawabannya adalah "ya". Saya telah mengerjakan proyek dengan puluhan juta baris kode yang digunakan di jalur kritis merancang CPU yang menjalankan komputer yang Anda gunakan untuk mengajukan pertanyaan ini. Dan orang-orang mencoba Eclipse tetapi ternyata itu terlalu lambat dan kikuk (walaupun, diakui, kami tidak menggunakan Java).

1
Trey Jackson

Saya sangat seorang pria Emacs. Saya menggunakannya untuk semua pemrograman saya, dan secara aktif mendorong rekan kerja saya untuk menggunakannya juga (dan mereka secara aktif mengabaikan saya). Saya merasa jauh lebih produktif daripada IDE, dan saya tidak akan pernah berubah.

Kecuali saya menulis Java atau C # (dan saya membayangkan ada bahasa lain dalam kategori ini). Mereka memiliki perpustakaan besar barang dengan nama panjang, sehingga hasilnya - I dapatkan dari menggunakan Emacs benar-benar hilang dalam mencoba mengingat semuanya.

Saya tentu saja mendorong Anda untuk coba vim dan/atau Emacs. Tetapi Anda mungkin akan kembali ke Eclipse untuk Java.

1
MattBelanger

Baik emacs dan vim adalah editor yang sangat dapat dikonfigurasi dan kuat, dan keduanya memberikan kemenangan produktivitas besar setelah konsep dasar dipahami.

Vi menang dengan apa yang pada dasarnya adalah operasi berbasis set. Sebagai contoh, mengubah semua instance dari "foo" menjadi "bar" dalam definisi kelas adalah one-liner.

Emacs sama kuatnya, tetapi Anda harus belajar Emacs LISP untuk menggunakannya secara maksimal.

Dalam kedua kasus, itu hanya layak beralih jika Anda berencana untuk menggunakan emacs atau vi untuk semuanya.

1
Larry Coleman

Alat terbaik (dalam jangka pendek) adalah alat yang sangat Anda kuasai.

Orang-orang menggunakan teknologi berusia 30 tahun ke atas karena mereka sangat mahir menggunakannya. Mereka membangun alur kerja dan kebiasaan mereka di sekitar alat ini. Jika Anda lebih terbiasa dengan modern IDE seperti Eclipse, tidak ada banyak alasan untuk beralih. Mempelajari cara menggunakan Eclipse secara lebih efisien adalah investasi waktu Anda yang lebih baik (mis. Gunakan - Mylyn ).

1
dbkk

Secara pribadi kedua program membuat saya bingung. Masalah dengan Eclipse adalah lambatnya ingus ketika Anda mengerjakan proyek besar dan saat itulah ia tidak melakukan 'Pengindeksan DGLP' atau apa pun. ingin menyegarkan repositori Anda? punya waktu 15 menit? Oh dan bagaimana dengan trik bagus di mana Anda Ctrl-C beberapa teks kemudian Ctrl-P di suatu tempat tetapi bukannya pergi di mana Anda ingin itu membuka file yang sama sekali berbeda dan melewati sesuatu yang lain dan Anda bertanya-tanya apa ada di tempat pertama. Oh dan apakah saya menyebutkan bekerja dengan Eclipse pada proyek besar lebih dari vpn? praktis tidak mungkin.

Adapun vim, itu bagus dan cepat dengan asumsi Anda tahu banyak kombinasi tombol yang benar-benar tidak masuk akal untuk membuatnya melakukan sesuatu dan keberuntungan jika Anda menemukan diri Anda dalam beberapa mode yang tidak diketahui secara tidak sengaja. Juga dengan vim Anda cukup banyak harus mengetahui seluruh struktur direktori proyek Anda di kepala Anda untuk membuka file yang benar. Keuntungan utama Vim adalah bahwa secara teori Anda dapat membuat kode lebih cepat karena semua kunci, tetapi pada kenyataannya saya tidak peduli berapa banyak teks yang saya tulis, itu bukan volume teks yang penting dengan kualitas kode dan seringkali kualitas kode memerlukan menatap puluhan file selama berjam-jam sampai Anda mengetahui hal yang tepat untuk mengetik (yang biasanya sangat singkat).

Apa yang saya inginkan adalah seseorang akan menulis program baris perintah, seperti vim, yang sebenarnya memiliki struktur direktori seperti Eclipse di samping atau sesuatu yang dapat Anda buka/tutup dan buka file. Adakah yang tahu hal seperti ini?

0
Dallas Caley

Saya tidak punya masalah dengan berbagai editor UNIX yang tersedia, tetapi saya hanya menggunakannya di bawah protes. Bukan, seperti yang saya katakan, karena saya memiliki masalah dengan mereka tetapi karena jika saya harus menggunakannya itu berarti proses penyebaran kami dalam beberapa hal kurang.

Ini mungkin layak mendapatkan konteks yang lebih sedikit: Saya bekerja pada solusi e-commerce skala besar, semua yang mengatur jalannya sistem kami dihasilkan oleh proses build/deploy satu-klik. Kami memiliki berbagai lingkungan pengujian sehingga pada waktu tertentu saya dapat melakukan perubahan melalui Eclipse, memeriksanya ke cvs dan memicu build/deploy untuk membuktikan bahwa perbaikan saya telah berhasil. Jadi- jika saya meretas di 'vi' maka itu karena kita tidak bisa menunggu untuk perputaran penyebaran 1 jam atau karena penyebaran tidak mencakup file yang saya edit dan perlu diperluas untuk melakukan jadi (kalau tidak saya akan peretasan di vi saat file yang bersangkutan perlu diubah).

0
DanW