Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lua for Neovim

Descrição da imagem 1Descrição da imagem 2

What is Lua for Neovim?

MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.

How to Install

Linux and Macos

Before installing, run the following commands to remove any old Neovim configurations:

rm -rf ~/.local/share/nvim/*
rm -rf ~/.local/state/nvim/*
rm -rf ~/.config/nvim/*
rm -rf ~/.config/nvim/.*
mkdir -p ~/.config/nvim

Next, install the new configuration:

cd~/.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./

Install dependencies

Arch

sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep

Ubuntu

sudo apt-get install neovim npm python unzip python3-venv ripgrep

In Ubuntu you need to install symbol nerd font manually

Macos

brew -S neovim npm python unzip ripgrep

Windows

Use wsl2 with ubuntu or arch linux.

If you use NixOs, check out my Dotfiles for Nixos.

Test Your New Neovim Setup

To test your new configuration, simply run:

nvim

Features

  • Comprehensive plugin management
  • Enhanced performance settings
  • Custom keybindings
  • Improved user interface

Keybindings Overview

Number Management

ShortcutFunctionality
(Espace) + kIncrement a number
(Espace) + jDecrement a number
(Espace) + +Increment a number
(Espace) + -Decrement a number

Tab Management

ShortcutFunctionality
(Shift) + nCreate new tab
(Shift) + RightMove current tab to right
(Shift) + LeftMove current tab to left
(Shift) + lGo to next tab
(Shift) + hGo to previous tab
(Shift) + xClose current tab
(Shift) + cOpen current buffer in new tab

Window Management

ShortcutFunctionality
(Ctrl) + =Make splits equal size
(Ctrl) + xClose current split
|Make a Vsplit
_Make a Hsplit
(Ctrl) + kMove cursor to up window
(Ctrl) + jMove cursor to down windows
(Ctrl) + lMove cursor to left window
(Ctrl) + hMove cursor to right window
(Ctrl) + UpResize window to up
(Ctrl) + DownResize windows to down
(Ctrl) + LeftResize window to left
(Ctrl) + RightResize window to right

File Management

ShortcutFunctionality
(Espace) + ffFuzzy find files in cwd
(Espace) + frFuzzy find recent files
(Espace) + fsFind string in cwd
(Espace) + fcFind string under cursor in cwd

File Explorer Management Tree

ShortcutFunctionality
(Espace) + eToggle file explorer

Session Management

ShortcutFunctionality
(Espace) + wrRestore session for cwd
(Espace) + wsSave session for auto session root dir

Git Management

ShortcutFunctionality
(Espace) + gOpen LazyGit

Miscellaneous

ShortcutFunctionality
(Espace) + smMaximize/minimize a split

Copy Selection

ShortcutFunctionality
CTRL + cCopy selection

Debug

ShortcutFunctionality
(Espace) + nCreate or erase breakpoint
F5Start Debugging
F10Step Over
F11Step Into
F12Step Out

Plugins installed

PluginDescription
alpha-nvimA dashboard for Neovim that provides a better startup experience.
auto-sessionAutomatically saves and restores your sessions, making workflow seamless.
nvim-autopairsAutomatically closes pairs of characters like brackets and quotes.
bufferline.nvimA buffer line for Neovim that provides an intuitive way to navigate buffers.
catppuccinA cozy and aesthetic color scheme for Neovim.
dressing.nvimEnhance Neovim's UI for select and input dialogs.
conform.nvimA framework for automatic formatting of code in Neovim.
indent-blankline.nvimAdds indentation guides to Neovim to improve code readability.
plenary.nvimA Lua library for Neovim that provides useful functions and utilities.
lazygit.nvimIntegrates LazyGit with Neovim for an enhanced Git experience.
nvim-lintProvides linting support for various file types in Neovim.
lualine.nvimA fast and easy-to-configure status line plugin for Neovim.
nvim-cmpA completion plugin for Neovim that provides auto-completion features.
nvim-tree.luaA file explorer for Neovim that allows easy navigation and management of files.
nvim-surroundEasily add, remove, or change surrounding characters in Neovim.
telescope.nvimA fuzzy finder for Neovim that helps you search and filter files and content.
nvim-treesitterProvides better syntax highlighting and code navigation through tree-sitter integration.
vim-maximizerEasily maximize and restore windows in Neovim for better workflow.
which-key.nvimDisplays available keybindings in a popup to help discover shortcuts.
mason.nvimA package manager for Neovim that simplifies installing and managing external tools.
nvim-lspconfigQuickstart configurations for the Neovim LSP client.
nvim-dapDebug Adapter Protocol
Local Lua DebuggerDebug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.

LSPs installed

LSPDescription
htmlLanguage server for HTML, providing features like validation and autocomplete.
csslsLanguage server for CSS, offering syntax highlighting and intellisense.
lua_lsLanguage server for Lua, enabling autocompletion and error checking.
graphqlLanguage server for GraphQL, offering schema support and query validation.
pyrightLanguage server for Python, offering type checking and other features.
clangdLanguage server for C/C++, providing code completion and navigation.
yamllsLanguage server for YAML, enabling validation and autocomplete for YAML files.
jsonlsLanguage server for JSON, offering schema validation and autocompletion.

Listers installed

LinterDescription
prettierA code formatter that enforces a consistent style across various languages.
styluaA formatter for Lua code, ensuring consistent formatting.
isortA Python utility for sorting imports in a consistent order.
blackA popular opinionated Python code formatter that enforces PEP 8 compliance.
pylintA static code analysis tool for Python, providing error checking and code quality checks.
eslint_dA fast, extensible linter for JavaScript and TypeScript code, ensuring code quality.
cpplintA linter for C and C++ code, enforcing Google style guidelines.
shellcheckA linter for shell scripts that provides warnings and suggestions for best practices.
yamllintA linter for YAML files, checking for syntax errors and best practices.
jsonlintA linter for JSON files that validates and formats JSON code.

Acknowledgments

This project is based on the setup guide by Josean. Thank you for the valuable insights!

Feel free to explore and customize it further to suit your needs!

About

Configs for perfect nvim setup

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages