Cara Install Plugin di Neovim ~ di artikel sebelumnya, saya sudah share bagaimana caranya install plugin di Vim dengan VimPlug.
Sebenarnya, menginstall plugin di Vim ataupun di Neovim tidak jauh berbeda, hanya ada sedikit perbedaan. Tapi, ngga apa-apa saya tulisa saja disini, hehe.
Install Neovim
Jika sobat belum memiliki Neovim, bisa install terlebih dahulu dengan cara berikut:
- Debian
sudo apt-get install neovim
- Fedora
sudo dnf install -y neovim python3-neovim
- Flatpak
flatpak install flathub io.neovim.nvim flatpak run io.neovim.nvim
Setelah itu, coba cek apakah sudah berhasil di install, dengan cara ketikkan nvim di terminal.
$ nvim
Cara Install VimPlug di Neovim
Selanjutnya, kita install VimPlug yang merupakan vim plugin manager. Dengan VimPlug, nanti kita bisa menginstall berbagai plugin dengan mudah.
Jalankan perintah berikut di terminal:
- Unix / Linux
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
- Flatpak
curl -fLo ~/.var/app/io.neovim.nvim/data/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- Powershell (Windows)
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |` ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
Sekarang kita coba install beberapa plugin menggunakan VimPlug.
Cara Install Plugin di Neovim dengan VimPlug
Setelah VimPlug sudah berhasil di install, sekarang kita buat file init.vim
di directory ~/.config/nvim/init.vim
, file ini sebagai tempat konfigurasi. Jika belum ada, silahkan dibuat manual.
$ cd ~/.config -- buat folder nvim -- $ mkdir nvim -- buat file init.vim -- $ touch init.vim
Jika di Vim kita menyimpan file konfigurasi di .vimrc
dan diletakkan di directory home, sedangkan di Neovim kita meletakkan file konfigurasinya di tempat yang berbeda dengan nama file init.vim
.
Meskipun berbeda tempat dan nama, namun script yang digunakan sama saja. Hanya berbeda tempat dan nama saja.
Buka file init.vim
dengan Neovim.
$ nvim init.vim
Kemudian paste kode berikut.
call plug#begin(stdpath('data') . '/plugged') "// plugin disini call plug#end()
Sekarang kita coba install plugin untuk tema Neovim dengan onedark.vim. Daftar plugin untuk Vim ataupun Neovim dapat sobat cari di vimawesome, ada banyak plugin yang bisa kita pakai secara gratis disana.
call plug#begin(stdpath('data') . '/plugged') " Themes Plug 'joshdick/onedark.vim' call plug#end()
Setelah itu, simpan dan exit terlebih dahulu, dengan perintah :wq
.
Kemudian buka lagi, dan ketikkan perintah :PlugInstall
untuk menginstall plugin tema onedark.vim.
Agar tema yang di install bisa aktif, kita harus mengkonfigurasinya terlebih dahulu.
call plug#begin(stdpath('data') . '/plugged') " Themes Plug 'joshdick/onedark.vim' call plug#end() " Konfigurasi Tema set colorscheme onedark
Kemudian simpan dan tutup terlebih dahulu dengan perintah :wq
, kemudian buka lagi Neovim sobat dan lihat perubahannya.
Konfigurasi Neovim yang Saya Gunakan
Konfigurasi Neovim yang saya gunakan ini saya dapatkan dari berbagai tutorial, sehingga banyak yang saya tidak paham maksudnya hehe.
Namun sobat boleh mencoba menggunakannya, kalau ada error, bisa langsung cari penyelesaiannya di Google atau StackOverflow, jangan ke saya karena saya sendiri ngga paham.
" Install Plugin call plug#begin(stdpath('data'). 'plugged') " Vim Airline Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " Powerline Plug 'powerline/powerline' " Tmux Line Plug 'edkolev/tmuxline.vim' " Themes Plugin Plug 'joshdick/onedark.vim' Plug 'dracula/vim' " Icon For NerdTree Plug 'ryanoasis/vim-devicons' "Plug 'SirVer/ultisnips' "Plug 'honza/vim-snippets' " NerdTree Plug 'scrooloose/nerdtree' Plug 'preservim/nerdcommenter' Plug 'mhinz/vim-startify' " Auto Complete Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} " HTML 5 Plug 'othree/html5.vim' Plug 'pangloss/vim-javascript' Plug 'evanleck/vim-svelte', {'branch': 'main'} Plug 'mattn/emmet-vim' Plug 'alvan/vim-closetag' " C/C++ Plug 'vim-scripts/c.vim' " FZF File Finder Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' call plug#end() " General Setting :set encoding=UTF-8 :set number :set relativenumber :set nowrap " Setting Tab :set tabstop=3 :set shiftwidth=3 :set softtabstop=3 :set expandtab " Jump Next and Previous Tab nnoremap <C-Left> :tabprevious<CR> nnoremap <C-Right> :tabnext<CR> " Setting Cursorline :set cursorline hi Cursorline term=bold cterm=bold guibg=Grey40 " Setting Themes syntax on colorscheme onedark hi Normal guibg=NONE ctermbg=NONE " Vim airline / airline themes let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = ' ' let g:airline#extensions#tabline#left_alt_sep = '>>' let g:airline#extensions#tabline#formatter = 'unique_tail' let g:airline_section_z = '%l:%c' let g:airline_theme = 'supernova' " Powerline Setting let g:airline_left_sep = "\ue0b0" let g:airline_right_sep = "\ue0b2" let g:airline_left_alt_sep = "\ue0b0" let g:airline_right_alt_sep = "\ue0b2" " CoC settings set nobackup set nowritebackup set cmdheight=1 set updatetime=300 set shortmess+=c if has("nvim-0.5.0") || has("patch-8.1.1564") set signcolumn=number else set signcolumn=yes endif inoremap <silent><expr> <TAB> \ pumvisible() ? "\<C-n>" : \ CheckBackspace() ? "\<TAB>" : \ coc#refresh() inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" function! CheckBackspace() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction if has('nvim') inoremap <silent><expr> <c-space> coc#refresh() else inoremap <silent><expr> <c-@> coc#refresh() endif inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" nmap <silent> [g <Plug>(coc-diagnostic-prev) nmap <silent> ]g <Plug>(coc-diagnostic-next) nmap <silent> gd <Plug>(coc-definition) nmap <silent> gy <Plug>(coc-type-definition) nmap <silent> gi <Plug>(coc-implementation) nmap <silent> gr <Plug>(coc-references) nnoremap <silent> K :call ShowDocumentation()<CR> function! ShowDocumentation() if CocAction('hasProvider', 'hover') call CocActionAsync('doHover') else call feedkeys('K', 'in') endif endfunction autocmd CursorHold * silent call CocActionAsync('highlight') " C/C++ Configuration let g:C_UseTool_cmake ='yes' let g:C_UseTool_doxygen ='yes' " End Setting
Konfigurasinya agak lebih panjang ketimbang di Vim yang saya gunakan, karena saya menggunakan Neovim ini untuk belajar web programming.
Sekian tuturial cara install plugin di Neovim menggunakan VimPlug, semoga bermanfaat.