From e3ccb819a8839b822d94dfe4845da8c9c1ad81a6 Mon Sep 17 00:00:00 2001 From: Derek Taylor Date: Fri, 22 Jul 2022 20:22:32 -0500 Subject: [PATCH] Moving from Vimscript to Lua for Neovim config. --- .config/nvim/init.lua | 166 +++++++++++++++++++++++++++++ .config/nvim/init.vim | 243 ------------------------------------------ 2 files changed, 166 insertions(+), 243 deletions(-) create mode 100644 .config/nvim/init.lua delete mode 100644 .config/nvim/init.vim diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..1c206c8 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,166 @@ + +-- Config was built using the following config: +-- https://github.com/numToStr/dotfiles/tree/master/neovim/.config/nvim/ + +local g = vim.g +local o = vim.o +local A = vim.api + +-- cmd('syntax on') +-- vim.api.nvim_command('filetype plugin indent on') + +o.termguicolors = true +-- o.background = 'dark' + +-- Do not save when switching buffers +-- o.hidden = true + +-- Decrease update time +o.timeoutlen = 500 +o.updatetime = 200 + +-- Number of screen lines to keep above and below the cursor +o.scrolloff = 8 + +-- Better editor UI +o.number = true +o.numberwidth = 2 +o.relativenumber = true +o.signcolumn = 'yes' +o.cursorline = true + +-- Better editing experience +o.expandtab = true +o.smarttab = true +o.cindent = true +o.autoindent = true +o.wrap = true +o.textwidth = 300 +o.tabstop = 4 +o.shiftwidth = 4 +o.softtabstop = -1 -- If negative, shiftwidth value is used +o.list = true +o.listchars = 'trail:·,nbsp:◇,tab:→ ,extends:▸,precedes:◂' +-- o.listchars = 'eol:¬,space:·,lead: ,trail:·,nbsp:◇,tab:→-,extends:▸,precedes:◂,multispace:···⬝,leadmultispace:│ ,' +-- o.formatoptions = 'qrn1' + +-- Makes neovim and host OS clipboard play nicely with each other +o.clipboard = 'unnamedplus' + +-- Case insensitive searching UNLESS /C or capital in search +o.ignorecase = true +o.smartcase = true + +-- Undo and backup options +o.backup = false +o.writebackup = false +o.undofile = true +o.swapfile = false +-- o.backupdir = '/tmp/' +-- o.directory = '/tmp/' +-- o.undodir = '/tmp/' + +-- Remember 50 items in commandline history +o.history = 50 + +-- Better buffer splitting +o.splitright = true +o.splitbelow = true + +-- Preserve view while jumping +-- BUG This option causes an error! +-- o.jumpoptions = 'view' + +-- BUG: this won't update the search count after pressing `n` or `N` +-- When running macros and regexes on a large file, lazy redraw tells neovim/vim not to draw the screen +-- o.lazyredraw = true + +-- Better folds (don't fold by default) +-- o.foldmethod = 'indent' +-- o.foldlevelstart = 99 +-- o.foldnestmax = 3 +-- o.foldminlines = 1 + +-- Map to space +g.mapleader = ' ' +g.maplocalleader = ' ' + +require('lualine').setup() + +-- COLORSCHEMES +-- Uncomment just ONE of the following colorschemes! +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-dracula') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-gruvbox-dark-medium') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-monokai') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-nord') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-oceanicnext') +local ok, _ = pcall(vim.cmd, 'colorscheme base16-onedark') +-- local ok, _ = pcall(vim.cmd, 'colorscheme palenight') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-solarized-dark') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-solarized-light') +-- local ok, _ = pcall(vim.cmd, 'colorscheme base16-tomorrow-night') + + +-- Highlight the region on yank +A.nvim_create_autocmd('TextYankPost', { + group = num_au, + callback = function() + vim.highlight.on_yank({ higroup = 'Visual', timeout = 120 }) + end, +}) + +-- KEYBINDINGS +local function map(m, k, v) + vim.keymap.set(m, k, v, { silent = true }) +end + +-- Mimic shell movements +map('i', '', 'A') +map('i', '', 'I') + + +-- PLUGINS +-- Only required if you have packer configured as `opt` +-- vim.cmd [[packadd packer.nvim]] +return require('packer').startup(function() + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + -- A better status line + use { + 'nvim-lualine/lualine.nvim', + requires = { 'kyazdani42/nvim-web-devicons', opt = true } + } + + -- File management -- + use 'vifm/vifm.vim' + use 'scrooloose/nerdtree' + use 'tiagofumo/vim-nerdtree-syntax-highlight' + use 'ryanoasis/vim-devicons' + + -- Productivity -- + use 'vimwiki/vimwiki' + use 'jreybert/vimagit' + + -- Tim Pope Plugins -- + use 'tpope/vim-surround' + + -- Syntax Highlighting and Colors -- + use 'PotatoesMaster/i3-vim-syntax' + use 'kovetskiy/sxhkd-vim' + use 'vim-python/python-syntax' + use 'ap/vim-css-color' + + -- Junegunn Choi Plugins -- + use 'junegunn/goyo.vim' + use 'junegunn/limelight.vim' + use 'junegunn/vim-emoji' + + -- Colorschemes + use 'RRethy/nvim-base16' + use 'kyazdani42/nvim-palenight.lua' + + -- Other stuff + use 'frazrepo/vim-rainbow' +end) + diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 40cd6f7..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,243 +0,0 @@ -" ____ _____ -" | _ \_ _| Derek Taylor (DistroTube) -" | | | || | http://www.youtube.com/c/DistroTube -" | |_| || | http://www.gitlab.com/dwt1/ -" |____/ |_| -" -" A customized init.vim for neovim (https://neovim.io/) - -set nocompatible " be iMproved, required -filetype off " required - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Vundle For Managing Plugins -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - -call plug#begin('~/.vim/plugged') - -"{{ The Basics }} - Plug 'gmarik/Vundle.vim' " Vundle - Plug 'itchyny/lightline.vim' " Lightline statusbar - Plug 'suan/vim-instant-markdown', {'rtp': 'after'} " Markdown Preview - Plug 'frazrepo/vim-rainbow' -"{{ File management }} - Plug 'vifm/vifm.vim' " Vifm - Plug 'scrooloose/nerdtree' " Nerdtree - Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Highlighting Nerdtree - Plug 'ryanoasis/vim-devicons' " Icons for Nerdtree -"{{ Productivity }} - Plug 'vimwiki/vimwiki' " VimWiki - Plug 'jreybert/vimagit' " Magit-like plugin for vim -"{{ Tim Pope Plugins }} - Plug 'tpope/vim-surround' " Change surrounding marks -"{{ Syntax Highlighting and Colors }} - Plug 'PotatoesMaster/i3-vim-syntax' " i3 config highlighting - Plug 'kovetskiy/sxhkd-vim' " sxhkd highlighting - Plug 'vim-python/python-syntax' " Python highlighting - Plug 'ap/vim-css-color' " Color previews for CSS -"{{ Junegunn Choi Plugins }} - Plug 'junegunn/goyo.vim' " Distraction-free viewing - Plug 'junegunn/limelight.vim' " Hyperfocus on a range - Plug 'junegunn/vim-emoji' " Vim needs emojis! - -call plug#end() - -filetype plugin indent on " required -" To ignore plugin indent changes, instead use: -" filetype plugin on - -" Brief help -" :PluginList - lists configured plugins -" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate -" :PluginSearch foo - searches for foo; append `!` to refresh local cache -" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal - -" see :h vundle for more details or wiki for FAQ -" Put your non-Plugin stuff after this line - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => General Settings -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set path+=** " Searches current directory recursively. -set wildmenu " Display all matches when tab complete. -set incsearch " Incremental search -set hidden " Needed to keep multiple buffers open -set nobackup " No auto backups -set noswapfile " No swap -set t_Co=256 " Set if term supports 256 colors. -set number relativenumber " Display line numbers -set clipboard=unnamedplus " Copy/paste between vim and other programs. -syntax enable -let g:rehash256 = 1 - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Remap Keys -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Remap ESC to ii -:imap ii - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Status Line -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" The lightline.vim theme -let g:lightline = { - \ 'colorscheme': 'darcula', - \ } - -" Always show statusline -set laststatus=2 - -" Uncomment to prevent non-normal modes showing in powerline and below powerline. -set noshowmode - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Text, tab and indent related -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set expandtab " Use spaces instead of tabs. -set smarttab " Be smart using tabs ;) -set shiftwidth=4 " One tab == four spaces. -set tabstop=4 " One tab == four spaces. - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => NERDTree -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Uncomment to autostart the NERDTree -" autocmd vimenter * NERDTree -map :NERDTreeToggle -let g:NERDTreeDirArrowExpandable = '►' -let g:NERDTreeDirArrowCollapsible = '▼' -let NERDTreeShowLineNumbers=1 -let NERDTreeShowHidden=1 -let NERDTreeMinimalUI = 1 -let g:NERDTreeWinSize=38 - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Colors and Theming -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -highlight Normal guifg=#dfdfdf ctermfg=15 guibg=#282c34 ctermbg=none cterm=none -highlight LineNr guifg=#5b6268 ctermfg=8 guibg=#282c34 ctermbg=none cterm=none -highlight CursorLineNr guifg=#202328 ctermfg=7 guifg=#5b6268 ctermbg=8 cterm=none -highlight VertSplit guifg=#1c1f24 ctermfg=0 guifg=#5b6268 ctermbg=8 cterm=none -highlight Statement guifg=#98be65 ctermfg=2 guibg=none ctermbg=none cterm=none -highlight Directory guifg=#51afef ctermfg=4 guibg=none ctermbg=none cterm=none -highlight StatusLine guifg=#202328 ctermfg=7 guifg=#5b6268 ctermbg=8 cterm=none -highlight StatusLineNC guifg=#202328 ctermfg=7 guifg=#5b6268 ctermbg=8 cterm=none -highlight NERDTreeClosable guifg=#98be65 ctermfg=2 -highlight NERDTreeOpenable guifg=#5b6268 ctermfg=8 -highlight Comment guifg=#51afef ctermfg=4 guibg=none ctermbg=none cterm=italic -highlight Constant guifg=#3071db ctermfg=12 guibg=none ctermbg=none cterm=none -highlight Special guifg=#51afef ctermfg=4 guibg=none ctermbg=none cterm=none -highlight Identifier guifg=#5699af ctermfg=6 guibg=none ctermbg=none cterm=none -highlight PreProc guifg=#c678dd ctermfg=5 guibg=none ctermbg=none cterm=none -highlight String guifg=#3071db ctermfg=12 guibg=none ctermbg=none cterm=none -highlight Number guifg=#ff6c6b ctermfg=1 guibg=none ctermbg=none cterm=none -highlight Function guifg=#ff6c6b ctermfg=1 guibg=none ctermbg=none cterm=none -highlight Visual guifg=#dfdfdf ctermfg=1 guibg=#1c1f24 ctermbg=none cterm=none - -" highlight WildMenu ctermfg=0 ctermbg=80 cterm=none -" highlight Folded ctermfg=103 ctermbg=234 cterm=none -" highlight FoldColumn ctermfg=103 ctermbg=234 cterm=none -" highlight DiffAdd ctermfg=none ctermbg=23 cterm=none -" highlight DiffChange ctermfg=none ctermbg=56 cterm=none -" highlight DiffDelete ctermfg=168 ctermbg=96 cterm=none -" highlight DiffText ctermfg=0 ctermbg=80 cterm=none -" highlight SignColumn ctermfg=244 ctermbg=235 cterm=none -" highlight Conceal ctermfg=251 ctermbg=none cterm=none -" highlight SpellBad ctermfg=168 ctermbg=none cterm=underline -" highlight SpellCap ctermfg=80 ctermbg=none cterm=underline -" highlight SpellRare ctermfg=121 ctermbg=none cterm=underline -" highlight SpellLocal ctermfg=186 ctermbg=none cterm=underline -" highlight Pmenu ctermfg=251 ctermbg=234 cterm=none -" highlight PmenuSel ctermfg=0 ctermbg=111 cterm=none -" highlight PmenuSbar ctermfg=206 ctermbg=235 cterm=none -" highlight PmenuThumb ctermfg=235 ctermbg=206 cterm=none -" highlight TabLine ctermfg=244 ctermbg=234 cterm=none -" highlight TablineSel ctermfg=0 ctermbg=247 cterm=none -" highlight TablineFill ctermfg=244 ctermbg=234 cterm=none -" highlight CursorColumn ctermfg=none ctermbg=236 cterm=none -" highlight CursorLine ctermfg=none ctermbg=236 cterm=none -" highlight ColorColumn ctermfg=none ctermbg=236 cterm=none -" highlight Cursor ctermfg=0 ctermbg=5 cterm=none -" highlight htmlEndTag ctermfg=114 ctermbg=none cterm=none -" highlight xmlEndTag ctermfg=114 ctermbg=none cterm=none - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Vifm -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -map vv :Vifm -map vs :VsplitVifm -map sp :SplitVifm -map dv :DiffVifm -map tv :TabVifm - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => VimWiki -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:vimwiki_list = [{'path': '~/vimwiki/', - \ 'syntax': 'markdown', 'ext': '.md'}] - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Vim-Instant-Markdown -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:instant_markdown_autostart = 0 " Turns off auto preview -let g:instant_markdown_browser = "surf" " Uses surf for preview -map md :InstantMarkdownPreview " Previews .md file -map ms :InstantMarkdownStop " Kills the preview - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Open terminal inside Vim -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -map tt :vnew term://fish - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Mouse Scrolling -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set mouse=nicr -set mouse=a - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Fix Sizing Bug With Alacritty Terminal -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -autocmd VimEnter * :silent exec "!kill -s SIGWINCH $PPID" - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Splits and Tabbed Files -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set splitbelow splitright - -" Remap splits navigation to just CTRL + hjkl -nnoremap h -nnoremap j -nnoremap k -nnoremap l - -" Make adjusing split sizes a bit more friendly -noremap :vertical resize +3 -noremap :vertical resize -3 -noremap :resize +3 -noremap :resize -3 - -" Change 2 split windows from vert to horiz or horiz to vert -map th tH -map tk tK - -" Removes pipes | that act as seperators on splits -set fillchars+=vert:\ - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Other Stuff -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:python_highlight_all = 1 - -au! BufRead,BufWrite,BufWritePost,BufNewFile *.org -au BufEnter *.org call org#SetOrgFileType() - -set guioptions-=m "remove menu bar -set guioptions-=T "remove toolbar -set guioptions-=r "remove right-hand scroll bar -set guioptions-=L "remove left-hand scroll bar -set guifont=SauceCodePro\ Nerd\ Font:h15 -"set guifont=Mononoki\ Nerd\ Font:h15 -"set guifont=JetBrains\ Mono:h15 - -"let g:neovide_transparency=0.95