nvim: update
This commit is contained in:
1
vim/.config/nvim/lua/plugins/gitsigns.lua
Normal file
1
vim/.config/nvim/lua/plugins/gitsigns.lua
Normal file
@@ -0,0 +1 @@
|
||||
require('gitsigns').setup()
|
||||
17
vim/.config/nvim/lua/plugins/hop.lua
Normal file
17
vim/.config/nvim/lua/plugins/hop.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
-- place this in one of your configuration file(s)
|
||||
local hop = require('hop')
|
||||
local directions = require('hop.hint').HintDirection
|
||||
vim.keymap.set('', 'f', function()
|
||||
hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true })
|
||||
end, {remap=true})
|
||||
vim.keymap.set('', 'F', function()
|
||||
hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true })
|
||||
end, {remap=true})
|
||||
vim.keymap.set('', 't', function()
|
||||
hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true, hint_offset = -1 })
|
||||
end, {remap=true})
|
||||
vim.keymap.set('', 'T', function()
|
||||
hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true, hint_offset = 1 })
|
||||
end, {remap=true})
|
||||
|
||||
require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' }
|
||||
@@ -108,4 +108,3 @@ vim.diagnostic.config({
|
||||
severity_sort = false,
|
||||
float = true,
|
||||
})
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
-- TODO: figure this out
|
||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
||||
require("null-ls").setup({
|
||||
sources = {
|
||||
|
||||
@@ -26,6 +26,31 @@ function M.config()
|
||||
autopairs = { enable = true },
|
||||
autotag = { enable = true },
|
||||
incremental_selection = { enable = true },
|
||||
textobjects = { -- syntax-aware textobjects
|
||||
select = {
|
||||
enable = true,
|
||||
disable = {},
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['aC'] = '@class.outer',
|
||||
['iC'] = '@class.inner',
|
||||
['ac'] = '@conditional.outer',
|
||||
['ic'] = '@conditional.inner',
|
||||
['ab'] = '@block.outer',
|
||||
['ib'] = '@block.inner',
|
||||
['al'] = '@loop.outer',
|
||||
['il'] = '@loop.inner',
|
||||
['is'] = '@statement.inner',
|
||||
['as'] = '@statement.outer',
|
||||
['am'] = '@call.outer',
|
||||
['im'] = '@call.inner',
|
||||
['ad'] = '@comment.outer',
|
||||
['id'] = '@comment.inner',
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
102
vim/.config/nvim/lua/settings.lua
Normal file
102
vim/.config/nvim/lua/settings.lua
Normal file
@@ -0,0 +1,102 @@
|
||||
local cmd, fn, opt, g = vim.cmd, vim.fn, vim.opt, vim.g
|
||||
local command = vim.api.nvim_create_user_command
|
||||
|
||||
cmd('au TextYankPost * lua vim.highlight.on_yank { timeout = 250 }')
|
||||
|
||||
g.ruby_host_prog = 'asdf exec neovim-ruby-host'
|
||||
|
||||
opt.smartindent = true -- Autoindenting when starting a new line
|
||||
opt.completeopt = {'menu', 'menuone', 'noselect'}
|
||||
opt.tabstop = 2 -- Tab counts as 2 columns
|
||||
opt.shiftwidth = 2 -- Numbers of spaces to (auto)indent
|
||||
opt.expandtab = true -- Tabs to spaces
|
||||
opt.clipboard = 'unnamedplus' -- Share clipboard with the OS
|
||||
opt.number = true -- Display line numbers
|
||||
opt.fillchars = {
|
||||
vert = '▕', -- alternatives │
|
||||
eob = ' ', -- suppress ~ at EndOfBuffer
|
||||
msgsep = '‾',
|
||||
diff = '⣿',
|
||||
fold = ' ',
|
||||
foldopen = '▾',
|
||||
foldsep = '│',
|
||||
foldclose = '▸',
|
||||
}
|
||||
opt.synmaxcol = 500 -- Do not try to highlight lines longer than 500 characters
|
||||
opt.lazyredraw = true -- Do not redraw while running macros
|
||||
opt.showmatch = true -- Show matching braces
|
||||
opt.matchtime = 2 -- Show matching braces for 2 tenths of second
|
||||
opt.showmode = true -- Shows when you are in insert mode
|
||||
opt.title = true -- Show title in console status bar
|
||||
opt.laststatus = 3 -- Single status line
|
||||
opt.wrap = false -- Dont wrap lines
|
||||
opt.scrolloff = 5 -- Keep 5 rows on the screen when scrolling
|
||||
opt.sidescrolloff = 15 -- Horizontal scrolloff
|
||||
opt.visualbell = false -- No visual bell
|
||||
opt.backup = false -- No backups
|
||||
opt.writebackup = false -- No backups
|
||||
opt.swapfile = false -- No backups
|
||||
opt.mouse = 'a' -- Support mouse (for proper mouse highlight)
|
||||
opt.list = true -- List mode
|
||||
opt.listchars = { trail = '·', tab = '->' }
|
||||
opt.timeoutlen = 1000 -- Delay for mappings
|
||||
opt.ttimeoutlen = 0 -- Delay between modes
|
||||
opt.shellcmdflag = '-ilc' -- Enables aliases from .bashrc in :! commands
|
||||
opt.termguicolors = true -- 24-bit RGB color
|
||||
|
||||
|
||||
if vim.fn.executable('rg') > 0 then
|
||||
vim.o.grepprg = [[rg --glob "!.git" --no-heading --vimgrep --follow $*]]
|
||||
end
|
||||
|
||||
-- Use in vertical diff mode, blank lines to keep sides aligned, Ignore whitespace changes
|
||||
opt.diffopt = vim.opt.diffopt
|
||||
+ {
|
||||
'vertical',
|
||||
'iwhite',
|
||||
'hiddenoff',
|
||||
'foldcolumn:0',
|
||||
'context:4',
|
||||
'algorithm:histogram',
|
||||
'indent-heuristic',
|
||||
}
|
||||
|
||||
opt.shortmess = {
|
||||
t = true, -- truncate file messages at start
|
||||
A = true, -- ignore annoying swap file messages
|
||||
o = true, -- file-read message overwrites previous
|
||||
O = true, -- file-read message overwrites previous
|
||||
T = true, -- truncate non-file messages in middle
|
||||
f = true, -- (file x of x) instead of just (x of x
|
||||
F = true, -- Don't give file info when editing a file, NOTE: this breaks autocommand messages
|
||||
s = true,
|
||||
I = true, -- disable welcome message (:intro)
|
||||
a = true, -- shortmess for everything
|
||||
c = true,
|
||||
W = true, -- Don't show [w] or written when writing
|
||||
}
|
||||
|
||||
-- ignore when autocompleting
|
||||
opt.wildignore = {
|
||||
'*.aux', '*.out', '*.toc', '*.o', '*.obj',
|
||||
'*.dll', '*.jar', '*.pyc', '*.rbc', '*.class',
|
||||
'*.gif', '*.ico', '*.jpg', '*.jpeg', '*.png',
|
||||
'*.avi', '*.wav', '*.*~', '*~ ', '*.swp',
|
||||
'.lock', '.DS_Store', 'tags.lock'
|
||||
}
|
||||
|
||||
-- vim-test
|
||||
g['test#strategy'] = 'neovim'
|
||||
|
||||
-- CtrlSF
|
||||
g.ctrlsf_ackprg = 'rg'
|
||||
g.ctrlsf_regex_pattern = 1
|
||||
g.ctrlsf_case_sensitive = 'smart'
|
||||
g.ctrlsf_default_root = 'project'
|
||||
g.ctrlsf_context = '-B 1 -A 1'
|
||||
g.ctrlsf_position = 'bottom'
|
||||
g.ctrlsf_winsize = '40%'
|
||||
g.ctrlsf_mapping = {
|
||||
next = 'n',
|
||||
prev = 'N',
|
||||
}
|
||||
6
vim/.config/nvim/lua/util.lua
Normal file
6
vim/.config/nvim/lua/util.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
local function trim_trailing_whitespace()
|
||||
local pos = vim.api.nvim_win_get_cursor(0)
|
||||
vim.cmd [[silent keepjumps keeppatterns %s/\s\+$//e]]
|
||||
vim.api.nvim_win_set_cursor(0, pos)
|
||||
end
|
||||
vim.api.nvim_create_user_command('TrimWhitespace', trim_trailing_whitespace, {})
|
||||
Reference in New Issue
Block a user