本投稿内容はこちらのYouTube動画の内容に沿って行いました。
Neovimとは
neovim は、拡張性と使いやすさのために刷新したVim派生テキストエディタです。つまり、過去に改善を積み重ねてきた Vim を作り直し、スリム化とモダンな機能を搭載した新たな Vim ということになります。
(参照:https://vim.blue/what-is-neovim/)
今回使用した設定ファイルはこちら↓
基本的なファイル構造
coreディレクトリ
Neovim全体に関する設定ファイルを配置する
keymaps.lua
にてカスタムキーバインドを設定可能
pluginsディレクトリ
プラグインに関する設定ファイルを配置する
LSPの設定ファイルはここに配置する
LSPに関するパッケージマネジメントはmasonを利用
plugins-setup.luaファイル
プラグインマネージャーpackerに関する設定ファイル
今回のセットアップで使用したプラグイン
Plugin Manager
- wbthomason/packer - Popular plugin manager
Dependency For Other Plugins
- nvim-lua/plenary - Useful lua functions other plugins use
Preferred Colorscheme
Navigating Between Neovim Windows and Tmux
Essentials
- tpope/vim-surround - manipulate surroundings with "ys", "ds", and "cs"
- vim-scripts/ReplaceWithRegister - replace things with register with "gr"
- numToStr/Comment.nvim - toggle comments with "gc"
File Explorer
VS Code Like Icons
Status Line
Fuzzy Finder
- nvim-telescope/telescope-fzf-native.nvim - Dependency for better performance
- nvim-telescope/telescope.nvim - Fuzzy Finder
Autocompletion
- hrsh7th/nvim-cmp - Completion plugin
- hrsh7th/cmp-buffer - Completion source for text in current buffer
- hrsh7th/cmp-path - Completion source for file system paths
Snippets
- L3MON4D3/LuaSnip - Snippet engine
- rafamadriz/friendly-snippets - Useful snippets for different languages
- saadparwaiz1/cmp_luasnip - Completion source for snippet autocomplete
Managing & Installing Language Servers, Linters & Formatters
LSP Configuration
- williamboman/mason-lspconfig.nvim - Bridges gap b/w mason & lspconfig
- neovim/nvim-lspconfig - Easy way to configure lsp servers
- hrsh7th/cmp-nvim-lsp - Smart code autocompletion with lsp
- glepnir/lspsaga.nvim - Enhanced uis for lsp
- jose-elias-alvarez/typescript.nvim - Additional functionality for typescript server
- onsails/lspkind.nvim - Vs Code Like Icons for autocompletion
Formatting & Linting
- jose-elias-alvarez/null-ls.nvim - Easy way to configure formatters & linters
- jayp0521/mason-null-ls.nvim - Bridges gap b/w mason & null-ls
Syntax Highlighting & Autoclosing Things
- nvim-treesitter/nvim-treesitter - Treesitter configuration
- windwp/nvim-autopairs - Autoclose brackets, parens, quotes, etc...
- windwp/nvim-ts-autotag - Autoclose tags