2

[IDE hoá NeoVim] Phần 2.2 Những Plugins cần thiết

Đây là bài thứ 3 mình viết về series hướng dẫn sử dụng và cài đặt neovim như là một ide. Phần một mình hướng dẫn về cách sử dụng neovim cơ bản như là text editor, phần 2 mình hướng dẫn cài đặt plugins, phần 3 sẽ là những tips/trick khi sử dụng neovim.

neovim pluginneovim plugin

Những bài viết trước về neovim mình để link để các bạn có thể xem lại ở đây:

✧ ✧ ✧

deoplete.nvim

 deoplete là một completion framework cho neovim, đại khái là khi bạn type một đoạn text, thì deoplete sẽ giúp bạn gợi ý những function, variable, text, property ... liên quan, bạn chỉ cần chọn kết quả và trigger 

deoplete auto auto completedeoplete auto auto complete

Intergrate với ultisnips để hiển thị và trigger snippet của bạn trong  cửa sổ  suggestion

deoplete integrate with ultisnipsdeoplete integrate with ultisnips

deoplete không phải là sự lựa chọn duy nhất, các bạn có thể sử dụng YouCompleteMe, coc cũng có code-complete engine.

deoplete vs ycm (https://github.com/Shougo/deoplete.nvim/issues/606)deoplete vs ycm (https://github.com/Shougo/deoplete.nvim/issues/606)
✧ ✧ ✧

Trong phần này mình sẽ không hướng dẫn các bạn cài đặt plugin nữa, vì phần trước mình đã chỉ cách các bạn cài đặt rồi, nên trong bài viết này mình chỉ gợi ý những plugin cần có ở mức tối thiểu để setup neovim của bạn như IDE.

Snippets

Muốn đi nhanh thì phải đi một mình, còn muốn code nhanh thì phải xài snippets. Hầu như tất cả các IDE bây giờ đều có snippet, không cớ gì mà neovim lại không có cả. 

Điều may mắn là bạn là trong cộng đồng đã có những bộ snippets của hầu hết cái ngôn ngữ, chỉ cần cài đặt và tích hợp vào complete engine thôi. 

  • ultisnips là một tracker engine, cung cấp các functions, keys binding, integrate với các plugins khác như deoplete để hiển thị snippets của bạn lên suggestion để có thể trigger được.
  • vim-snippets là một bộ assets bao gồm các snippets có sẵn, bạn chỉ cần tải về xài thui.

Lưu ý là vim-snippets chỉ là một bộ các static assets được dựng sẵn, nếu các bạn không xài thì chẳng sao cả, khi vào trong file code có đuổi mở rộng mà Ultisnips có thể detect được, nó sẽ tự động mở file snippets của đuôi mở rông đó.

Giả sử mình đang code trên file .tsx, mình muốn thêm 1 snippets của file .tsx thì khi vào file đó, mình vào neovim ở chế độ command và gõ :UltiSnippsEdit sẽ hiện ra file snippets dành cho đuôi mở rộng .tsx để mình thêm snippet vào.

add new snippetsadd new snippets

cấu trúc của 1 snippets như sau:

Implement:

$1 là biến, tưởng tượng nó như là multi cursor, khi bạn type thì tất cả những vị trí $1 sẽ được hưởng cùng giá trị.

trigger snippetstrigger snippets

Các bạn có thể tham khảo thêm ở đây.

nerdcommenter

nerdcommenter cung cấp các functions comment/uncomment code của bạn, adapt với từng loại ngôn ngữ.

Comment:

nerdcommenter comment selected filenerdcommenter comment selected file

UnComment:

nerdcommenter uncomment nerdcommenter uncomment 

Syntax checking

ale (Asynchronous Lint Engine) là một plugin để check syntax và lỗi cú pháp. ALE có thể tích hợp với các tools khác như prettier, eslint... để format và fix code của bạn.

ale còn đóng vai trò như một language client support một số tính năng của  Language Server Protocol như:

  • Go To Definition (:ALEGoToDefinition)
  • Completion (Built in completion support, or with Deoplete)
  • Finding references (:ALEFindReferences)
  • Hover information (:ALEHover)
  • Symbol search (:ALESymbolSearch)

Check và đánh dấu tại dòng bị lỗi:

Go to definition:

ale GoToDefinitionale GoToDefinition

Prettier:

ale prettierale prettier

Vim-multiple-cursors

vim-multiple-cursors là một plugin cung cấp functions, keys binding cho phép bạn chọn nhiều cursor trên một buffer.

multiple cursor https://github.com/terryma/vim-multiple-cursorsmultiple cursor https://github.com/terryma/vim-multiple-cursors

Select multiple match với regex:

multiple cursor match regexmultiple cursor match regex
✧ ✧ ✧

Kết bài

Mình xin kết thúc phần 2 ở đây. Tất cả các plugin mình giới thiệu trong 2 phần là những plugins mình nghĩ khi code bất kì ngôn ngữ nào các bạn cũng đều cần dùng đến. Bạn có thể tham khảo thêm tại vim-awesome để tìm hiểu thêm nhiều plugin khác.

Đăng kí vào Codefun và follow mình để nhận thông báo cho những tài viết kế tiếp nhé. Phần tới mình sẽ viết về những tips/tricks sử dụng neovim.

Hẹn gặp các bạn ở bài viết kế tiếp <3 !

Noted: 8/12/2019

updated vim-boostrap(http://vim-bootstrap.com/)

#ide#neovim#vim
2
0
...