From b2f30008cdd0c959100e1cb8dc6cbe47cea1b408 Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Fri, 3 Oct 2025 00:48:23 +0200 Subject: Move back to markdown --- README.md | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.txt | 117 ------------------------------------------------------------- 2 files changed, 117 insertions(+), 117 deletions(-) create mode 100644 README.md delete mode 100644 README.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..8d41cec --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# Overview +### Features +The main goal of this config is being robust and as lightweight as possible. Nothing fancy, just minimum setup for ide-like(ish) experience. + +### Installation + +Run checkhealth before cloning my setup + +:checkhealth + +Then clone this repo to your .config folder, open neovim and wait till installation is over. + +git clone https://codeberg.org/philw/nvim ~/.config + +After the installation it may require a restart so it can load colorscheme properly + +### Further development + +After many years, this is the only text editor on my system, so I'll be adding updates as long as I find something better(not gonna happen soon). + +### Documentation + +## Global Settings + +### Editor settings +- nu = true: Show line numbers. +- tabstop = 2: Set the width of a tab to 2 spaces. +- softtabstop = 2: Number of spaces that a tab character counts for during editing. +- shiftwidth = 2: Number of spaces to use for auto-indentation. +- expandtab = true: Convert tabs to spaces. +- smartindent = true: Automatically indent new lines based on the syntax. +- ruler = false: Hide the ruler (status bar showing line and column position). +- wrap = false: Disable line wrapping. +- swapfile = false: Disable the creation of swap files. +- hlsearch = false: Disable highlighting of search matches. +- incsearch = true: Enable incremental search. +- updatetime = 50: Set the update time for asynchronous operations like completions. +- laststatus = 0: Hide the status line. +- signcolumn = "number": Display line numbers in the sign column. +- autoindent = true: Enable automatic indentation. +- clipboard = "unnamedplus": Use the system clipboard for copy-pasting. +- termguicolors = true: Enable 24-bit RGB color support in the terminal. +- fillchars = "eob: ": Customize end-of-buffer character. +- lazyredraw = false: Disable lazy redrawing for smoother experience. +- timeoutlen = 500: Set timeout for key sequences to 500ms. +- netrw_banner = 0: Disable Netrw banner. +- netrw_liststyle = 3: Use a tree-style layout for Netrw. +- netrw_altv = 0: Disable vertical splits for Netrw. +- netrw_winsize = 25: Set Netrw window size. +- netrw_browse_split = 4: Open Netrw in a horizontal split. +- rustfmt_autosave = 1: Enable automatic formatting for Rust files using rustfmt. +- mkdp_auto_start = 1: Automatically start Markdown Preview (for mkdp). +- vimtex_view_method = "zathura": Set PDF viewer to zathura for LaTeX files. +- vimtex_compiler_method = "latexmk": Use latexmk for compiling LaTeX files. +- vimtex_quickfix_mode = 0: Disable quickfix window for VimTeX. +- tex_conceal = "abdmg": Enable automatic concealment of LaTeX formatting. +- tex_flavor = "latex": Set the flavor of TeX to LaTeX. +- gitgutter_set_sign_backgrounds = 1: Enable background color for GitGutter signs. + +## Auto Commands and custom functions (api.nvim_create_autocmd) + +### Format on Save +- Formats the buffer using vim.lsp.buf.format before saving any file. + +### Run Prettier and Compile LaTeX on Save +- For JavaScript, TypeScript, CSS, HTML, YAML, Markdown, and JSON files, Prettier is run automatically after saving. Yes, I could use lsp features here but in my case this is the bulletproof setup. +- For LaTeX files (*.tex), VimtexCompile is triggered upon saving to compile the document.(bugged af) + +You can add anything you want. Just make sure it's on your system. + +### Auto-delete Netrw Hidden Buffers +- Automatically deletes hidden buffers when opening a Netrw window. This is quite helpful for the ToggleVExplorer function. + +### ToggleVExplorer +- Toggles the VExplorer window in Neovim. +- If the window is already open, it will be closed; if it is closed, it will be opened in the first window. + +## Plugin Management (require("lazy").setup) + +The configuration uses Lazy.nvim for plugin management. I've tried them all. This works the best for me. + +- airblade/vim-gitgutter: Displays Git changes in the gutter (added, modified, deleted lines). +- lervag/vimtex: Provides LaTeX support, including features like auto-compiling and PDF viewing. +- norcalli/nvim-colorizer.lua: Highlights color codes in files. +- nvim-treesitter/nvim-treesitter: Provides better syntax highlighting and tree-sitter integration. +- neovim/nvim-lspconfig: Set up language servers for autocompletion and LSP features. +- ms-jpq/coq_nvim: Provides autocompletion with COQ (a Neovim completion plugin). +- nvim-telescope/telescope.nvim: A fuzzy finder plugin for file searching and navigation. +- windwp/nvim-autopairs: Automatically closes pairs of parentheses, brackets, etc. + +## LSP (Language Server Protocol) Configuration + +### Rust Configuration (rust_analyzer) +- Configures rust_analyzer with specific settings: + - imports.granularity.group = "module": Organizes imports by module. + - cargo.buildScripts.enable = true: Enable build script support for Cargo. + - procMacro.enable = true: Enable procedural macro support. + +Each language server is set up using lspconfig, and the configuration is ensured with coq autocompletion. + +### Mason Setup +- mason.nvim: Automatically installs LSP servers(currently just rust_analyzer) and other tools. + +## Key Mappings (keymap.set) + +- e: Toggle the VExplorer window. +- z: Search and replace the word under the cursor in the entire buffer. +- a: Select the entire buffer. +- y: Replace the current line with cc (change the line). +- : Yank the current line to the clipboard. +- : Paste from the clipboard. +- : Undo the last change. +- J and K: Speed up moving the selected text block down or up in visual mode. +- f: Open Telescope's file finder. +- g: Open Telescope's live grep search. +- d: Go to definition (LSP feature). +- k: Show hover information (LSP feature). diff --git a/README.txt b/README.txt deleted file mode 100644 index 8d41cec..0000000 --- a/README.txt +++ /dev/null @@ -1,117 +0,0 @@ -# Overview -### Features -The main goal of this config is being robust and as lightweight as possible. Nothing fancy, just minimum setup for ide-like(ish) experience. - -### Installation - -Run checkhealth before cloning my setup - -:checkhealth - -Then clone this repo to your .config folder, open neovim and wait till installation is over. - -git clone https://codeberg.org/philw/nvim ~/.config - -After the installation it may require a restart so it can load colorscheme properly - -### Further development - -After many years, this is the only text editor on my system, so I'll be adding updates as long as I find something better(not gonna happen soon). - -### Documentation - -## Global Settings - -### Editor settings -- nu = true: Show line numbers. -- tabstop = 2: Set the width of a tab to 2 spaces. -- softtabstop = 2: Number of spaces that a tab character counts for during editing. -- shiftwidth = 2: Number of spaces to use for auto-indentation. -- expandtab = true: Convert tabs to spaces. -- smartindent = true: Automatically indent new lines based on the syntax. -- ruler = false: Hide the ruler (status bar showing line and column position). -- wrap = false: Disable line wrapping. -- swapfile = false: Disable the creation of swap files. -- hlsearch = false: Disable highlighting of search matches. -- incsearch = true: Enable incremental search. -- updatetime = 50: Set the update time for asynchronous operations like completions. -- laststatus = 0: Hide the status line. -- signcolumn = "number": Display line numbers in the sign column. -- autoindent = true: Enable automatic indentation. -- clipboard = "unnamedplus": Use the system clipboard for copy-pasting. -- termguicolors = true: Enable 24-bit RGB color support in the terminal. -- fillchars = "eob: ": Customize end-of-buffer character. -- lazyredraw = false: Disable lazy redrawing for smoother experience. -- timeoutlen = 500: Set timeout for key sequences to 500ms. -- netrw_banner = 0: Disable Netrw banner. -- netrw_liststyle = 3: Use a tree-style layout for Netrw. -- netrw_altv = 0: Disable vertical splits for Netrw. -- netrw_winsize = 25: Set Netrw window size. -- netrw_browse_split = 4: Open Netrw in a horizontal split. -- rustfmt_autosave = 1: Enable automatic formatting for Rust files using rustfmt. -- mkdp_auto_start = 1: Automatically start Markdown Preview (for mkdp). -- vimtex_view_method = "zathura": Set PDF viewer to zathura for LaTeX files. -- vimtex_compiler_method = "latexmk": Use latexmk for compiling LaTeX files. -- vimtex_quickfix_mode = 0: Disable quickfix window for VimTeX. -- tex_conceal = "abdmg": Enable automatic concealment of LaTeX formatting. -- tex_flavor = "latex": Set the flavor of TeX to LaTeX. -- gitgutter_set_sign_backgrounds = 1: Enable background color for GitGutter signs. - -## Auto Commands and custom functions (api.nvim_create_autocmd) - -### Format on Save -- Formats the buffer using vim.lsp.buf.format before saving any file. - -### Run Prettier and Compile LaTeX on Save -- For JavaScript, TypeScript, CSS, HTML, YAML, Markdown, and JSON files, Prettier is run automatically after saving. Yes, I could use lsp features here but in my case this is the bulletproof setup. -- For LaTeX files (*.tex), VimtexCompile is triggered upon saving to compile the document.(bugged af) - -You can add anything you want. Just make sure it's on your system. - -### Auto-delete Netrw Hidden Buffers -- Automatically deletes hidden buffers when opening a Netrw window. This is quite helpful for the ToggleVExplorer function. - -### ToggleVExplorer -- Toggles the VExplorer window in Neovim. -- If the window is already open, it will be closed; if it is closed, it will be opened in the first window. - -## Plugin Management (require("lazy").setup) - -The configuration uses Lazy.nvim for plugin management. I've tried them all. This works the best for me. - -- airblade/vim-gitgutter: Displays Git changes in the gutter (added, modified, deleted lines). -- lervag/vimtex: Provides LaTeX support, including features like auto-compiling and PDF viewing. -- norcalli/nvim-colorizer.lua: Highlights color codes in files. -- nvim-treesitter/nvim-treesitter: Provides better syntax highlighting and tree-sitter integration. -- neovim/nvim-lspconfig: Set up language servers for autocompletion and LSP features. -- ms-jpq/coq_nvim: Provides autocompletion with COQ (a Neovim completion plugin). -- nvim-telescope/telescope.nvim: A fuzzy finder plugin for file searching and navigation. -- windwp/nvim-autopairs: Automatically closes pairs of parentheses, brackets, etc. - -## LSP (Language Server Protocol) Configuration - -### Rust Configuration (rust_analyzer) -- Configures rust_analyzer with specific settings: - - imports.granularity.group = "module": Organizes imports by module. - - cargo.buildScripts.enable = true: Enable build script support for Cargo. - - procMacro.enable = true: Enable procedural macro support. - -Each language server is set up using lspconfig, and the configuration is ensured with coq autocompletion. - -### Mason Setup -- mason.nvim: Automatically installs LSP servers(currently just rust_analyzer) and other tools. - -## Key Mappings (keymap.set) - -- e: Toggle the VExplorer window. -- z: Search and replace the word under the cursor in the entire buffer. -- a: Select the entire buffer. -- y: Replace the current line with cc (change the line). -- : Yank the current line to the clipboard. -- : Paste from the clipboard. -- : Undo the last change. -- J and K: Speed up moving the selected text block down or up in visual mode. -- f: Open Telescope's file finder. -- g: Open Telescope's live grep search. -- d: Go to definition (LSP feature). -- k: Show hover information (LSP feature). -- cgit v1.2.3