Kiat untuk menggunakan Vim sebagai Java IDE? [Tutup]

195

Saya kecanduan Vim, sekarang cara de facto saya mengedit file teks.

Menjadi yang terutama editor teks dan bukan IDE, adakah yang punya trik agar saya membuatnya lebih mudah ketika mengembangkan aplikasi Java?

Beberapa pertanyaan yang saya miliki:

  • Bagaimana cara menjalankan tugas pakar tanpa meninggalkan vi?
  • Bisakah saya mendapatkan penyelesaian kode?
  • Bagaimana penyorotan sintaksisnya?

Ada hal lain (selain "Jangan lakukan itu!") Yang harus saya ketahui?

Allain Lalonde
sumber
1
Saya menggunakan netbeans secara luas di kantor, tetapi untuk server pribadi saya di rumah ... menggunakan NetBeans tidak berfungsi dengan baik karena saya harus melakukan pengembangan di komputer lain dan kemudian menggunakan. Perjalanan pulang-pergi terlalu panjang.
Allain Lalonde
1
@AdamC Inbound dari Google di sini ... Sebagai geek baris perintah yang diakui sendiri datang dari python, saya pikir penghalang untuk masuk dalam mendapatkan pengaturan dengan lingkungan pengembangan java sangat dinaikkan dengan membutuhkan program-program seperti itu. Saya sudah harus menginstal JVM ... mengapa kita harus melakukan instalasi LEBIH BANYAK hanya untuk mendapatkan dunia hello pergi? Hanya saja disposisi umum orang-orang yang berasal dari bahasa scripting akan miliki ketika pertama kali belajar java.
DeaconDesperado
2
Ketika saya mengedit di VIM. Untuk kembali ke konsol Anda cukup melakukan ctrl + z yang akan menempatkan vim di latar belakang dan membawa Anda kembali ke konsol. Kemudian Anda dapat menggunakan perintah fg untuk membawa vim kembali ke latar depan Anda
Matthew Kirkley
Anda tidak perlu ctrl =
fuzzyTew
3
Anda tidak perlu ctrl + z / fg .. cukup ketik:! Perintah dan 'perintah' akan dijalankan. Jika Anda ingin shell cepat, ketik:! Bash. maka jika Anda keluar Anda kembali ke vim bukannya meninggalkan pekerjaan latar belakang yang menggantung. Anda bisa mendapatkan shell di jendela vim dengan plugins.
fuzzyTew

Jawaban:

75

Beberapa tips:

  • Pastikan Anda menggunakan vim (vi ditingkatkan). Linux dan beberapa versi UNIX symlink vi to vim.
  • Anda bisa mendapatkan penyelesaian kode dengan eclim
  • Atau Anda bisa mendapatkan fungsionalitas vi dalam Eclipse with viPlugin
  • Penyorotan sintaks sangat bagus dengan vim
  • Vim memiliki dukungan yang baik untuk menulis macro kecil seperti menjalankan build ant / maven

Selamat bersenang-senang :-)

toolkit
sumber
7
perintah untuk mendapatkan bantuan tentang penyorotan sintaksis java. : help java.vim
Michael Ekoka
2
Cara lain untuk mendapatkan fungsionalitas Vim dalam Eclipse adalah Vrapper . Ini memiliki sebagian besar binding kunci Vim dan tidak seperti viPlugin gratis.
n1te
1
Bagaimana dengan debugger yang mendukung step over, step through, dll?
Donato
1
Linux ... symlink vi to vim Counterexample: Arch Linux
johnchen902
30

Saya sudah menjadi pengguna Vim selama bertahun-tahun. Saya mulai menemukan diri saya memulai Eclipse sesekali (menggunakan plugin vi, yang, saya harus katakan, memiliki berbagai masalah). Alasan utamanya adalah pembangunan Java membutuhkan waktu cukup lama ... dan mereka semakin lama semakin lambat dengan penambahan kerangka kerja yang sangat terstruktur seperti maven. Jadi memvalidasi perubahan Anda cenderung memakan waktu cukup lama, yang bagi saya tampaknya sering menyebabkan menumpuk banyak masalah kompilasi yang harus saya selesaikan nanti, dan menyaring melalui pesan komit memerlukan waktu.

Ketika saya terlalu besar dari antrian masalah kompilasi, saya menjalankan Eclipse. Ini memungkinkan saya membuat kue perubahan. Ini lambat, brutal untuk digunakan, dan tidak sebagus editor seperti Vim (saya telah menggunakan Vim selama hampir satu dekade, jadi itu sifat kedua bagi saya). Saya menemukan untuk mengedit presisi — perlu memperbaiki bug tertentu, perlu memperbaiki beberapa logika tertentu, atau sesuatu yang lain ... Saya tidak bisa seefisien mengedit di Eclipse seperti yang saya bisa di Vim.

Juga tip:

:set path=**
:chdir your/project/root

Ini membuat ^wf nama kelas sebuah fitur yang sangat bagus untuk menavigasi proyek besar.

