TL; DR:
Cara modern adalah dengan menggunakan COC untuk penyelesaian seperti intellisense dan satu atau lebih server bahasa (LS) untuk melompat-ke-definisi (dan cara jauh lebih). Untuk fungsionalitas yang lebih banyak (tetapi tidak diperlukan untuk lompat-ke-definisi), Anda dapat menginstal satu atau lebih debugger dan mendapatkan pengalaman IDE yang penuh sesak nafas. Mulai cepat:
- instal vim-plug untuk mengelola plug-in VIM Anda
- tambahkan COC dan (opsional) Vimspector di bagian atas
~/.vimrc
:
call plug#begin()
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'puremourning/vimspector'
call plug#end()
- panggilan
:source $MYVIMRC | PlugInstall
untuk mengunduh plug-in VIM
- restart
vim
dan panggil :CocInstall coc-marketplace
untuk mendapatkan akses mudah ke ekstensi COC
- panggilan
:CocList marketplace
dan cari server bahasa, mis:
- ketik
python
untuk menemukan coc-jedi
,
- ketik
php
untuk menemukan coc-phpls
, dll.
- (opsional) lihat
install_gadget.py --help
debuggers yang tersedia, misalnya:
./install_gadget.py --enable-python
,
./install_gadget.py --force-enable-php
, dll.
Jawaban lengkap:
Server bahasa (LS) adalah aplikasi mandiri yang terpisah (satu untuk setiap bahasa pemrograman) yang berjalan di latar belakang dan menganalisis seluruh proyek Anda secara real time dengan memperlihatkan kemampuan tambahan untuk editor Anda (editor apa pun, tidak hanya vim
). Anda mendapatkan hal-hal seperti:
- penyelesaian tag sadar namespace
- lompat ke definisi
- lompat ke kesalahan berikutnya / sebelumnya
- temukan semua referensi ke suatu objek
- temukan semua implementasi antarmuka
- ganti nama di seluruh proyek
- dokumentasi tentang melayang
- snippet, aksi kode, pemformatan, linting, dan lainnya ...
Komunikasi dengan server bahasa terjadi melalui Language Server Protocol (LSP). Baik nvim
dan vim8
(atau lebih tinggi) mendukung LSP melalui plug-in, yang paling populer adalah Conquer of Completion (COC).
Daftar server bahasa yang dikembangkan secara aktif dan kemampuannya tersedia di situs Lang Server . Tidak semua disediakan oleh ekstensi COC. Jika Anda ingin menggunakan salah satunya, Anda dapat menulis sendiri ekstensi COC atau menginstal LS secara manual dan menggunakan kombo plug-in VIM berikut sebagai alternatif untuk COC:
Komunikasi dengan debugger dilakukan melalui Debug Adapter Protocol (DAP). Plug-in DAP paling populer untuk VIM adalah Vimspector .
Language Server Protocol (LSP) dibuat oleh Microsoft untuk Visual Studio Code dan dirilis sebagai proyek open source dengan lisensi MIT yang permisif (distandarisasi melalui kolaborasi dengan Red Hat dan Codenvy). Kemudian Microsoft merilis Protokol Adaptor Debug (DAP) juga. Bahasa apa pun yang didukung oleh VSCode didukung dalam VIM.
Saya pribadi merekomendasikan menggunakan server bahasa COC + yang disediakan oleh ekstensi COC + ALE untuk tambahan linting (tetapi dengan dukungan LSP dinonaktifkan untuk menghindari konflik dengan COC) + Vimspector + debuggers yang disediakan oleh Vimspector (disebut "gadget") + berikut plug-in VIM:
call plug#begin()
Plug 'neoclide/coc.nvim'
Plug 'dense-analysis/ale'
Plug 'puremourning/vimspector'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/nerdcommenter'
Plug 'sheerun/vim-polyglot'
Plug 'yggdroot/indentline'
Plug 'tpope/vim-surround'
Plug 'kana/vim-textobj-user'
\| Plug 'glts/vim-textobj-comment'
Plug 'janko/vim-test'
Plug 'vim-scripts/vcscommand.vim'
Plug 'mhinz/vim-signify'
call plug#end()
Anda dapat google masing-masing untuk melihat apa yang mereka lakukan.