{"id":13896033,"url":"https://github.com/mars90226/dotvim","last_synced_at":"2025-07-17T11:33:07.628Z","repository":{"id":3456225,"uuid":"4510047","full_name":"mars90226/dotvim","owner":"mars90226","description":"Vim config","archived":false,"fork":false,"pushed_at":"2024-10-29T09:16:15.000Z","size":4860,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-29T11:06:43.405Z","etag":null,"topics":["defx","fugitive","fzf","neovim","nvim","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jharding/typeahead.js-bootstrap.css","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mars90226.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":"2012-05-31T16:23:56.000Z","updated_at":"2024-10-29T09:16:19.000Z","dependencies_parsed_at":"2023-09-27T10:33:56.149Z","dependency_job_id":"f154c9db-83df-414d-8a91-2304456dc232","html_url":"https://github.com/mars90226/dotvim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mars90226%2Fdotvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mars90226%2Fdotvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mars90226%2Fdotvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mars90226%2Fdotvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mars90226","download_url":"https://codeload.github.com/mars90226/dotvim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226260601,"owners_count":17596494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["defx","fugitive","fzf","neovim","nvim","vim"],"created_at":"2024-08-06T18:02:37.443Z","updated_at":"2025-07-17T11:33:07.622Z","avatar_url":"https://github.com/mars90226.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# Mars' Neovim config\n\nCarefully crafted neovim config by me as an vim/neovim user and evangelist for more than 10 years. Use\n[lazy.nvim](https://github.com/folke/lazy.nvim) as plugin manager.\n\n## Screenshots\n\n![normal](https://github.com/user-attachments/assets/108d2f71-aafb-41b9-bdb2-8a84ec40f960)\n![lsp](https://github.com/user-attachments/assets/84dee5b4-4541-466b-a1e3-a845129ea1eb)\n![fzf-lua](https://github.com/user-attachments/assets/196ee8dc-76c8-4b9f-a216-0abb09e85928)\n\n## Major plugins\n\n### Plugin Manager\n\n- [lazy.nvim](https://github.com/folke/lazy.nvim) (lazy loading plugin manager)\n\n### Gems\n\nWell, these plugins are hard to categorize, but they are gems. You will need them.\n\n- [mini.nvim](https://github.com/echasnovski/mini.nvim) (various modules for neovim)\n- [snacks.nvim](https://github.com/folke/snacks.nvim) (collection of small QoL plugins)\n\n### UI\n\n- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) (fast custom status line)\n- [dropbar.nvim](https://github.com/Bekaboo/dropbar.nvim#requirements) (vscode-like winbar)\n\n### Picker\n\n- [fzf](https://github.com/junegunn/fzf) (fuzzy finder for almost everything)\n- [fzf.vim](https://github.com/junegunn/fzf.vim) (used with fzf)\n- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) (fuzzy finder written in Lua and support LSP)\n- [fzf-lua](https://github.com/ibhagwan/fzf-lua) (fzf wrapper in Lua and support LSP and performs well)\n\n### Editor\n\n- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) (auto completion)\n- [nvim-autopairs](https://github.com/windwp/nvim-autopairs) (automatically insert paired brackets)\n- [nvim-surround](https://github.com/kylechui/nvim-surround) (quickly add/delete/replace brackets)\n- [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim) (find-and-replace globally)\n- [flash.nvim](https://github.com/folke/flash.nvim) (quickly move cursor to certain place on screen)\n- [hop.nvim](https://github.com/smoka7/hop.nvim) (quickly move cursor to certain place on screen, written in Lua)\n- [lightspeed.nvim](https://github.com/ggandor/lightspeed.nvim) (quickly move cursor by search)\n\n### LSP\n\n- [outline.nvim](https://github.com/hedyhli/outline.nvim) (Display symbols in sidebar using LSP)\n- [trouble.nvim](https://github.com/folke/trouble.nvim) (diagnostics UI)\n- [conform.nvim](https://github.com/stevearc/conform.nvim) (on-demand formatter)\n- [nvim-lint](https://github.com/mfussenegger/nvim-lint) (on-demand linter)\n\n### File Explorer\n\n- [oil.nvim](https://github.com/stevearc/oil.nvim) (buffer-based file explorer with folder synchronization)\n- [defx.nvim](https://github.com/Shougo/defx.nvim) (buffer-based file explorer for better multiple project folder)\n\n### Treesitter\n\n- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) (fast semantic syntax highlighting)\n- [syntax-tree-surfer](https://github.com/ziontee113/syntax-tree-surfer) (text navigation and manipulation based on treesitter)\n\n### Git\n\n- [vim-fugitive](https://github.com/tpope/vim-fugitive) (almost perfect git wrapper)\n- [vim-flog](https://github.com/rbong/vim-flog) (git commit browser)\n- [diffview.nvim](https://github.com/sindrets/diffview.nvim) (git diff viewer \u0026 git history viewer)\n\n### Utility\n\n- [vim-floaterm](https://github.com/voldikss/vim-floaterm) (open terminal buffer in floating window)\n- [vimwiki](https://github.com/vimwiki/vimwiki) (wiki plugin like orgmode)\n- [vim-localvimrc](https://github.com/embear/vim-localvimrc) (for setup project-local vim config, useful for LSP)\n- [overseer.nvim](https://github.com/stevearc/overseer.nvim/tree/master) (asynchronous task runner that support `tasks.json` and many task frameworks)\n- [markview.nvim](https://github.com/OXY2DEV/markview.nvim) (markdown previewer)\n\n## Requirements\n\n### Neovim\n\n- [neovim](https://neovim.io/) 0.10.1+ (stable)\n- [python](https://www.python.org/) 3.6.1+ (required by defx.nvim), 3.7.0 (required pynvim 0.5.0)\n  - Currently, pynvim 0.5.0 need Python 3.9: https://github.com/neovim/pynvim/issues/560\n- [universal-ctags](https://github.com/universal-ctags/ctags) (required by fzf)\n- C compiler and libstdc++ (required by nvim-treesitter)\n- [git](https://git-scm.com/) 2.13.0 (basic), 2.19.0 (for column in `git grep`)\n\n## Recommends\n\n- [ripgrep](https://github.com/BurntSushi/ripgrep) (required for grepping files using FZF)\n- [fd](https://github.com/sharkdp/fd) (required for goto to directory using FZF)\n- [eza](https://github.com/eza-community/eza) (required for previewing directory using FZF)\n- [bat](https://github.com/sharkdp/bat) (required for various preview commands using FZF)\n\n## Installation\n\n### Neovim\n\nClone the project as `~/.config/nvim`.\n\n```\ngit clone https://github.com/mars90226/dotvim ~/.config/nvim\n```\n\nOpen neovim and wait for `lazy.nvim` to finish the job.\n\n## Key mappings\n\n`\u003cLeader\u003e` key is `,`.\n\n### Picker\n\n- `fzf` key mappings\n  - `\u003cSpace\u003ezg`: Search and open git files\n  - `\u003cSpace\u003ezf`: Search and open files\n  - `\u003cSpace\u003ezw`: Search and switch to windows\n  - `\u003cSpace\u003ezl`: Search and goto to lines in current buffer\n  - `\u003cSpace\u003ezt`: Search and goto to tags in current buffer\n  - `\u003cSpace\u003ezp`: Search and goto to tags in current project\n  - `\u003cSpace\u003ezi`: Live grep and goto files using ripgrep\n  - `\u003cSpace\u003ezr`: Grep and goto files using ripgrep\n  - `\u003cSpace\u003ezm`: Search and open most recently used files provided by neomru\n  - `\u003cSpace\u003ezh`: Search and open vim help\n- `telescope.nvim` key mappings\n  - `\u003cSpace\u003etg`: Search and open git files\n  - `\u003cSpace\u003etf`: Search and open files\n  - `\u003cSpace\u003etw`: Search and switch to windows\n  - `\u003cSpace\u003etl`: Search and goto to lines in current buffer\n  - `\u003cSpace\u003eti`: Live grep and goto files using ripgrep\n  - `\u003cSpace\u003etr`: Grep and goto files using ripgrep\n  - `\u003cSpace\u003etm`: Search and open most recently used files\n  - `\u003cSpace\u003eth`: Search and open vim help\n- `fzf-lua` key mappings\n  - `\u003cSpace\u003efg`: Search and open git files\n  - `\u003cSpace\u003eff`: Search and open files\n  - `\u003cSpace\u003efw`: Search and switch to windows\n  - `\u003cSpace\u003efl`: Search and goto to lines in current buffer\n  - `\u003cSpace\u003eft`: Search and goto to tags in current buffer\n  - `\u003cSpace\u003efp`: Search and goto to tags in current project\n  - `\u003cSpace\u003efi`: Live grep and goto files using ripgrep\n  - `\u003cSpace\u003efr`: Grep and goto files using ripgrep\n  - `\u003cSpace\u003efm`: Search and open most recently used files using oldfiles\n  - `\u003cSpace\u003efh`: Search and open vim help\n  - `\u003cSpace\u003eld`: Search and goto LSP definitions\n  - `\u003cSpace\u003elr`: Search and goto LSP references\n  - `\u003cSpace\u003elo`: Search and goto LSP document symbols\n  - `\u003cSpace\u003els`: Search and goto LSP workspace symbols\n  - `\u003cSpace\u003elS`: Search and goto LSP workspace symbols by live query\n  - `\u003cSpace\u003ela`: Search and execute LSP code actions\n  - `\u003cSpace\u003elx`: Search and goto document diagnostics\n  - `\u003cSpace\u003elX`: Search and goto workspace diagnostics\n\n### LSP\n\n- LSP key mappings\n  - `gd`: Open LSP definition/references UI\n  - `gy`: Show signature help\n  - `gi`: Goto implementation\n  - `gr`: LSP Rename\n  - `[c`: Goto previous LSP diagnostic error\n  - `]c`: Goto next LSP diagnostic error\n  - `\u003cLeader\u003elf`: Format selected code\n  - `\u003cLeader\u003elf` on visual selection: Range format selected code\n- `outline.nvim` key mappings\n  - `\u003cF7\u003e`: Toggle outline.nvim that showing LSP symbols outline in sidebar\n- `trouble.nvim` key mappings\n  - `\u003cSpace\u003exx`: Show LSP workspace diagnostics in Trouble UI or toggle Trouble UI\n  - `\u003cSpace\u003exd`: Show LSP document diagnostics in Trouble UI\n  - `\u003cSpace\u003exs`: Show LSP document symbols in Trouble UI\n  - `\u003cSpace\u003exl`: Show LSP definitions / references in Trouble UI\n- `nvim-lint` key mappings\n  - `\u003cLeader\u003ell`: Execute linter\n\n### File Explorer\n\n- `oil.nvim` key mappings\n  - `-`: Open current buffer folder in oil\n  - `\u003cSpace\u003e-`: Open current buffer folder in split in oil\n- `defx.nvim` key mappings\n  - `\u003cSpace\u003edd`: Open current buffer folder in Defx\n  - `\u003cSpace\u003eds`: Open current buffer folder in split in Defx\n  - `\u003cF4\u003e`: Toggle Defx as sidebar file explorer\n  - `\u003cSpace\u003e\u003cF4\u003e`: Toggle Defx as sidebar file explorer and find current buffer\n\n### Editor\n\n- `grug-far.nvim` key mappings\n  - `\u003cSpace\u003egw`: Find and replace cursor word/visual selection globally\n  - `\u003cSpace\u003eg'`: Find and replace cursor word/visual selection in current file\n- `hop.nvim` key mappings\n  - `\u003cSpace\u003ew`: Goto word start\n  - `\u003cSpace\u003e;`: Search and goto pattern\n  - `\u003cSpace\u003ej`: Goto below lines\n  - `\u003cSpace\u003ek`: Goto above lines\n- `lightspeed.nvim` key mappings\n  - `f`: Forward search and goto 1 characters\n  - `F`: Backward search and goto 1 characters\n  - `;`: Forward search and goto 2 characters\n  - `\u003cM-;\u003e`: Backward search and goto 2 characters\n\n### Treesitter\n\n- Treesitter key mappings\n  - `af` for textobject: outer function textobject\n  - `if` for textobject: inner function textobject\n  - `af` for textobject: outer class textobject\n  - `ic` for textobject: inner class textobject\n  - `]m`: Goto next function start\n  - `[m`: Goto previous function start\n  - `]]`: Goto next class start\n  - `[]`: Goto previous class start\n  - `\u003cF6\u003e`: Toggle context\n  - `\u003cCR\u003e`: Select node\n  - `\u003cCR\u003e` in visual mode: scope incremental\n  - `\u003cM-h\u003e`, `\u003cM-j\u003e`, `\u003cM-k\u003e`, `\u003cM-l\u003e` in visual mode: navigate node\n  - `\u003cM-S-j\u003e`, `\u003cM-S-k\u003e` in visual mode: swap node\n\n### Git\n\n- `vim-fugitive` key mappings\n  - `\u003cLeader\u003egs`: Show git status\n  - `\u003cLeader\u003egc`: Show git blame commit of current line\n  - `\u003cLeader\u003egd`: Compare current buffer with git indexed file using vimdiff\n  - `\u003cLeader\u003egb`: Show git blame of current buffer\n  - `\u003cLeader\u003egl`: Show git log in quickfix and display most recent commit\n  - `\u003cLeader\u003egL`: Show git log of current buffer in quickfix and display most recent commit\n- `vim-flog` key mappings\n  - `\u003cSpace\u003egf`: Open Flog UI\n  - `\u003cLeader\u003egf`: Show current file in Flog UI\n  - `\u003cLeader\u003egd` in Flog UI: Search and open diff files in current git commit using FZF\n  - `\u003cLeader\u003egd` on visual selection in Flog UI: Search and open diff files in between last git commit and first git commit using FZF\n  - `\u003cLeader\u003egf` in Flog UI: Search and open git files in current git commit using FZF\n  - `\u003cLeader\u003egg` in Flog UI: Grep and goto git files in current git commit using FZF and ripgrep\n\n### Utility\n\n- `vim-floaterm` key mappings\n  - `\u003cM-2\u003e`: Toggle Floaterm terminal\n  - `\u003cM-3\u003e`: Goto previous Floaterm terminal\n  - `\u003cM-4\u003e`: Goto next Floaterm terminal\n  - `\u003cM-5\u003e`: Open new Floaterm terminal\n- `markview.nvim` key mappings\n  - `coh` in `markdown` buffer: Toggle `markview.nvim` preview\n- Custom key mappings\n  - `\u003cM-h\u003e`, `\u003cM-j\u003e`, `\u003cM-k\u003e`, `\u003cM-l\u003e`: Move between windows, like `\u003cC-W\u003eh`, `\u003cC-W\u003ej`, `\u003cC-W\u003ek`, and `\u003cC-W\u003el`\n  - `\u003cC-J\u003e`, `\u003cC-K\u003e`: Move between tabs, like `gT` and `gt`\n  - `\u003cSpace\u003eq`: Close window, like `:q\u003cCR\u003e`\n  - `\u003cLeader\u003edb`: Change current window working directory to folder containing current current buffer. Equivalent of `:lcd %:h\u003cCR\u003e`.\n  - `\u003cM-1\u003e`: Switch to last tab\n  - `\u003cLeader\u003ets`: Open terminal in split\n  - `\u003cLeader\u003ett`: Open terminal in new tab\n- Terminal key mappings\n  - `\u003cM-F1\u003e`: Escape terminal mode to normal mode\n  - `\u003cM-r\u003e`: Paste from register\n\n## TODO\n\n- [ ] Add full plugin dependencies\n- [ ] Add provider plugin for dependencies\n- [x] Add [nvim-dap](https://github.com/mfussenegger/nvim-dap) and related plugins.\n- [ ] Add description to key mappings\n- [ ] Add description to LuaSnip snippets\n- [ ] Add noice.nvim\n- [ ] Add other terminal plugin, like [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim), and change overseer.nvim strategy to toggleterm.\n- [ ] Replace `nvim-cmp` with `blink.cmp`\n\n## Deprecated\n\nVim specific config is removed, but you can use `vim` branch to access them.\nPacker specific config is removed, but you can use `packer` branch to access them.\n\n## Resources\n\n- [rockerBOO/awesome-neovim Collections of awesome neovim plugins.](https://github.com/rockerBOO/awesome-neovim)\n- [Dotfyle | Neovim Plugins \u0026 Neovim News](https://dotfyle.com/)\n- [LazyVim/LazyVim Neovim config for the lazy](https://github.com/LazyVim/LazyVim)\n- [AstroNvim/AstroNvim AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins](https://github.com/AstroNvim/AstroNvim)\n- [NvChad/NvChad Blazing fast Neovim config providing solid defaults and a beautiful UI, enhancing your neovim experience.](https://github.com/NvChad/NvChad)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmars90226%2Fdotvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmars90226%2Fdotvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmars90226%2Fdotvim/lists"}