summary refs log tree commit diff
path: root/.vim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/init.lua')
-rw-r--r--.vim/init.lua83
1 files changed, 51 insertions, 32 deletions
diff --git a/.vim/init.lua b/.vim/init.lua
index 62cb9a3..e25acf7 100644
--- a/.vim/init.lua
+++ b/.vim/init.lua
@@ -3,6 +3,9 @@ local fn = vim.fn
 local g = vim.g
 local o = vim.o
 
+local nnoremap = require('astronauta.keymap').nnoremap
+local inoremap = require('astronauta.keymap').tnoremap
+
 g.mapleader = ' ' -- <leader> key to <space>
 g.maplocalleader = '\\'
 
@@ -12,6 +15,7 @@ local u = require('utils')
 
 -- OPTIONS -- {{{
 cmd('set clipboard+=unnamedplus')
+u.opt('o', 'exrc', true)
 u.opt('o', 'title', true)
 u.opt('o', 'shiftround', true)
 u.opt('o', 'termguicolors', true)
@@ -41,36 +45,45 @@ u.opt('o', 'showcmd', false)
 u.opt('o', 'laststatus', 2)
 u.opt('o', 'ruler', true)
 u.opt('o', 'mouse', 'a')
-u.opt('o', 'spell', false)
+u.opt('o', 'spell', true)
 u.opt('o', 'lazyredraw', true)
 u.opt('o', 'backspace', 'indent,eol,start')
 u.opt('o', 'undolevels', 1000)
 u.opt('o', 'updatetime', 300)
 u.opt('o', 'signcolumn', 'yes')
+
+u.opt('w', 'conceallevel', 2)
+u.opt('w', 'concealcursor', 'cv')
+
+u.opt('o', 'expandtab', true)
 -- }}}
 
 -- COLORS -- {{{
-g.nihoncolors_transparent_background = true
-cmd('colorscheme nihoncolors')
+-- g.nihoncolors_transparent_background = true
+cmd('colorscheme lush')
 -- }}}
 
 -- KEY BINDS -- {{{
-u.map('n', 'Q', ':quitall', { silent = false })
-u.map('n', 'gb', ':bnext<CR>')
-u.map('n', 'gB', ':bprevious<CR>')
+nnoremap { 'Q', function() cmd [[ quitall ]] end, silent = false }
+nnoremap { 'gb', function() cmd [[ bnext ]] end }
+nnoremap { 'gB', function() cmd [[ bprevious ]] end }
+
 -- terminal
 u.map('t', '<ESC>', '<C-\\><C-n>')
 u.map('t', '<Leader>qq', '<C-\\><C-n>:bdelete!<CR>')
--- completion
-u.map('i', '<C-n>', 'pumvisible() ? "\\<C-n>" : completion#trigger_completion()', { expr = true })
-u.map('i', '<C-p>', 'pumvisible() ? "\\<C-n>" : completion#trigger_completion()', { expr = true })
-u.map('i', '<C-j>', '<cmd>lua require("completion.source").nextCompletion()<CR>')
-u.map('i', '<C-k>', '<cmd>lua require("completion.source").prevCompletion()<CR>')
+
+nnoremap { 'gf', function() require('misc').open_under_cursor('open') end }
+nnoremap { 'gF', function() require('misc').open_under_cursor() end }
+nnoremap { 'gx', function() require('misc').open_under_cursor('url-launcher') end }
+nnoremap { 'gGw', function() require('misc').word_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end }
+nnoremap { 'gGe', function() require('misc').expr_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end }
+nnoremap { 'gGf', function() require('misc').file_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end }
 -- }}}
 
 -- AUTO GROUPS -- {{{
-u.augroup('yank_highlight', {{'TextYankPost', '*', 'silent! lua require("vim.highlight").on_yank()'}})
-u.augroup('diagnostics', {{'CursorHold', '*', 'lua vim.lsp.diagnostic.show_line_diagnostics()'}})
+u.augroup2 {
+  yank_highlight = {{ 'TextYankPost', '*', 'silent! lua require("vim.highlight").on_yank()' }}
+}
 -- }}}
 
 -- USER COMMANDS -- {{{
@@ -82,26 +95,32 @@ u.def('SortLine', 'call setline(".", join(sort(split(getline("."), " ")), " "))'
 vim.api.nvim_command('hi StatusLineInsert guifg=#00ffff guibg=None')
 vim.api.nvim_command('hi StatusLineCommand guifg=#ff3300 guibg=None')
 statusline = function()
-	local sl = ''
-	-- left
-	sl = sl .. statusline_color(vim.fn.mode())
-	sl = sl .. [[ ⢷ %<%F %-m %-r ]]
-	-- right
-	sl = sl .. [[ %=  %l:%v %y ]]
-	return sl
+  local sl = ''
+  -- left
+  sl = sl .. statusline_color(vim.fn.mode())
+  sl = sl .. [[ ⢷ %<%F %-m %-r ]]
+  -- right
+  sl = sl .. [[ %=  %l:%v %y ]]
+  return sl
 end
 statusline_color = function(mode)
-	if mode == 'i' then
-		return '%#StatusLineInsert#'
-	elseif mode == 'c' then
-		return '%#StatusLineCommand#'
-	elseif mode == 'v' or mode == 'V' or mode == '' then
-		return '%#Visual#'
-	elseif mode == 'R' or mode == 'Rv' then
-		return '%1*'
-		-- return '%#Include#'
-	else
-		return '%1*'
-	end
+  if mode == 'i' then
+    return '%#StatusLineInsert#'
+  elseif mode == 'c' then
+    return '%#StatusLineCommand#'
+  elseif mode == 'v' or mode == 'V' or mode == '' then
+    return '%#Visual#'
+  elseif mode == 'R' or mode == 'Rv' then
+    return '%1*'
+    -- return '%#Include#'
+  else
+    return '%1*'
+  end
 end
 -- }}}
+
+-- source .nvimrc if it exists
+local local_vimrc = vim.fn.getcwd()..'/.nvimrc'
+if vim.loop.fs_stat(local_vimrc) then
+  vim.cmd('source '..local_vimrc)
+end