From ce3499096aaf5e54830b99f64ecf159e9809c644 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Tue, 18 Jul 2023 21:25:13 +0200 Subject: Replace vimscript config with lua --- config/nvim/init.lua | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 config/nvim/init.lua (limited to 'config/nvim/init.lua') diff --git a/config/nvim/init.lua b/config/nvim/init.lua new file mode 100644 index 0000000..02f5bd5 --- /dev/null +++ b/config/nvim/init.lua @@ -0,0 +1,127 @@ +------------------------------------------------------------------------------- +-- Style +------------------------------------------------------------------------------- +-- Editor Style +vim.opt.number = true -- Show number column +vim.opt.wrap = false -- Don't wrap text +vim.opt.list = true -- Display tabs and trailing space +vim.opt.colorcolumn='80,150' -- Show color columns + +-- Color +vim.opt.termguicolors = true +vim.cmd.color('rbdr') + +-- Tab Style (Always override with editorconfig) +vim.opt.tabstop = 2 -- 2 Spaces per tab +vim.opt.shiftwidth = 2 -- Spaces used in Autoindent +vim.opt.softtabstop = 2 -- Spaces used when soft tabbing +vim.opt.expandtab = true -- Always use spaces + +------------------------------------------------------------------------------- +-- Behavior +------------------------------------------------------------------------------- +-- Search Behavior +vim.opt.ignorecase = true -- Ignore case when searching +vim.opt.smartcase = true -- Unless we use both cases in search + +-- Autocomplete Behavior +vim.opt.wildmode = 'list:longest,list:full' -- Autocomplete common matching string + -- first, and then the full match. + +-- Folding Behavior +vim.opt.foldmethod = 'syntax' -- Use syntax highlight to define folds +vim.opt.foldnestmax = 10 -- Max 10 folds +vim.opt.foldlevelstart = 99 -- Start with all folds open + +-- Relative Number Behavior +vim.api.nvim_create_autocmd({'FocusLost', 'InsertEnter'}, { + pattern = '*', + callback = function () vim.opt.relativenumber = false end, +}) +vim.api.nvim_create_autocmd({'InsertLeave', 'CursorMoved'}, { + pattern = '*', + callback = function () vim.opt.relativenumber = true end, +}) + +vim.keymap.set('n', '', function() + vim.opt.relativenumber = not vim.opt.relativenumber +end) + +-- Move lines / blocks up and down using Ctrl + Shift +vim.keymap.set('n', '', ':m .+1==') +vim.keymap.set('n', '', ':m .-2==') +vim.keymap.set('i', '', ':m .+1==gi') +vim.keymap.set('i', '', ':m .-2==gi') +vim.keymap.set('v', '', ':m \'>+1gv=gv') +vim.keymap.set('v', '', ':m \'<-2gv=gv') + +------------------------------------------------------------------------------- +-- File Specific Behavior +------------------------------------------------------------------------------- +-- Makefiles +vim.api.nvim_create_autocmd({'FileType'}, { + pattern = 'make', + callback = function () vim.opt.expandtab = false end +}) + +-- SNES files +vim.api.nvim_create_autocmd({'BufNewFile', 'BufRead'}, { + pattern = {'*.asm', '*.s'}, + callback = function () vim.opt.filetype = 'snes' end +}) + +------------------------------------------------------------------------------- +-- Local Overrides +------------------------------------------------------------------------------- +pcall(require, 'init_local') + +------------------------------------------------------------------------------- +-- Plugin Specific Behavior +------------------------------------------------------------------------------- +-- FZF +vim.keymap.set('', '', ':FZF ') +vim.g.fzf_layout = { down = '40%' } +vim.g.fzf_colors = { + fg = {'fg', 'Normal'}, + bg = {'bg', 'Normal'}, + hl = {'fg', 'Comment'}, + ['fg+'] = {'fg', 'CursorLine', 'CursorColumn', 'Normal'}, + ['bg+'] = {'bg', 'CursorLine', 'CursorColumn'}, + ['hl+'] = {'fg', 'Statement'}, + info = {'fg', 'PreProc'}, + border = {'fg', 'Ignore'}, + prompt = {'fg', 'Conditional'}, + pointer = {'fg', 'Exception'}, + marker = {'fg', 'Keyword'}, + spinner = {'fg', 'Label'}, + header = {'fg', 'Comment'} +} + + +-- Svelte Config +vim.g.vim_svelte_plugin_use_typescript = true + +-- Limelight / Goyo config + +vim.g.limelight_conceal_ctermfg = 'gray' +vim.g.limelight_conceal_guifg = 'DarkGray' + +vim.api.nvim_create_autocmd({'User'}, { + pattern = 'GoyoEnter', + callback = 'Limelight' +}) +vim.api.nvim_create_autocmd({'User'}, { + pattern = 'GoyoLeave', + callback = 'Limelight!' +}) +--[[ +nnoremap i :Limelight!!== +inoremap i :Limelight!!==gi +vnoremap i :Limelight!!gv=gv +nnoremap g :Goyo== +inoremap g :Goyo==gi +vnoremap g :Goyogv=gv +]]-- + +-- Plugins +require('plugins') -- cgit