{"id":51436918,"url":"https://github.com/dpasca/nvim-config","last_synced_at":"2026-07-05T07:30:27.427Z","repository":{"id":259377558,"uuid":"877706460","full_name":"dpasca/nvim-config","owner":"dpasca","description":"My NeoVim config","archived":false,"fork":false,"pushed_at":"2025-03-30T06:06:50.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T07:19:15.322Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dpasca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T05:26:58.000Z","updated_at":"2025-03-30T06:06:54.000Z","dependencies_parsed_at":"2024-10-25T00:17:40.355Z","dependency_job_id":"9a99718e-2091-49ec-aff5-53936f232ba6","html_url":"https://github.com/dpasca/nvim-config","commit_stats":null,"previous_names":["dpasca/nvim-config"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dpasca/nvim-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpasca%2Fnvim-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpasca%2Fnvim-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpasca%2Fnvim-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpasca%2Fnvim-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpasca","download_url":"https://codeload.github.com/dpasca/nvim-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpasca%2Fnvim-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35147199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-05T07:30:26.694Z","updated_at":"2026-07-05T07:30:27.421Z","avatar_url":"https://github.com/dpasca.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Davide's Neovim Configuration\n\nThis repository contains my personal Neovim configuration files.\n\n## Installation\n\n1.  **Clone the repository:**\n    ```bash\n    git clone git@github.com:dpasca/nvim-config.git ~/.config/nvim\n    ```\n\n2.  **Install Plugins:**\n    *   Launch Neovim (`nvim`).\n    *   The `lazy.nvim` plugin manager should automatically bootstrap itself and install all the configured plugins. You might see progress messages.\n    *   Run `:checkhealth lazy` to ensure everything installed correctly.\n    *   You might need to run `:TSUpdate` to install/update Treesitter parsers.\n\n## Plugin Overview\n\nThis configuration uses [`lazy.nvim`](https://github.com/folke/lazy.nvim) to manage plugins. Key plugins include:\n\n**Core \u0026 UI:**\n*   [`nvim-treesitter`](https://github.com/nvim-treesitter/nvim-treesitter): Advanced syntax highlighting and code parsing.\n*   [`vim-airline`](https://github.com/vim-airline/vim-airline): Status line customization.\n*   [`vim-airline-themes`](https://github.com/vim-airline/vim-airline-themes): Themes for vim-airline.\n*   [`ListToggle`](https://github.com/Valloric/ListToggle): Toggle quickfix/location lists.\n*   [`vim-colorscheme-switcher`](https://github.com/xolox/vim-colorscheme-switcher): Helper for switching themes.\n*   [`srcery-vim`](https://github.com/srcery-colors/srcery-vim): Srcery colorscheme.\n*   [`gruvbox`](https://github.com/morhetz/gruvbox): Gruvbox colorscheme.\n\n**Git Integration:**\n*   [`vim-fugitive`](https://github.com/tpope/vim-fugitive): Comprehensive Git wrapper.\n*   [`vim-gitgutter`](https://github.com/airblade/vim-gitgutter): Shows Git diff markers in the sign column.\n*   [`vim-eunuch`](https://github.com/tpope/vim-eunuch): Vim sugar for UNIX shell commands.\n\n**Development \u0026 Language Support:**\n*   Telescope Configuration (`lua/config/plugin_setup_lsp.lua`): Fuzzy finding and live grep. LSP-specific plugins are currently removed.\n*   [`vim-mucomplete`](https://github.com/lifepillar/vim-mucomplete): Lightweight insert-mode completion.\n*   [`vim-cpp-modern`](https://github.com/bfrg/vim-cpp-modern): C++ syntax highlighting improvements.\n*   [`vim-javascript`](https://github.com/pangloss/vim-javascript): JavaScript syntax highlighting.\n*   [`jupytext.vim`](https://github.com/goerz/jupytext.vim): Jupyter notebook support via text formats.\n\n**Editing \u0026 Navigation:**\n*   [`nerdtree`](https://github.com/scrooloose/nerdtree): File system explorer.\n*   [`vim-fswitch`](https://github.com/derekwyatt/vim-fswitch): Switch between source/header files.\n*   [`vim-operator-highlight`](https://github.com/Valloric/vim-operator-highlight): Highlight the region an operator acts on.\n*   [`vim-expand-region`](https://github.com/terryma/vim-expand-region): Visually expand selection.\n*   [`vim-tmux-navigator`](https://github.com/christoomey/vim-tmux-navigator): Navigate between Vim splits and Tmux panes.\n*   [`vim-table-mode`](https://github.com/dhruvasagar/vim-table-mode): Create and edit tables.\n\n**Utility \u0026 Tools:**\n*   [`vim-qargs`](https://github.com/henrik/vim-qargs): Use quickfix list entries as arguments.\n*   [`ZFVimDirDiff`](https://github.com/ZSaberLv0/ZFVimDirDiff): Directory diff tool.\n*   [`asyncrun.vim`](https://github.com/skywind3000/asyncrun.vim): Run commands asynchronously.\n*   [`vim-better-whitespace`](https://github.com/ntpeters/vim-better-whitespace): Highlight trailing whitespace.\n*   [`vim-localvimrc`](https://github.com/embear/vim-localvimrc): Project-specific Vim settings.\n*   [`editorconfig-vim`](https://github.com/editorconfig/editorconfig-vim): EditorConfig support.\n*   [`ifdef-highlighting`](https://github.com/vim-scripts/ifdef-highlighting): Highlight inactive `#ifdef` blocks.\n\n**AI Assistance:**\n*   [`codecompanion.nvim`](https://github.com/olimorris/codecompanion.nvim): AI coding assistance (configured for Anthropic).\n\n## Key Features\n\n*   Telescope fuzzy finding and live grep\n*   Lightweight completion via `vim-mucomplete`\n*   Theme switching between `srcery` (dark) and `shine` (light) via `:ToggleTheme`\n*   CodeCompanion integration\n\n## Key Mappings\n\nCore key mappings are defined in `lua/config/keymaps.lua`.\n\n**Modes:** `n` = Normal, `i` = Insert, `v` = Visual, `t` = Terminal\n\n**General:**\n*   `n ;` -\u003e `:` (Enter command mode)\n*   `n _` -\u003e `^` (Move to first non-blank character)\n*   `n \u003cCR\u003e` -\u003e `:noh\u003cCR\u003e\u003cCR\u003e` (Clear search highlight)\n*   `n \u003cleader\u003estw` -\u003e `:%s/\\s\\+$//e\u003cCR\u003e` (Strip trailing whitespace)\n\n**Separator Macros (Insert Mode):**\n*   `i ////` -\u003e `//==================================================================` (C++ style comment separator)\n*   `i ####` -\u003e `#==================================================================` (Python style comment separator)\n\n**Quickfix List Navigation:**\n*   `n \u003cA-j\u003e` or `n √™` -\u003e `:cnext\u003cCR\u003e` (Next item)\n*   `n \u003cA-k\u003e` or `n √´` -\u003e `:cprevious\u003cCR\u003e` (Previous item)\n*   `n \u003cA-c\u003e` or `n √£` -\u003e `:cclose\u003cCR\u003e` (Close list)\n\n**Tab Navigation:**\n*   `n gr` or `n \u003cS-Tab\u003e` or `n M` -\u003e `:tabprevious\u003cCR\u003e` (Previous tab)\n*   `n ,` -\u003e `:tabnext\u003cCR\u003e` (Next tab)\n\n**Split Navigation (GUI only, requires `vim-tmux-navigator` disabled):**\n*   `n/i \u003cC-h\u003e` -\u003e `\u003cC-w\u003e\u003cC-h\u003e` (Move left)\n*   `n/i \u003cC-j\u003e` -\u003e `\u003cC-w\u003e\u003cC-j\u003e` (Move down)\n*   `n/i \u003cC-k\u003e` -\u003e `\u003cC-w\u003e\u003cC-k\u003e` (Move up)\n*   `n/i \u003cC-l\u003e` -\u003e `\u003cC-w\u003e\u003cC-l\u003e` (Move right)\n\n**Terminal Mode Navigation:**\n*   `t \u003cC-h\u003e` -\u003e `\u003cC-\\\\\u003e\u003cC-N\u003e\u003cC-w\u003e\u003cC-h\u003e` (Navigate left out of terminal)\n*   `t \u003cC-l\u003e` -\u003e `\u003cC-\\\\\u003e\u003cC-N\u003e\u003cC-w\u003e\u003cC-l\u003e` (Navigate right out of terminal)\n\n**Completion Menu Navigation (Insert Mode):**\n*   `i \u003cC-j\u003e` -\u003e `\u003cC-n\u003e` (Next completion item)\n*   `i \u003cC-k\u003e` -\u003e `\u003cC-p\u003e` (Previous completion item)\n\n**Search:**\n*   `n \u003cleader\u003ewf` -\u003e `:grep -w \u003ccword\u003e` (If `rg` installed) or `:Ggrep -w \u003ccword\u003e` (If `rg` not installed - searches word under cursor)\n*   `n \u003cleader\u003ef` -\u003e `:grep` (If `rg` installed) or `:Ggrep` (If `rg` not installed - starts search)\n\n**Navigation \u0026 File Operations:**\n*   `n \u003cleader\u003eg` -\u003e `:tag \u003ccword\u003e` (Jump to tag definition)\n*   `n \u003cleader\u003ecd` -\u003e `:cd %:p:h` (Change directory to current file's directory)\n*   `n \u003cLeader\u003eo` -\u003e `:FSHere` (Invoke FSHere plugin)\n\n**Execution \u0026 Async:**\n*   `n \u003cF9\u003e` -\u003e `!python %` (Execute current Python file)\n*   `n \u003cF5\u003e` -\u003e Repeat last `:AsyncRun` command\n\n**Visual Mode / Region Expansion:**\n*   `v v` -\u003e Expand visual selection (vim-expand-region)\n*   `v \u003cC-v\u003e` -\u003e Shrink visual selection (vim-expand-region)\n\n**CodeCompanion:**\n*   `n/v \u003cC-a\u003e` -\u003e `\u003ccmd\u003eCodeCompanionActions\u003ccr\u003e` (Show actions menu)\n*   `n/v \u003clocalleader\u003ea` -\u003e `\u003ccmd\u003eCodeCompanionChat Toggle\u003ccr\u003e` (Toggle chat window)\n*   `v ga` -\u003e `\u003ccmd\u003eCodeCompanionChat Add\u003ccr\u003e` (Add visual selection to chat)\n\n**Other:**\n*   `:ToggleTheme` (User command) -\u003e Switch between light (shine) and dark (srcery) themes.\n*   `:Arun {cmd}` (User command) -\u003e Run `{cmd}` asynchronously via AsyncRun (enables `\u003cF5\u003e` repeat).\n*   `cab cc CodeCompanion` (Command abbreviation) -\u003e Type `cc` instead of `CodeCompanion`.\n\n## Configuration Management (Git Sync)\n\nThis configuration includes custom commands to manage synchronization with its Git repository directly from Neovim. These commands operate on the configuration directory (`~/.config/nvim`).\n\n*   `:ConfigPull`: Pulls the latest changes from the remote repository (`git pull`).\n*   `:ConfigPush [commit_message]`: Stages all changes (`git add .`), commits them with the optional `[commit_message]`, and pushes to the remote repository (`git push`). If no message is provided, it only performs `git push`.\n*   `:ConfigStatus`: Shows the current `git status` in a floating window.\n*   `:ConfigDiff`: Shows the current `git diff` in a floating window.\n*   `:ConfigCd`: Changes Neovim's current working directory to the configuration directory (`~/.config/nvim`).\n\n## Dependencies\n\n*   `git`\n*   `ripgrep` (`rg`) (Optional, for faster searching with `:grep`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpasca%2Fnvim-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpasca%2Fnvim-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpasca%2Fnvim-config/lists"}