TL; DR:
Cách hiện đại là sử dụng COC để hoàn thành giống như intellisense và một hoặc nhiều máy chủ ngôn ngữ (LS) để chuyển sang định nghĩa (và cách nhiều hơn). Để có nhiều chức năng hơn (nhưng không cần thiết cho bước nhảy định nghĩa), bạn có thể cài đặt một hoặc nhiều trình gỡ lỗi và có được trải nghiệm IDE đầy đủ. Bắt đầu nhanh:
- cài đặt vim-plug để quản lý các trình cắm VIM của bạn
- thêm COC và (tùy chọn) Vimspector ở đầu
~/.vimrc
:
call plug#begin()
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'puremourning/vimspector'
call plug#end()
- gọi
:source $MYVIMRC | PlugInstall
để tải xuống các trình cắm VIM
- khởi động lại
vim
và gọi :CocInstall coc-marketplace
để có quyền truy cập dễ dàng vào tiện ích mở rộng COC
- gọi
:CocList marketplace
và tìm kiếm các máy chủ ngôn ngữ, ví dụ:
- gõ
python
để tìm coc-jedi
,
- gõ
php
để tìm coc-phpls
, vv
- (tùy chọn) xem
install_gadget.py --help
các trình gỡ lỗi có sẵn, ví dụ:
./install_gadget.py --enable-python
,
./install_gadget.py --force-enable-php
, Vân vân.
Câu trả lời đầy đủ:
Máy chủ ngôn ngữ (LS) là một ứng dụng độc lập riêng biệt (một cho mỗi ngôn ngữ lập trình) chạy trong nền và phân tích toàn bộ dự án của bạn trong thời gian thực để lộ các khả năng bổ sung cho trình soạn thảo của bạn (không phải trình soạn thảo, không chỉ vim
). Bạn nhận được những thứ như:
- hoàn thành thẻ nhận biết không gian tên
- nhảy đến định nghĩa
- nhảy đến lỗi tiếp theo / trước
- tìm tất cả các tham chiếu đến một đối tượng
- tìm tất cả các cài đặt giao diện
- đổi tên trên toàn bộ dự án
- tài liệu về di chuột
- đoạn trích, hành động mã, định dạng, linting và nhiều hơn nữa ...
Giao tiếp với các máy chủ ngôn ngữ diễn ra thông qua Giao thức máy chủ ngôn ngữ (LSP). Cả nvim
và vim8
(hoặc cao hơn) đều hỗ trợ LSP thông qua các trình cắm, phổ biến nhất là Chinh phục hoàn thành (COC).
Danh sách các máy chủ ngôn ngữ được phát triển tích cực và khả năng của chúng có sẵn trên trang web của Lang Server . Không phải tất cả những thứ đó được cung cấp bởi các phần mở rộng COC. Nếu bạn muốn sử dụng một trong số đó, bạn có thể tự viết tiện ích mở rộng COC hoặc cài đặt LS theo cách thủ công và sử dụng kết hợp các trình cắm VIM sau thay thế cho COC:
Giao tiếp với trình gỡ lỗi diễn ra thông qua Giao thức gỡ lỗi (DAP). Trình cắm DAP phổ biến nhất cho VIM là Vimspector .
Language Server Protocol (LSP) được Microsoft tạo ra cho Visual Studio Code và được phát hành dưới dạng một dự án nguồn mở với giấy phép MIT cho phép (được chuẩn hóa bởi sự hợp tác với Red Hat và Codenvy). Sau đó, Microsoft cũng phát hành Giao thức bộ điều hợp gỡ lỗi (DAP). Bất kỳ ngôn ngữ nào được hỗ trợ bởi VSCode đều được hỗ trợ trong VIM.
Cá nhân tôi khuyên bạn nên sử dụng các máy chủ ngôn ngữ COC + được cung cấp bởi tiện ích mở rộng COC + ALE để thêm linting (nhưng với hỗ trợ LSP bị vô hiệu hóa để tránh xung đột với COC) + Vimspector + trình gỡ lỗi do Vimspector cung cấp (được gọi là "tiện ích") + sau các trình cắm 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()
Bạn có thể google từng cái để xem những gì họ làm.