diff --git a/Neovim.md b/Neovim.md new file mode 100644 index 0000000..fa4dba4 --- /dev/null +++ b/Neovim.md @@ -0,0 +1,69 @@ +## [[Getting started]] + +## Install [LanguageClient-neovim](https://github.com/autozimu/LanguageClient-neovim) +Need [vim-plug](https://github.com/junegunn/vim-plug#unix-1) + +### /home/YOUR_USERNAME/.config/nvim/init.vim +```vim +" LanguageClient-neovim +call plug#begin('~/.local/share/nvim/plugged') +Plug 'autozimu/LanguageClient-neovim', { + \ 'branch': 'next', + \ 'do': 'bash install.sh', + \ } + +" Multi-entry selection UI. FZF +Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } +Plug 'junegunn/fzf.vim' + +call plug#end() +``` + +### bash +```bash +nvim +PlugInstall +UpdateRemotePlugins +qa +``` + +### /home/YOUR_USERNAME/.config/nvim/settings.json +```json +{ + "initializationOptions": { + "cacheDirectory": "/tmp/ccls" + } +} +``` + +### /home/YOUR_USERNAME/.config/nvim/init.vim +```vim +let g:LanguageClient_serverCommands = { + \ 'cpp': ['ccls', '--log-file=/tmp/cq.log'], + \ 'c': ['ccls', '--log-file=/tmp/cq.log'], + \ } + +let g:LanguageClient_loadSettings = 1 " Use an absolute configuration path if you want system-wide settings +let g:LanguageClient_settingsPath = '/home/YOUR_USERNAME/.config/nvim/settings.json' +set completefunc=LanguageClient#complete +set formatexpr=LanguageClient_textDocument_rangeFormatting() + +nnoremap gh :call LanguageClient_textDocument_hover() +nnoremap gd :call LanguageClient_textDocument_definition() +nnoremap gr :call LanguageClient_textDocument_references() +nnoremap gs :call LanguageClient_textDocument_documentSymbol() +nnoremap :call LanguageClient_textDocument_rename() +``` + +### In your Project Directory NEED compile_commands.json + +[[compile_commands.json]] + +```bash +bear make #If you like Makefile +``` + +or + +```bash +bear gcc x.c -o x +``` + +or any other \ No newline at end of file