8000 GitHub - podgorniy94/nvim: My Neovim essential configurations as an Complete IDE.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

podgorniy94/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Setup / Tables of Contents 💻

  1. Setup Guides
  2. Plugins
  3. General Notes
  4. Options Notes
  5. Lua Notes

Plugins 📚

Plugin Manager
folke/lazy.nvim - plugin manager

Dependency For Other Plugins
nvim-lua/plenary.nvim - Useful lua functions other plugins use

Essentials
kylechui/nvim-surround - manipulate surroundings with "ys", "ds", and "cs"
christoomey/vim-tmux-navigator - Navigating Between Neovim Windows and Tmux
vim-maximizer - Maximizes and restore current window
lewis6991/gitsigns.nvim - Show line modifications on left hand side for Git
rmagatti/auto-session - Session Manager

Interface
mhartington/oceanic-next - Colorscheme
nvim-lualine/lualine.nvim - Status Line
kyazdani42/nvim-web-devicons - VS Code Like Icons
akinsho/bufferline.nvim - Buffer Line
goolord/alpha-nvim - Neovim Greeter
lukas-reineke/indent-blankline.nvim - Indentation guides
echasnovski/mini.indetscope - active indent guide and indent text objects-- folke/noice.nvim - replaces the UI for messages, cmdline and the popupmenu

Fuzzy Finder
nvim-telescope/telescope-fzf-native.nvim - Dependency for better performance
nvim-telescope/telescope.nvim - Fuzzy Finder
stevearc/dressing.nvim - select/input ui improvement

Keymap Suggestions
folke/which-key.nvim

Autocompletion
fhrsh7th/nvim-cmp - Completion plugin
hrsh7th/cmp-buffer - Completion source for text in current buffer
hrsh7th/cmp-path - Completion source for file system paths
hrsh7th/cmp-cmdline - Completion source for vim's cmdline

onsails/lspkind.nvim - Vs Code Like Icons for autocompletion
windwp/nvim-ts-autotag - Use treesitter to autoclose and autorename html tag

Snippets
L3MON4D3/LuaSnip - Snippet engine
rafamadriz/friendly-snippets - Useful snippets for different languages
saadparwaiz1/cmp_luasnip Completion source for snippet autocomplete

Comments
numToStr/Comment.nvim - toggle comments with "gc"
JoosepAlviste/nvim-ts-context-commentstring - Requires treesitter
folke/todo-comments.nvim - highlight/search for comments like todo/hack/bug

Treesitter Syntax Highlighting, Autoclosing & Text Objects
nvim-treesitter/nvim-treesitter - Treesitter configuration
windwp/nvim-autopairs - Autoclose brackets, parens, quotes, etc...
windwp/nvim-ts-autotag - Autoclose tags

Markdown Preview
iamcco/markdown-preview.nvim

Managing & Installing Language Servers, Linters & Formatters
williamboman/mason.nvim

LSP Configuration
williamboman/mason-lspconfig.nvim - Bridges gap b/w mason & lspconfig
neovim/nvim-lspconfig - Easy way to configure lsp servers
hrsh7th/cmp-nvim-lsp - Smart code autocompletion with lsp

Trouble.nvim
folke/trouble.nvim - nice way to see diagnostics and other stuff

Formatting & Linting
stevearc/conform.nvim - Easy way to configure formatters
mfussenegger/nvim-lint - Easy way to configure linters
WhoIsSethDaniel/mason-tool-installer.nvim - Auto install linters & formatters on startup

Unplugged plugins
nvim-treesitter/nvim-treesitter-textobjects - Treesitter configuration
norcali/colorizer.lua - Color Highlighter
nvim-tree - File Explorer
ThePrimeagen/harpoon - Marking Files With Prime's Harpoon
gbprod/substitute.nvim - replace things with register with "s" and "S"
kdheepak/lazygit.nvim - Use lazygit within Neovim


General Notes 💁

Learn Vim the Smart Way
Learn Vimscript the Hard Way Complete Guide

Commands

:help config
:help events
:checkhealth

" Python support
" pip install pynvim

LSP
Neovim has built-in LSP (Language Server Protocol) client.
Manual, triggered completion is provided by Nvim's builtin omnifunc.

