Skip to content

Jaehaks/nvim_config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,048 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim_config

  • Default setup :
    • Windows 10

Installation requirement

For Windows

pre-required environment variable

  1. HOME : %USERPROFILE%
  2. PATH :
    • %USERPROFILE%\.config\Dotfiles\clink
    • %USERPROFILE%\user_installed\SumatraPDF
    • %USERPROFILE%\user_installed\<clinkpath>
    • %USERPROFILE%\user_installed\MikTeX\miktex\bin\x64
    • %USERPROFILE%\scoop\apps\openjdk11\current\bin
    • %USERPROFILE%\Vim\vim90
    • %USERPROFILE%\user_installed\node-v24.2.0-win-x64 (for nvim-treesitter's main branch)
  3. CC : gcc (for nvim-treesitter's main branch)
  4. XDG_CONFIG_HOME : %USERPROFILE%\.config (nvim config)
  5. XDG_DATA_HOME : %USERPROFILE%\.config (nvim-data)
  6. XDG_CACHE_HOME : %USERPROFILE%\.config\nvim-data\cache (for sqlite3.dll of snacks.nvim and luac for fast loading)
  7. XDG_STATE_HOME : %USERPROFILE%\.config (for shada file)
  8. NVIM_LOG_FILE : %USERPROFILE%\.config\nvim-data (It will make log file in this directory)

[!NOTE] Note: XDG_RUNTIME_HOME It doesn't need to set manually. it is temp folder as default. short life files that are needed when nvim is executing are stored

using scoop

Note

To add buckets put this code in cmd prompt scoop bucket add main extras versions java

	scoop install ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick bat clipboard unar wget curl unzip gzip tar pwsh openjdk11 go rustup python tree-sitter git gh
	scoop install lua luarocks mingw neovim neovim-qt iconv uutils-coreutils less sed grep obs-studio scoop-search ghostscript windows-terminal yazi zip eza gawk
  1. ffmpeg (for yazi)
  2. 7zip (for yazi, neovim/mason)
  3. jq (for yazi)
  4. poppler (for yazi)
  5. fd (for yazi, neovim/snacks)
  6. ripgrep (for yazi, neovim/snacks)
  7. fzf (for yazi)
  8. zoxide (for yazi, clink)
  9. resvg (for yazi)
  10. imagemagick (for yazi)
  11. bat (for yazi)
  12. clipboard (for yazi)
  13. unar (for yazi/lsar.yazi)
  14. wget (for neovim/mason)
  15. curl (for neovim/mason)
  16. unzip (for neovim/mason)
  17. gzip (for neovim/mason)
  18. tar (for neovim/mason)
  19. pwsh (for neovim/mason)
  20. rustup (for neovim/mason)
  21. tree-sitter (for neovim/nvim-treesitter) (0.25.0 or later for nvim-treesitter's main branch)
  22. git (for neovim/lazy.nvim, neovim/snacks)
  23. gh (for neovim/blink-cmp-git)
  24. lua (for neovim)
  25. luarocks (for neovim)
  26. mingw-winlibs (for neovim)
    • gcc (for neovim/nvim-treesitter main branch), set CC to gcc for using c compiler
  27. neovim (for neovim)
  28. neovim-qt (for neovim)
  29. uutils-coreutils (for linux command)
  30. less (for linux command)
  31. sed (for linux command)
  32. grep (for linux command)
  33. obs-studio (for recording screen)
  34. scoop-search (for search scoop package)
  35. ghostscript
  36. windows-terminal
  37. yazi
  38. zip
  39. eza
  40. gawk

using manual download

  1. sumatraPDF
    • program from scoop has some bug
  2. clink
    • it needs to copy or link files from dotfiles to the install path of clink
  3. node.js (for neovim/mason)
    • select version > v23.x for nvim-treesitter's main branch and download portable version for convenient installation
    • npm (for neovim/mason)
      • npm install -g neovim for vim.g.loaded_node_provider = 1
      • vim.g.loaded_perl_provider = 0 for disable provider warning
  4. MikTeX
    • pdflatex for snacks
    • latexmk for vimtex
    • It is more convenient to install packages over than scoop package
  5. Obsidian
    • for personal markdown notes

mason

  • mason is loaded by cmd for lazy load. Parsers must be installed manually
  • 🟩 required lsp

    • json-lsp
    • basedpyright
    • lua-language-server
    • matlab-languager-server
  • 🟩 required linter

    • ruff
  • 🟩 required formatter

    • latexindent
    • stylua

For Ubuntu 22.04

  1. mason.nvim
    1. git : default
    2. curl : default
    3. wget : default
    4. unzip : default
    5. tar or gtar : default
    6. gzip : default
    7. python3 : sudo apt-get install -y python3 (it may be installed 3.10.6 version by default)
    8. pip/pip3 : sudo apt-get install -y python3-pip
    9. luarocks : sudo apt-get install -y luarocks
    10. npm : sudo apt-get install -y nodejs npm (v12.22.9 TLS)
  2. nvim-treesitter.nvim
    1. tree-sitter
    2. node : sudo apt-get install -y nodejs
    3. git
    4. gcc : sudo apt-get install -y build-essential
  3. provider
    1. python3 provider :
      • install python-venv : sudo apt-get install -y python3-venv
      • activate venv : source ~/.config/.Nvim_venv/bin/activate
      • install neovim : pip install neovim in venv (pynvim is installed automatically)
      • If you want to execute nvim in python virtualenv, run nvim after activate venv
    2. nodejs provider :
      • apt install old v12.22.9 and neovim package requires >= v14
        • use nvm instead of apt for newer version of nodejs
      • install nvm : curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
        • it will add $NVM_DIR in .zshrc
        • execute .zshrc : source ~/.zshrc
      • show which version can be used : nvm list-remote
      • show which version installed : nvm list
      • install nodejs & npm : nvm install v20.14.0 (npm v10.7.0 will be installed automatically)
      • install neovim from npm : npm install -g neovim ( confirm global installed packages with npm -g ls )

For Windows

  1. provider
    1. python3 provider :
      • install uv for global : scoop install uv
      • install python and set as default : uv python install --default & uv python update-shell
      • create venv : uv venv ~\.config\.Nvim_venv
      • install pynvim : uv pip install pynvim (without venv activation)
      • set python3 provider : vim.g.python3_host_prog = <path>\.Nvim_venv
    2. nodejs provider :
      • install nvm : node.js
      • install neovim : npm install -g neovim

queries

1. Rainbow Delimiters for matlab

Delimiter file for matlab was written in nvim_config/query/rainbow-delimiters.nvim/matlab/ and it can be used in HiPhish/rainbow-delimiters.nvim To use, follow these step

  1. Add matlab query directory to nvim-data/lazy/rainbow-delimiters.nvim/queries

2. nvim-treesitter-endwise for matlab

I'm making endwise file for matlab in nvim_config/query/nvim-treesitter-endwise/matlab/ (In Proceeding)

3. Luasnip for matlab

I'm making snippet file for matlab in nvim_config/queries/friendly-snippets/matlab/ using friendly-snippets, These steps will operate automatically later, every update of github repository or I'll find other ways

  1. Add matlab query directory to nvim-data/lazy/friendly-snippets/snippets
  2. Add this code in nvim-data/lazy/friendly-snippets/package.json
{
	"language": ["matlab"],
    "path": "./snippets/matlab/matlab.json"
},

2. fugit2.nvim

It needs libgit2.dll

On Windows, you can use choco to install libigt2

choco install libgit2
copy c:\ProgramData\chocolatey\lib\libgit2\tools\libgit2.dll <config path>\.config\nvim\queries\fugit2\libgit2.dll

(In Proceeding)

About

Neovim configuration environment files

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors