diff --git a/README.md b/README.md index 7e180b8..39e8c6a 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,123 @@ -

- screenshot -

+
-

NEOVIM

+

keycodex

-

+

Your Personalized Dev Env โค๏ธ๐Ÿ‘จโ€๐Ÿ’ป

- -People - - -Stars - - -Forks - - -Watches - - -Last Updated -

- -

- Welcome to my personalized Neovim setup ๐Ÿ‘จโ€๐Ÿ’ป -
- Optimized for a smooth and efficient coding experience. -
-
- Documentation - ยท - Report a Bug - ยท - Request a Feature -

- -
- -## Highlights - -- **Modular Structure**: Organized Lua scripts for readability and easy customization. -- **Language Support**: Automated setup for various languages using Mason.nvim. -- **Keybindings**: Streamlined shortcuts for productivity, detailed in `lua/plugins/tools/whichkey.lua`. -- **Plugins**: Handpicked plugins managed via Lazy.nvim for enhanced functionality. - -## System dependencies - -Important system dependencies: - -- **Nerd fonts** - - - Download a [Nerd Font](https://www.nerdfonts.com/) (good choice is "JetBrainsMono Nerd Font"). - - Unzip and copy to '~/.local/share/fonts'. - - Run the command `fc-cache -fv` to manually rebuild the font cache. - -- **Tools for finding stuff**: - - [ripgrep](https://github.com/BurntSushi/ripgrep#installation) - -## Installation - -Delete old nvim configuration - -```bash -rm -rf ~/.config/nvim -rm -rf ~/.local/state/nvim -rm -rf ~/.local/share/nvim -``` - -Clone the repository to ~/.config - -```bash -git clone --filter=blob:none https://github.com/S4NKALP/nvim.git ~/.config/nvim -``` - -Run neovim to complete the setup - -```bash -nvim -``` - -### Customization - -Feel free to modify and adapt my configuration to your own needs! - -### ๐Ÿงฐ Tools Used - -- [dots](https://github.com/S4NKALP/hyprland) โ€” Dev Environment -- [nvim](https://github.com/S4NKALP/nvim) โ€” Personalized Editor - -
- โญ hit the star button if you found this useful โญ
+ +Handcrafted Neovim setup for the ultimate CLI dev experience. + +## โœจ Features + +- **Fully configured LSP**: Out of the box LSP and completions, including Copilot (optional) +- **Awesome keybindings**: Intuitive and well documented keybindings with which-key +- **Blazingly fast**: Starts up in less than 30ms thanks to extensive lazy loading +- **Batteries included**: Has all the necessary plugins included out of the box +- **Git in there**: Powerful git integrations thanks to lazygit, fugitive, gitsigns and more +- **Pretty colors**: Comes with treesitter and onedark preconfigured with full transparency support +- **Tmux integration**: Works with your tmux configurations out of the box +- **Dev tools**: Comes with debugging, testing, database and REPL support, pick and choose +- **Auto install**: All necessary LSPs, Null LS sources, Treesitter Parsers etc. are auto installed +- **User module**: Configure keycodex according to your needs by using the `user` module! +- and some more + +Most importantly: + +**Built for extending**: keycodex has a easy to understand config structure that promotes personalization, so go ahead, bring your keybindings, functions and plugins over, and truly make **keycodex: Your Personalized Development Environment!** + +## โšก Setup + +### โš™๏ธ Requirements + +Before you begin, ensure you have met the following requirements: + +- You have installed the latest version of `neovim` +- Some command line tools: fd, ripgrep + +### ๐Ÿ’ป Installation + +To install `keycodex` clone the repo and setup the symlink + +```bash +git clone https://github.com/S4NKALP/keycodex +``` + +On Linux and Mac + +```bash +ln -sfnv $PWD/keycodex $HOME/.config/nvim +``` + +On Windows Powershell + +```powershell +New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\keycodex" -Force +``` + +## ๐Ÿš€ Usage + +### ๐ŸŽจ User Configs + +`keycodex` supports a user module where you can store your custom configs and override any default configs. + +To use custom configs create the file `lua/user/init.lua` in keycodex, with the following structure: + +```lua +-- lua/user/init.lua +local user = { + auto_install = true, -- enable auto install of LSPs, Treesitter parsers etc. + user_lsp_servers = { + -- Auto installed LSPs defined by user + }, + user_null_ls_sources = { + -- Auto installed Null LS sources defined by user + }, + user_treesitter_parsers = { + -- Auto installed Treesitter parsers defined by user + }, + + enable_db_explorer = false, -- enable dbee.nvim support + enable_debugger = false, -- enable dap.nvim support + enable_test_runner = false, -- enable neotest.nvim support + enable_trainer = false, -- enable hardtime.nvim support + user_plugins = { + -- Add your lazy plugin spec here + }, + + user_keybindings = { + -- Add your which-key bindings here + } +} + +return user +``` + +You can add and `require` any other custom modules and configurations you want in this file. + +`user` module is not part of the repo, you can set up `user` module as a separate git repository while continuing to receive `keycodex` updates. + +### Core + +Files in [lua/core](./lua/core/) control the core of neovim: + +- [options](./lua/core/options.lua), +- [functions](./lua/core/functions.lua) +- [autocmds](./lua/core/autocmd.lua) +- [core keybindings](./lua/core/keys.lua) + +### โŒจ๏ธ Keybindings + +Apart from [core/keys](./lua/core/keys.lua) most keybindings are configured using [which-key](./lua/plugins/tools/which-key.lua) + +### ๐Ÿ“ฆ Plugins + +You can check out the [plugins list file](./lua/plugins/list.lua) file to see the plugins that are included in keycodex. + +- [lang](./lua/plugins/lang/): Plugins related to language features, completions, lsp, editing etc. +- [tools](./lua/plugins/tools/): Plugins that add tool integrations to the editor. +- [ui](./lua/plugins/ui/): Plugins that make improve Neovim user experience. + +## ๐Ÿ™ Acknowledgments + +This project builds upon [nvim2k](https://github.com/2KAbhishek/nvim2k) by [2KAbhishek](https://github.com/2KAbhishek/), enhancing it with additional features and optimizations. \ No newline at end of file