# My Neovim Config This is my current Neovim config. ## OS compatibility |------------------|-------------------------------|-------------------------------------------------| | Operating System | Confirmed Working | Notes | |------------------|-------------------------------|-------------------------------------------------| | Solus(Linux) | :white_check_mark: | Current Config Target | | Windows | :negative_squared_cross_mark: | Priority for testing after feature completeness | | macos | :question: | Untested but unix-like presumed working | |------------------|-------------------------------|-------------------------------------------------| ## Features ### Plugin manager For this I use packer.nvim It's simple to configure and has lazy loading support so I don't need to have every plugin enabled at all times. It also handles dependency management so I can declare what dependencies a package has and it can handle loading them in the correct order. ### LuaLine LuaLine is a mostly drop-in component however I have created my own extension for it that adds a feature I think was missing #### lualine-spell-status my LuaLine extension to show the current status and language of the build in spellchecker. ### Custom FileType detection Making use of the `ftdetect` folder I am able to customise the detection of some file-types. These ftdetect customisations are only expected to grow and will allow me to take full control of my editing experience. ### Filetype specific settings. Using a custom set of `ftplugin` scripts I can set certain settings on specific file-types only. This is used to set textwidth limits and other things that wouldn't be applicable to every file-type. ### Which-Key Never forget a KeyBinding again. *as long as you can remember the first key* A useful plugin that has helped me remember some of the built-in bindings and pick up some more advanced movement. ### Zen-Mode Make focusing a little easier. Remove all of the distractions from my editor and just show the code I'm working on. This is especially useful for writing prose and general note-taking. ## Annoyances ### Missing calls Some native vimscript calls are yet to have a proper lua method added and as such I have to wrap them. An example of this is calling colorscheme which I currently do like this: ```lua vim.cmd([[colorscheme gruvbox]]) ``` ### KeyBinding and Documentation I am yet to fully transition all of my original bindings from my `init.vim`, some of which provided a great utility. However this process is one I have found rather slow and tedious. It also is made harder with having to document automatic bindings in Which-Key. I also have found pasting is slower due to Which-Key getting in the way. Probably just need to override the `p` key to not trigger it.