Font

# ryanoasis/nerd-fonts
brew tap homebrew/cask-fonts

# jetbrains
brew search font- | grep jetbrains
brew install --cask font-jetbrains-mono-nerd-font

# meslo
brew install font-meslo-lg-nerd-font

How to set transparent background for iTerm2 in full screen mode on a Mac

  1. Open your iTerm2-> Choose Full screen window style in Open profiles -> Edit profiles -> Window -> Stylesettings.
  2. Now un-check the Native full screen windows in General settings of iTerm2 (not the profile).
  3. Now you can choose the level transparency in Open profiles -> Edit profiles -> Window settings.

Replaced by WezTerm

Extra information

File for configuring formatting for Lua: .stylua.toml
Python:

  • LSP: pyright
  • Linting: pylint
  • Formatting: isort, black

Lua Notes 💡

Boolean toggle

-- vimL:
-- set number

vim.opt.number = true

Setting an array of values

-- vimL:
-- set wildignore=*.o,*.a,__pycache__

vim.opt.wildignore = '*.o,*.a,__pycache__'
vim.opt.wildignore = { '*.o', '*.a', '__pycache__' }

Setting a map of values

-- vimL:
-- set listchars=space:_,tab:>~

vim.opt.listchars = { space = '_', tab = '>~' }

--set {option}+={flags}
vim.opt.wildignore = vim.opt.wildignore + { "*.pyc", "node_modules" }`
vim.opt.wildignore:append { "*.pyc", "node_modules" }`

-- set {option}^={flags}
vim.opt.wildignore = vim.opt.wildignore ^ { "new_first_value" }
vim.opt.wildignore:prepend { "new_first_value" }

-- set {option}-={flags}
vim.opt.wildignore = vim.opt.wildignore - { "node_modules" }
vim.opt.wildignore:remove { "node_modules" }

Глобальная переменная 'vim' служит точкой входа для взаимодействия с Neovim API из Lua кода. Мета-аксессоры обертывают функции API: vim.api.nvim_set_option() = vim.opt.{option}.


Options Notes 🔎

Performance

set lazyredraw
" This setting prevents Vim from redrawing the screen for each iteration of the macro.

set complete-=i
" Limit the files searched for auto-completes.
" i: Scan the current and included files.

Text Rendering Options

set display+=lastline
" Vim will try to show as much as possible of the last line in the window (rather than
" a column of '@', which is the default behavior). The line uses `+=` to avoid overriding
" the setting if you have set it to truncate, which will show the “@@@” in the first columns
" instead.

set linebreak
" This will cause wrap to only wrap at the characters in the breakat setting
" (`^I!@*-+;:,./?`), which defaults to space, tab, and small set of punctuation characters.

set nrformats-=octal
" Number formats helps define what kind of format will be considered as number for Vim.
" For instance, the octal option will cause 007 to be incremented to 010 due to using base 8.

set sidescrolloff = 5
" The minimal number of columns to scroll horizontally. Used only when the 'wrap' option
" is off and the cursor is moved off of the screen (help.txt).

set wrap
" By default this will wrap at the first character that won't fit in the window.
" This means it will wrap in the middle of a word if that's where the window boundary lies.

set textwidth = 80
" Re-format text/code to wrap to 80-characters (:h formatting).

User Interface Options

set laststatus=2
" If the value of 'laststatus' is 1, then Vim’s status bar will only show if there are 2
" or more Vim windows open.The status bar will always be there by setting the value to 2,
" even if you only open the 1 Vim window.

Miscellaneous Option

set backspace
" When indent is included, you can backspace over indentation from autoindent.
" When eol is included, you can backspace over an end of line (eol) character.
" When start is included, you can backspace past the position where you started Insert mode.

set backup
" :help backup-table

set clipboard = unnamed, unnamedplus
" On Mac OS X and Windows, the * and + registers both point to the system clipboard.
" On Linux, you have essentially two clipboards: one is pretty much the same as in the
" other OSes, the other is the 'selection' clipboard (mapped to register * in Vim).

set nomodelines
" Modelines allow you to set variables specific to a file.
" By default, the first and last five lines are read by vim for variable settings.

About

My Neovim essential configurations as an Complete IDE.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0