Moving from Vimscript to Lua for Neovim config.
This commit is contained in:
parent
6b29c9e941
commit
e3ccb819a8
|
@ -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 <leader> 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', '<C-E>', '<ESC>A')
|
||||
map('i', '<C-A>', '<ESC>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)
|
||||
|
|
@ -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 <Esc>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" => 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 <C-n> :NERDTreeToggle<CR>
|
||||
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 <Leader>vv :Vifm<CR>
|
||||
map <Leader>vs :VsplitVifm<CR>
|
||||
map <Leader>sp :SplitVifm<CR>
|
||||
map <Leader>dv :DiffVifm<CR>
|
||||
map <Leader>tv :TabVifm<CR>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" => 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 <Leader>md :InstantMarkdownPreview<CR> " Previews .md file
|
||||
map <Leader>ms :InstantMarkdownStop<CR> " Kills the preview
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" => Open terminal inside Vim
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
map <Leader>tt :vnew term://fish<CR>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" => 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 <C-h> <C-w>h
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-l> <C-w>l
|
||||
|
||||
" Make adjusing split sizes a bit more friendly
|
||||
noremap <silent> <C-Left> :vertical resize +3<CR>
|
||||
noremap <silent> <C-Right> :vertical resize -3<CR>
|
||||
noremap <silent> <C-Up> :resize +3<CR>
|
||||
noremap <silent> <C-Down> :resize -3<CR>
|
||||
|
||||
" Change 2 split windows from vert to horiz or horiz to vert
|
||||
map <Leader>th <C-w>t<C-w>H
|
||||
map <Leader>tk <C-w>t<C-w>K
|
||||
|
||||
" 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
|
Loading…
Reference in New Issue