{"id":22007609,"url":"https://github.com/taohexxx/navim","last_synced_at":"2025-05-05T23:23:24.935Z","repository":{"id":162657445,"uuid":"124984057","full_name":"taohexxx/navim","owner":"taohexxx","description":"A full-blown IDE based on Neovim (or Vim) with better navigation.","archived":false,"fork":false,"pushed_at":"2019-09-19T06:47:30.000Z","size":9482,"stargazers_count":16,"open_issues_count":1,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-31T00:41:15.750Z","etag":null,"topics":["airline","lightline","neovim","spacemacs","unite","vim","vimrc"],"latest_commit_sha":null,"homepage":"","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taohexxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-03-13T03:01:55.000Z","updated_at":"2022-01-20T02:46:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"3bddd75f-53cf-46a6-bf56-7cb15f38058f","html_url":"https://github.com/taohexxx/navim","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/taohexxx%2Fnavim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taohexxx%2Fnavim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taohexxx%2Fnavim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taohexxx%2Fnavim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taohexxx","download_url":"https://codeload.github.com/taohexxx/navim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252591326,"owners_count":21773069,"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":["airline","lightline","neovim","spacemacs","unite","vim","vimrc"],"created_at":"2024-11-30T01:28:18.467Z","updated_at":"2025-05-05T23:23:24.917Z","avatar_url":"https://github.com/taohexxx.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Navim \u0026middot; [![Build Status](https://travis-ci.org/taohexxx/navim.svg?branch=master)](https://travis-ci.org/taohexxx/navim) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)\n\nA full-blown IDE based on Neovim (or Vim) with better navigation.\n\n![Navim](http://taohexxx.github.io/navim/images/navim.gif)\n\n**Table of Contents**\n\n- [Key Mapping](#key-mapping)\n- [Basic Installation](#basic-installation)\n- [Advanced Settings](#advanced-settings)\n- [Advanced Installation](#advanced-installation)\n- [Plugins](#plugins)\n- [Coding Style](#coding-style)\n- [Tags](#tags)\n- [Credits](#credits)\n- [License](#license)\n\n## Key Mapping\n\nYou don't need to remember any key mapping, as navigation bar will show up immediately after the leader key (\u003ckbd\u003eSpace\u003c/kbd\u003e by default) is pressed.\n\nDefault `\u003cLeader\u003e` is \u003ckbd\u003eSpace\u003c/kbd\u003e, `\u003cLocalLeader\u003e` is \u003ckbd\u003e,\u003c/kbd\u003e. For example, \u003ckbd\u003eSpace\u003c/kbd\u003e \u003ckbd\u003es\u003c/kbd\u003e \u003ckbd\u003es\u003c/kbd\u003e search the word under cursor. As shown below, key mapping is carefully-chosen.\n\n![Navim Key Mapping](http://taohexxx.github.io/navim/images/navim_key_mapping.png)\n\nMost of key mapping is [denite](https://github.com/Shougo/denite.nvim) centric. More key mapping is listed here:\n\nKey Mapping                                                   | Description\n--------------------------------------------------------------|------------------------------------------------------------\n\u003ckbd\u003eLeft\u003c/kbd\u003e and \u003ckbd\u003eRight\u003c/kbd\u003e                          | previous buffer, next buffer\n\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eh\u003c/kbd\u003e and \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003el\u003c/kbd\u003e | move to window in the direction of hl\n\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ej\u003c/kbd\u003e and \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ek\u003c/kbd\u003e | move to window in the direction of jk\n\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ew\u003c/kbd\u003e \u003ckbd\u003eo\u003c/kbd\u003e                     | maximize or restore current window in split structure\n\u003ckbd\u003eQ\u003c/kbd\u003e                                                  | close windows and delete the buffer (if it is the last buffer window)\n\n## Basic Installation\n\nBasic installation is simple:\n\n```sh\npip3 install --upgrade pip neovim\ngit clone --recursive https://github.com/taohexxx/navim ~/.config/nvim\n```\n\nMake links if you are using Vim:\n\n```sh\nmv ~/.vim ~/.vim.backup\nmv ~/.vimrc ~/.vimrc.backup\nln -s ~/.config/nvim ~/.vim\nln -s ~/.config/nvim/init.vim ~/.vimrc\n```\n\nStartup vim and [dein](https://github.com/Shougo/dein.vim) will detect and ask you install any missing plugins.\n\n## Advanced Settings\n\nPlugins are nicely organised in layers. There are many ready-to-use layers (javascript, navigation, scm, web, etc.) and you can add your own ones.\n\nPrivate layers can be added to `private_layers/`. And Private plugins can be added to `private_bundle/`. The content of these two directory is ignored by Git.\n\nIt is completely customisable using a `~/.navimrc` file. Just copy `.navimrc.sample` to `~/.navimrc` and modify anything.\n\nAfter restart Neovim (or Vim), run `call dein#clear_state() || call dein#update()` to apply changes.\n\n### Global Variables\n\nIn most instances, modify `g:navim_settings` in `~/.navimrc` should meet your needs.\n\nKey                      | Value                                               | Description\n-------------------------|-----------------------------------------------------|-------------------------------------------\n`layers`                 | `'c'`, `'completion'`, `'editing'`, ...             | files in `layers/` or `private_layers/`\n`additional_plugins`     | `'joshdick/onedark.vim'`, ...                       | github repo\n`encoding`               | `'utf-8'`, `'gbk'`, `'latin1'`, ...                 | files in `encoding/`\n`bin_dir`                | `'/usr/local/bin'`, ...                             | bin directory for cscope, ctags, gdb, ...\n`clang_dir`              | `'/usr/local'`, ...                                 | install directory for clang\n`cscopeprg`              | `'gtags-cscope'`, `'cscope'`, ...                   | cscope program\n`explorer_plugin`        | `'defx'`, `'nerdtree'`                              |\n`statusline_plugin`      | `'airline'`, `'lightline'`                          |\n`completion_plugin`      | `'deoplete'`, `'coc'`, `'ycm'`                      |\n`syntaxcheck_plugin`     | `'ale'`, `'syntastic'`                              |\n`colorscheme`            | `'solarized'`, `'molokai'`, `'jellybeans'`          | use other colorschemes in `additional_plugins` or `layers` is supported\n`powerline_fonts`        | `1`, `0`                                            | requires [fonts](https://github.com/taohexxx/fonts)\n`nerd_fonts`             | `1`, `0`                                            | requires [fonts](https://github.com/taohexxx/fonts)\n\nUse `:echo g:navim_setting` in Neovim (or Vim) to check for runtime settings.\n\n## Advanced Installation\n\n### macOS\n\nYouComplete **only** support Neovim or MacVim.\n\n#### Install Neovim (Recommended)\n\n```sh\npip install --upgrade pip\npip3 install --upgrade pip\npip install --user --upgrade neovim\npip3 install --user --upgrade neovim\nbrew tap neovim/neovim\nbrew update\nbrew reinstall --HEAD neovim\n```\n\nMake alias\n\n```sh\nalias vi='nvim'\nalias vim=\"nvim\"\nalias vimdiff=\"nvim -d\"\n```\n\nIf `\u003cC-h\u003e` does not work in neovim, add these line to `~/.zshrc`\n\n```sh\ninfocmp $TERM | sed 's/kbs=^[hH]/kbs=\\\\177/' \u003e $TERM.ti\ntic $TERM.ti\n```\n\nExecute the `:UpdateRemotePlugins` and restart Neovim.\n\n#### Install MacVim\n\n```sh\nbrew install macvim --with-luajit --override-system-vim\n```\n\nMake alias\n\n```sh\nalias vi=\"mvim -v\"\nalias vim=\"mvim -v\"\nalias vimdiff=\"mvim -d -v\"\n```\n\n#### Install GLOBAL\n\n```sh\nbrew install global\n```\n\n#### Select Auto Completion\n\nSelect auto completion plugins between [Deoplete](https://github.com/Shougo/deoplete.nvim), [Coc](https://github.com/neoclide/coc.nvim) and [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe).\n\n* [Deoplete](https://github.com/Shougo/deoplete.nvim): Zero configuration without [LSP](https://langserver.org/) support. If you don't write C++ or Java, use this.\n* [Coc](https://github.com/neoclide/coc.nvim): Simple initialization with [LSP](https://langserver.org/) support. If you write C++ or Java, use this.\n* [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe): Complicated initialization with [LSP](https://langserver.org/) support. Not recommanded.\n\n#### Auto Completion with [Deoplete](https://github.com/Shougo/deoplete.nvim)\n\nAdd this line to `~/.navimrc`:\n\n```vim\nlet g:navim_settings.completion_plugin = 'deoplete'\n```\n\n#### Auto Completion with [Coc](https://github.com/neoclide/coc.nvim)\n\nAdd this line to `~/.navimrc`:\n\n```vim\nlet g:navim_settings.completion_plugin = 'coc'\n```\n\nInstall [Node.js](https://nodejs.org/en/download/).\n\n```sh\nbrew install node\n```\n\nWrite your `~/.config/nvim/coc-settings.json`. For example, using c++ with ccls:\n\n```json\n{\n  \"languageserver\": {\n    \"ccls\": {\n      \"command\": \"ccls\",\n      \"args\": [\"--log-file=/tmp/ccls.log\"],\n      \"filetypes\": [\"c\", \"cpp\", \"cuda\", \"objc\", \"objcpp\"],\n      \"rootPatterns\": [\n        \".ccls\",\n        \"compile_commands.json\",\n        \".vim/\",\n        \".git/\",\n        \".hg/\"\n      ],\n      \"initializationOptions\": { \"cache\": { \"directory\": \".ccls-cache\" } }\n    }\n  },\n  \"suggest.triggerAfterInsertEnter\": true,\n  \"suggest.noselect\": false,\n  \"suggest.enablePreview\": true,\n  \"suggest.minTriggerInputLength\": 2,\n  \"suggest.acceptSuggestionOnCommitCharacter\": true\n}\n```\n\nYou need to install coc extensions manually like this for the first time: `:CocInstall coc-snippets coc-highlight coc-lists`.\n\n[Using coc extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions).\n\n#### Auto Completion with [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe) (Quick Compile)\n\nAdd this line to `~/.navimrc`:\n\n```vim\nlet g:navim_settings.completion_plugin = 'ycm'\n```\n\n##### Compile ycm_core\n\n```sh\ncd ~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/\n./install.sh --all\n# or\n# ./install.sh --clang-completer --go-completer --js-completer\n```\n\nCheck for `~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/libclang.dylib` and `~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/ycm_core.so`, done\n\n##### TypeScript Support\n\n```sh\nyarn global add typescript\n```\n\n#### Auto Completion with [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe) (Full Compile)\n\nTry this if quick compile does not work.\n\nAdd this line to `~/.navimrc`:\n\n```vim\nlet g:navim_settings.completion_plugin = 'ycm'\n```\n\n##### Clone\n\n```sh\nmkdir -p ~/.config/nvim/bundle/repos/github.com/Valloric/\ncd ~/.config/nvim/bundle/repos/github.com/Valloric/\ngit clone https://github.com/Valloric/YouCompleteMe\ncd YouCompleteMe/\ngit submodule update --init --recursive\n```\n\n##### Compile ycm_core\n\nDownload clang from \u003chttp://llvm.org/releases/download.html\u003e to `~/local/src/` and compile ycm_core\n\n```sh\nmkdir -p ~/local/src/\ncd ~/local/src/\ntar xf clang+llvm-6.0.0-x86_64-apple-darwin.tar.xz\nmkdir -p ~/local/src/ycm_build/\ncd ~/local/src/ycm_build/\ncmake -G \"Unix Makefiles\" -DPATH_TO_LLVM_ROOT=~/local/src/clang+llvm-6.0.0-x86_64-apple-darwin . ~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/cpp\ncmake --build . --target ycm_core --config Release\n```\n\nCheck for `~/.vim/bundle/YouCompleteMe/third_party/ycmd/libclang.dylib` and `~/.vim/bundle/YouCompleteMe/third_party/ycmd/ycm_core.so`, done\n\n##### Compile regex (Optional)\n\n```sh\ncmake -G \"Unix Makefiles\" . ~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/third_party/cregex\ncmake --build . --target _regex --config Release\n```\n\nCheck for `~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/third_party/cregex/regex_3/_regex.so`, done\n\n##### Go Support\n\n```sh\ncd ~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/third_party/gocode\ngo build\n```\n\n##### JavaScript Support\n\n```sh\ncd ~/.config/nvim/bundle/repos/github.com/Valloric/YouCompleteMe/third_party/ycmd/third_party/tern_runtime\nyarn install --production\n```\n\n##### TypeScript Support\n\n```sh\nyarn global add typescript\n```\n\n#### Project Configuration\n\nDownload \u003chttps://raw.githubusercontent.com/Valloric/ycmd/master/cpp/ycm/.ycm_extra_conf.py\u003e to your project directory\n\n### Windows\n\n```sh\ngit clone --recursive https://github.com/taohexxx/navim %userprofile%\\AppData\\Local\\nvim\n```\n\nrun `nvim.exe` before run `nvim-qt.exe`\n\n## Plugins\n\n*\t[denite.nvim](https://github.com/Shougo/denite.nvim)\n*\t[unite.vim](https://github.com/Shougo/unite.vim)\n*\t[lightline.vim](https://github.com/itchyny/lightline.vim)\n*\t[lightline-buffer](https://github.com/taohexxx/lightline-buffer)\n*\t[Coc](https://github.com/neoclide/coc.nvim)\n*\t[deoplete](https://github.com/Shougo/deoplete.nvim)\n*\t[Defx](https://github.com/Shougo/defx.nvim)\n*\t[unimpaired](https://github.com/tpope/vim-unimpaired)\n*\t[editorconfig](https://github.com/editorconfig/editorconfig-vim)\n*\t...\n\n## Coding Style\n\n[EditorConfig](http://editorconfig.org/) is supported.\nCreate an `.editorconfig` in any parent directory for consistent coding styles.\n\n## Tags\n\n`~/.config/nvim/tags/*.tags` will be auto added.\n\n[Tags (`:h navim-tags`)](https://github.com/taohexxx/navim/blob/master/doc/navim.txt#L338)\n\n## Help\n\n[Help (`:h navim`)](https://github.com/taohexxx/navim/blob/master/doc/navim.txt)\n\n## Credits\n\nBuilt with :heart:. I wanted to give special thanks to all of the following projects and people, because I learned a lot and took many ideas and incorporated them into my configuration.\n\n*\t[spacemacs](https://github.com/syl20bnr/spacemacs)\n*\t[shougo](https://github.com/Shougo)\n*\t...\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaohexxx%2Fnavim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaohexxx%2Fnavim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaohexxx%2Fnavim/lists"}