Jadi bagaimanapun, kurusnya, ketika saya perlu menambahkan banyak kode baru, Vim tampaknya memperlambat saya hanya karena waktu yang dihabiskan untuk memburu masalah kompilasi dan hal-hal serupa. Ketika saya perlu menemukan dan mengedit sumber-sumber spesifik, Eclipse terasa seperti palu. Saya masih menunggu IDE ajaib untuk Vim. Ada tiga upaya besar yang saya tahu. Ada plugin tipe IDE viml murni yang menambahkan banyak fitur tetapi tampaknya tidak mungkin untuk digunakan. Ada eclim, yang saya punya banyak masalah. Dan ada plugin untuk Eclipse yang sebenarnya menyematkan Vim. Yang terakhir tampaknya yang paling menjanjikan untuk pekerjaan Java EE yang serius, tetapi tampaknya tidak bekerja dengan baik atau benar-benar mengintegrasikan semua fitur Eclipse dengan Vim yang tertanam.

Hal-hal seperti menambahkan impor yang hilang dengan penekanan tombol, kode hilight dengan masalah pengetikan, dll, tampaknya sangat berharga dari IDE Anda ketika bekerja pada proyek Java besar.

Tijms Arjan
sumber
5
memilih untuk "^ wf" Saya tidak tahu bahwa ada hal seperti itu dalam vim :)
Krzysztof Krasoń
4
Bisakah Anda menjelaskan lebih lanjut tentang ^ wf? apa fungsinya?
user2427
1
Ini membuka file java / kelas (ekstensi nama file .javatidak diperlukan) di bawah kursor di jendela split baru jika ia dapat menemukan file. Itu sebabnya :set path=**sangat membantu.
exic
Jadi apakah ** secara harfiah dua tanda bintang?
taco
1
@lijat :help ^wf- sama seperti bantuan vim lainnya
JESii
22
  • Bagaimana cara menjalankan tugas pakar tanpa meninggalkan vi?

    Maven tidak berbeda dengan perintah shell lainnya:

    :!mvn

    Anda dapat :set makeprg=mvnjika Anda sudah memiliki pemetaan kunci favorit untuk :make.

  • Bisakah saya mendapatkan penyelesaian kode?

    Ya, eclim hebat, jembatan antara efisiensi penyuntingan vim dan kepedulian spesifik bahasa Jawa Eclipse.

    <C-n>dan <C-p>tidak begitu besar, tetapi sangat membantu.

  • Bagaimana penyorotan sintaksisnya?

    Lebih dari cukup baik untuk highligher berbasis regex.

Anda mungkin ingin mempertimbangkan alat untuk tujuan vim + java lain, seperti kode template ( snippetEmu potongan -Default mengisap, tapi customizability bersinar), mencari penggunaan dan akan deklarasi (eclim, grep, ctags), menghasilkan getter dan setter ( java_getset , atau eclim), impor otomatis (eclim). Anda mungkin juga memerlukan shell java untuk eksperimen cepat ( BeanShell , alias bsh).

ngn
sumber
1
terima kasih atas tip BeanShell, saya tidak tahu tentang alat itu
GoingTharn
8

Saya tahu ini beberapa tahun kemudian, tetapi di sini ada beberapa plugin yang menarik. Saya belum mencoba salah satu dari ini YMMV.

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

EDIT: Oh, BTW, saya sudah mencoba eclim off dan on, tapi alasan saya suka vim adalah ringannya. Melaksanakan gerhana bahkan pada mode tanpa kepala adalah terlalu banyak mengangkat mental bagiku.

EDIT2: Saya telah menggunakan playframework belakangan ini dan ini mungkin akan bekerja dengan maven builds juga:

  • Untuk mengkompilasi, Anda dapat mengonfigurasi VIM's make untuk menjalankan pakar atau dalam kasus saya, menjalankan skrip build, tee itu ke file.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#

"play_compile" hanyalah skrip kompilasi. Ini menggunakan SBT sehingga Maven harus bekerja dengan baik di sini. Bahkan javac langsung akan bekerja. Dengan cara ini, Anda dapat menggunakan buffer perbaikan cepat VIM (: cnext,: clist: cprev, dll).

  • Untuk melompat-lompat di kelas, saya menggunakan ctrl-p . Cantiknya. Gunakan. Lebih cepat daripada gerhana dalam melompati file.

  • Untuk melompati metode, saya menggunakan tagearch dengan c-tag bersemangat. Langsung ke deklarasi metode dengan menggunakan ctrl-]. Kembali menggunakan Ctrl-o. Tidak berfungsi sebagus gerhana, tetapi cukup baik.

  • Saya menggunakan supertab untuk melengkapi kode. Javacomplete sangat lambat, jadi saya tetap menggunakan omni-complete. Sekali lagi, tidak seakurat gerhana, tetapi cepat dan berfungsi cukup baik untuk saya.

kritik
sumber
5

Gunakan vim. ^ - ^ (gVim, tepatnya)

Anda akan memiliki semuanya (dengan beberapa plugin).

Btw, snippetsEmu adalah alat yang bagus untuk pengkodean dengan snippet yang berguna (seperti di TextMate). Anda dapat menggunakan (atau memodifikasi) paket pra-dibuat atau membuat sendiri.

Berzemus
sumber