diff --git a/.gitignore.orig b/.gitignore.orig deleted file mode 100644 index 35fe8cd..0000000 --- a/.gitignore.orig +++ /dev/null @@ -1,20 +0,0 @@ -# `vim-plug` plugins -plugged/* -autoload - -# netrw -.netrwhist - -<<<<<<< HEAD -# spell *.spl -======= -# spell -*.spl ->>>>>>> c47fcd7 (gitignore: try to improve the spell rule) -spell/* - -tags -test.sh -.luarc.json -nvim -lazy-lock.json diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 9cf1062..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,19 +0,0 @@ -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 55529f4..3ca00b5 100644 --- a/README.md +++ b/README.md @@ -1,146 +1,14 @@ -# kickstart.nvim +--- +title: My neovim setup +date: 2024-05-16T12:16:06+0200 +id: 20240516121606 +tags: [neovim, editor, configuration, README] +--- -### Introduction +# [Neovim setup][1] -A starting point for Neovim that is: +Missing documentation. :-P -* Small -* Single-file (with examples of moving to multi-file) -* Documented -* Modular + -This repo is meant to be used as by **YOU** to begin your Neovim journey; remove the things you don't use and add what you miss. - -Kickstart.nvim targets *only* the latest ['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest ['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim. If you are experiencing issues, please make sure you have the latest versions. - -Distribution Alternatives: -- [LazyVim](https://www.lazyvim.org/): A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here) - -### Installation - -* Backup your previous configuration (if any exists) - -### Archive Installation -* On the home/landing page for the project find the blue "<> CODE" button click it and select Local > Download ZIP. -* Extract the archive to: - `~/.config/nvim` (Linux) - `~/.config/nvim` (MacOS) - `%userprofile%\AppData\Local\nvim-data\` (Windows) -* Ensure your extraction method did not extract with a parent folder. For example in ~/.config/nvim you should have init.lua not another folder called kickstart.nvim. - -### Git Clone Installation -* From a terminal cd/dir to: - `~/.config/nvim` (Linux) - `~/.config/nvim` (MacOS) - `%userprofile%\AppData\Local\nvim\` (Windows) - -* run: `git clone https://github.com/nvim-lua/kickstart.nvim.git ~/.config/nvim` OR: `gh repo clone nvim-lua/kickstart.nvim` -* Run Neovim (from terminal or shortcut) and allow lazy.nvim to download files and set up the basics. -* Once the setup is complete, restart Neovim. -* **You're ready to go!** - -* (Recommended/Optional) Fork this repo (so that you have your own copy that you can modify). -* Clone the kickstart repo into `$HOME/.config/nvim/` (Linux/Mac) or `%userprofile%\AppData\Local\nvim-data\` (Windows) - * If you don't want to include it as a git repo, you can just clone it and then move the files to this location - -Additional system requirements: -- Make sure to review the readmes of the plugins if you are experiencing errors. In particular: - - [ripgrep](https://github.com/BurntSushi/ripgrep#installation) is required for multiple [telescope](https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies) pickers. -- See [Windows Installation](#Windows-Installation) if you have trouble with `telescope-fzf-native` - -### Configuration And Extension - -* Inside of your copy, feel free to modify any file you like! It's your copy! -* Feel free to change any of the default options in `init.lua` to better suit your needs. -* For adding plugins, there are 3 primary options: - * Add new configuration in `lua/custom/plugins/*` files, which will be auto sourced using `lazy.nvim` - * Modify `init.lua` with additional plugins. - * Include the `lua/kickstart/plugins/*` files in your configuration. - -You can also merge updates/changes from the repo back into your fork, to keep up-to-date with any changes for the default configuration. - -#### Example: Adding an autopairs plugin - -In the file: `lua/custom/plugins/autopairs.lua`, add: - -```lua --- File: lua/custom/plugins/autopairs.lua - -return { - "windwp/nvim-autopairs", - -- Optional dependency - dependencies = { 'hrsh7th/nvim-cmp' }, - config = function() - require("nvim-autopairs").setup {} - -- If you want to automatically add `(` after selecting a function or method - local cmp_autopairs = require('nvim-autopairs.completion.cmp') - local cmp = require('cmp') - cmp.event:on( - 'confirm_done', - cmp_autopairs.on_confirm_done() - ) - end, -} -``` - - -This will automatically install [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) and enable it on startup. For more information, see documentation for [lazy.nvim](https://github.com/folke/lazy.nvim). - -#### Example: Adding a file tree plugin - -In the file: `lua/custom/plugins/filetree.lua`, add: - -```lua --- Unless you are still migrating, remove the deprecated commands from v1.x -vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]]) - -return { - "nvim-neo-tree/neo-tree.nvim", - version = "*", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended - "MunifTanjim/nui.nvim", - }, - config = function () - require('neo-tree').setup {} - end, -} -``` - -This will install the tree plugin and add the command `:Neotree` for you. You can explore the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) for more information. - -### Contribution - -Pull-requests are welcome. The goal of this repo is not to create a Neovim configuration framework, but to offer a starting template that shows, by example, available features in Neovim. Some things that will not be included: - -* Custom language server configuration (null-ls templates) -* Theming beyond a default colorscheme necessary for LSP highlight groups - -Each PR, especially those which increase the line count, should have a description as to why the PR is necessary. - -### FAQ - -* What should I do if I already have a pre-existing neovim configuration? - * You should back it up, then delete all files associated with it. - * This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/` - * You may also want to look at the [migration guide for lazy.nvim](https://github.com/folke/lazy.nvim#-migration-guide) -* What if I want to "uninstall" this configuration: - * See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information -* Are there any cool videos about this plugin? - * Current iteration of kickstart (coming soon) - * Here is one about the previous iteration of kickstart: [video introduction to Kickstart.nvim](https://youtu.be/stqUbv-5u2s). Note the install via init.lua no longer works as specified. Please follow the install instructions in this file instead as they're up to date. - -### Windows Installation - -Installation may require installing build tools, and updating the run command for `telescope-fzf-native` - -See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation) - -This requires: - -- Install CMake, and the Microsoft C++ Build Tools on Windows - -```lua -{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } -``` +[1]: ./README.md diff --git a/init.vim.save b/init.vim.save deleted file mode 100644 index 6bd668b..0000000 --- a/init.vim.save +++ /dev/null @@ -1,289 +0,0 @@ -" plugins (vim-plug) -call plug#begin('~/.config/nvim/plugged') -Plug 'sheerun/vim-polyglot' " Many languages syntax support. Should be on top to be overwritten by pandoc -Plug 'tpope/vim-sensible' " Default sensible settings -Plug 'vim-pandoc/vim-pandoc' " Pandoc support -Plug 'vim-pandoc/vim-pandoc-syntax' " Markdown syntax support -Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' } " Markdown preview -Plug 'jakewvincent/mkdnflow.nvim' " Create, follow, display links in a directory of md files -Plug 'dhruvasagar/vim-table-mode', { 'on': 'TableModeEnable' } " Helper for table in markdown -Plug 'junegunn/goyo.vim', { 'on': 'Goyo' } " Distraction free mode for writing -Plug 'junegunn/limelight.vim', { 'on': 'Goyo' } " Dime the color of the text that is not being updated -Plug 'lervag/vimtex' " Filetype and syntax plugin for LaTeX files -Plug 'dpelle/vim-Grammalecte' " French ortho/grammar spelling -Plug 'arcticicestudio/nord-vim' " Nord color scheme -Plug 'sonph/onehalf', { 'rtp': 'vim' } " OneHalf color scheme -Plug 'sainnhe/edge' " Edge color schemes -Plug 'vim-airline/vim-airline' " Fancy bottom line in vim/neovim -Plug 'vim-airline/vim-airline-themes' " Themes for vim-airlines -Plug 'jiangmiao/auto-pairs' " Pairs autocomplete -Plug 'tpope/vim-surround' " To manipulate surroundings -Plug 'tpope/vim-unimpaired' " Toggle shortcut -Plug 'tpope/vim-commentary' " Easy commenting -Plug 'tpope/vim-repeat' " Add repeat support for plugin mapping -Plug 'osyo-manga/vim-over', { 'on': 'OverCommandLine' } " Search Multiple Highlighting -Plug 'scrooloose/nerdtree' " Side window files navigation -Plug 'tpope/vim-fugitive' " Git commands, useful for other plugins such as nerdtree or fzf -Plug 'Xuyuanp/nerdtree-git-plugin' " To see new or modified files in the nerdtree window -Plug 'https://github.com/editorconfig/editorconfig-vim' " Support of '.editorconfig' files -Plug 'shmargum/vim-sass-colors' " Highlight sass/scss/less/css colors and color variables -" Auto completion -Plug 'neoclide/coc.nvim', {'branch': 'release'} -Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build' } "Python, using jedi -Plug 'stsewd/isort.nvim', { 'do': ':UpdateRemotePlugins' } -Plug 'vitalk/vim-simple-todo' " Allow to manage todo list easily -" Search -Plug 'jremmen/vim-ripgrep' " Use ripgrep as vimgrep -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " Fuzzy search, ensure fzf is fresh installed -Plug 'junegunn/fzf.vim' " fzf for vim/neovim -Plug 'stsewd/fzf-checkout.vim' " Fuzzy search in git branches -Plug 'ryanoasis/vim-devicons' " Add icons to plugins -Plug 'chrisbra/csv.vim' " To diplay and manage CSV files -Plug 'akinsho/toggleterm.nvim', {'tag' : '2.*'} -call plug#end() - -" Format indentation -if has("autocmd") - filetype plugin indent on -endif - -" add some tags for html indentations -let g:html_indent_inctags="html,body,head,tbody" - -set smartindent -set tabstop=4 -set expandtab -set softtabstop=4 -set shiftwidth=4 -set showcmd " Show (partial) command in status line. -set showmode " Show indication of having changed modes -set showmatch " Show matching brackets. -set ignorecase " Do case insensitive matching -set smartcase " Do smart case matching -let g:rg_highlight='true' " Activate ripgrep Highlighting -nnoremap :nohlsearch " set C-l to :nohlsearch -set autowrite " Automatically save before commands like :next and :make -set hidden " Hide buffers when they are abandoned -set mouse=a " Enable mouse usage (all modes) -set linebreak " Line wrap -set tw=79 " Lines longer than 79 chars will be wrapped -autocmd FileType gitcommit set textwidth=72 " Wrap lines longer than 72 chars for git messages -set colorcolumn=+1 " Colors the tw+1 column -autocmd FileType gitcommit set colorcolumn+=51 " Add a colored column at 51 chars for git message titles -set number " Line numbering -set cursorline " Color the cursor line -set modeline " Support modelines -set termguicolors - -" Do not keep history when opening files on autofs mounted directories -set shada+=r/home/igor/net - -" Terminal buffer options -" Start terminal buffer without line numbering -au TermOpen * setlocal listchars= nonumber norelativenumber - -" Spelling activated, by default for French and English -set spell -set spelllang=fr,en -" Specific spelling configuration for git commit messages -autocmd FileType gitcommit setlocal spell -autocmd FileType gitcommit setlocal spelllang=en -" Path for grammalecte-cli to get grammar check in French -let g:grammalecte_cli_py='/usr/bin/grammalecte-cli' - -" ######################################### -" ######################################### -" Status line options -set statusline^=%{coc#status()} - -" ######################################### -" ######################################### -" Fold -set foldmethod=syntax -set foldlevel=1 - -" ######################################### -" ######################################### -" Default filetype configuration - -" Markdown -autocmd FileType pandoc set tabstop=2 -autocmd FileType pandoc set softtabstop=2 -autocmd FileType pandoc set shiftwidth=2 - -" JSON -" Consider `.jsonld` as JSON -autocmd BufNewFile,BufRead *.jsonld set filetype=json -autocmd FileType json setlocal foldmethod=syntax -autocmd FileType json set foldlevel=2 -autocmd FileType json set tabstop=2 -autocmd FileType json set softtabstop=2 -au FileType json set shiftwidth=2 - -" HTML -autocmd FileType html set tabstop=2 -autocmd FileType html set softtabstop=2 -autocmd FileType html set shiftwidth=2 -au FileType xml setlocal foldmethod=indent -autocmd FileType xml set foldlevel=2 - -" XML -let g:xml_syntax_folding=3 -au FileType xml setlocal foldmethod=syntax -autocmd FileType xml set foldlevel=1 - -" Use the system clipboard -set clipboard+=unnamedplus - -" Airline -let g:airline_powerline_fonts=1 -let g:airline#extensions#wordcount#filetypes='pandoc\|text\|' "Add support when pandoc is activated -let g:airline_theme='edge' - -" Vim-table-mode. Set the table separator -let g:table_mode_corner='|' - -" NERDTree. By default, NERDTree is open when no file is provided when launching vim/neovim -" autocmd StdinReadPre * let s:std_in=1 -" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif -let g:NERDTreeWinSize=40 - -" vim-json, don't conceal -let g:vim_json_syntax_conceal=0 - -" Pandoc -" Autoformatting with hardwrap -let g:pandoc#formatting#mode="hA" -" ctrl+s switch to softwrap -nnoremap :call pandoc#formatting#UseSoftWraps() -" ctrl+h switch to hardwrap -nnoremap :call pandoc#formatting#UseHardWraps() -" ctrl+t toggle autoformat (mainly to deactivate it when necessary) -nnoremap :call pandoc#formatting#ToggleAutoformat() -let g:mkdp_filetypes = ['markdown', 'pandoc', 'pandoc.markdown'] - -" ######################################### -" ######################################### -" autocompletion, mainly coc configuration -" as inspired from the project README - -" Give more space for displaying messages -set cmdheight=2 -" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable -" delays and poor user experience -set updatetime=300 - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved. -if has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation. -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window. -nnoremap K :call show_documentation() - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') - endif -endfunction - -" Install missing coc extensions -let g:coc_global_extensions = ['coc-html', 'coc-json', 'coc-css', 'coc-markdownlint', 'coc-git', 'coc-vimtex', 'coc-yaml', 'coc-esbonio'] -autocmd FileType scss setl iskeyword+=@-@ " Add @ to iskeyword option -let g:coc_filetype_map = { 'pandoc': 'markdown' } " Allow markdownlint to recognized pandoc filetype - -" Set the Semantic Menu highlight group -hi CocMenuSel ctermbg=252 - -" ######################################### -" ######################################### -" Python provider in a pyenv -let g:python3_host_prog='$HOME/.pyenv/versions/neovim3/bin/python' - -" Imports sorting -let g:isort_command='isort' - -" ######################################### -" ######################################### -" Vimtex configuration -let g:vimtex_compiler_method = 'tectonic' -let g:vimtex_compiler_tectonic = {} - -" ######################################### -" ######################################### -" Key bindings for FZF -nnoremap gf :GFiles -nnoremap gs :GFiles? -nnoremap h :History -nnoremap hc :History: -nnoremap hs :History/ -nnoremap l :Lines -nnoremap bl :BLines -nnoremap c :Commits -nnoremap bc :BCommits -nnoremap ? :Helptags - -" ######################################### -" ######################################### -let g:goyo_width=85 - -" Integrate Limelight into Goyo -autocmd! User GoyoEnter Limelight -autocmd! User GoyoLeave Limelight! - -" ######################################### -" ######################################### -" Syntax coloration and color theme -syntax enable -set background=dark -" let g:edge_style = "light" -colorscheme nord - -" ######################################### -" ######################################### -" Snippets -autocmd BufNewFile *.html 0r ~/.config/nvim/snippets/boilerplate.html -autocmd BufNewFile *.md 0r ~/.config/nvim/snippets/template.md - -" ######################################### -" ######################################### -" Terminal: use zsh -set shell=/usr/bin/zsh -lua require("toggleterm").setup() - -" ######################################### -" ######################################### -" mkdnflow configuration -lua <