moved keybind and config files out of init
This commit is contained in:
189
init.lua
189
init.lua
@@ -1,137 +1,9 @@
|
||||
-- River Rooks nvim config
|
||||
-- render options
|
||||
require('options')
|
||||
|
||||
-- [[setup]]
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = true
|
||||
-- render keybinds
|
||||
require('keybinds')
|
||||
|
||||
|
||||
vim.g.netrw_liststyle = 3 --tree view
|
||||
vim.g.netrw_banner = 1
|
||||
vim.g.netrw_winsize = 70 -- Set the width of the "drawer"
|
||||
vim.g.netrw_browse_split = 4 -- Open files in previous window. This emulates the typical "drawer" behavior
|
||||
vim.g.netrw_preview = 1 -- opens in vertical if no open buffer
|
||||
vim.g.netrw_altv = 1 -- Create the split of the Netrw window to the left
|
||||
|
||||
vim.keymap.set('n', '<Tab>', ':bnext<CR>')
|
||||
vim.keymap.set('n', '<S-Tab>', ':bprev<CR>')
|
||||
vim.keymap.set('n', '<leader>x', ':bdelete<CR>')
|
||||
|
||||
-- [[Setting options]]
|
||||
-- See `:help vim.o`
|
||||
-- NOTE: You can change these options as you wish!
|
||||
-- For more options, you can see `:help option-list`
|
||||
-- Make line numbers default
|
||||
vim.o.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- Experiment for yourself to see if you like it!
|
||||
vim.o.relativenumber = true
|
||||
-- Don't show the mode, since it's already in the status line
|
||||
vim.o.showmode = false
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||
-- Remove this option if you want your OS clipboard to remain independent.
|
||||
-- See `:help 'clipboard'`
|
||||
vim.schedule(function()
|
||||
vim.o.clipboard = 'unnamedplus'
|
||||
end)
|
||||
-- Enable break indent
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
-- Keep signcolumn on by default
|
||||
vim.o.signcolumn = 'yes'
|
||||
-- Decrease update time
|
||||
vim.o.updatetime = 250
|
||||
-- Decrease mapped sequence wait time
|
||||
vim.o.timeoutlen = 300
|
||||
-- Configure how new splits should be opened
|
||||
-- vim.o.splitright = false
|
||||
-- vim.o.splitbelow = true
|
||||
vim.o.list = true
|
||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.o.inccommand = 'split'
|
||||
-- Show which line your cursor is on
|
||||
vim.o.cursorline = true
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.o.scrolloff = 25
|
||||
-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
|
||||
-- instead raise a dialog asking if you wish to save the current file(s)
|
||||
-- See `:help 'confirm'`
|
||||
vim.o.confirm = true
|
||||
-- [[Keybinds]]
|
||||
-- See `:help vim.keymap.set()`
|
||||
-- See `:help hlsearch`
|
||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
|
||||
|
||||
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||
|
||||
vim.keymap.set("n", "<leader>a", ":IncRename ", {desc = 'ren[a]me variable under cursor'})
|
||||
|
||||
-- run clear and make in open terminal
|
||||
vim
|
||||
.keymap.set('n','<leader>r','<cmd>TermExec cmd="clear && make"<CR>', { desc = '[r]un make in terminal' })
|
||||
vim
|
||||
.keymap
|
||||
.set('n','<leader>n', '<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
|
||||
vim.keymap.set('n','<leader>t', '<cmd>ToggleTerm<CR>', {desc = '[T]oggle all terminals'})
|
||||
|
||||
vim.keymap.set("n", "<leader>l", function()
|
||||
-- Get terminal ID 1
|
||||
-- Save position and buffer context
|
||||
|
||||
|
||||
local term = require("toggleterm.terminal").get(1)
|
||||
if term then
|
||||
local original_window = vim.api.nvim_get_current_win()
|
||||
local saved_view = vim.fn.winsaveview()
|
||||
-- Using \r (carriage return) or \n\n often bypasses shell interceptors
|
||||
term:send("clear\r")
|
||||
term:send("!-2\r")
|
||||
vim.api.nvim_set_current_win(original_window)
|
||||
vim.fn.winrestview(saved_view)
|
||||
else
|
||||
vim.notify("Terminal 1 is not open yet!", vim.log.levels.WARN)
|
||||
end
|
||||
-- Return logic
|
||||
end, { desc = "Run [L]ast command in terminal 1" })
|
||||
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
-- Keybinds to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
--
|
||||
-- See `:help wincmd` for a list of all window commands
|
||||
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||
|
||||
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
|
||||
vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
|
||||
vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
|
||||
vim.keymap.set("n", "<C-S-j>", "<C-w>J", { desc = "Move window to the lower" })
|
||||
vim.keymap.set("n", "<C-S-k>", "<C-w>K", { desc = "Move window to the upper" })
|
||||
|
||||
-- [[ Basic Autocommands ]]
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
desc = 'Highlight when yanking (copying) text',
|
||||
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
|
||||
callback = function()
|
||||
vim.hl.on_yank()
|
||||
end,
|
||||
})
|
||||
-- [[scripts]]
|
||||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
@@ -168,56 +40,3 @@ require("lazy").setup({
|
||||
-- automatically check for plugin updates
|
||||
checker = { enabled = true },
|
||||
})
|
||||
|
||||
require('render-markdown').setup({
|
||||
file_types = { 'markdown', 'quarto' },
|
||||
render_modes = {'n','c','t'},
|
||||
link = {
|
||||
enabled = true,
|
||||
render_modes = false,
|
||||
footnote = {
|
||||
enabled = true,
|
||||
icon = ' ',
|
||||
body = function(ctx)
|
||||
return ctx.text
|
||||
end,
|
||||
superscript = true,
|
||||
prefix = '',
|
||||
suffix = '',
|
||||
},
|
||||
image = ' ',
|
||||
email = ' ',
|
||||
hyperlink = ' ',
|
||||
highlight = 'RenderMarkdownLink',
|
||||
highlight_title = 'RenderMarkdownLinkTitle',
|
||||
wiki = {
|
||||
enabled = true,
|
||||
icon = ' ',
|
||||
body = function()
|
||||
return nil
|
||||
end,
|
||||
highlight = 'RenderMarkdownWikiLink',
|
||||
scope_highlight = nil,
|
||||
},
|
||||
custom = {
|
||||
web = { pattern = '^http', icon = ' ' },
|
||||
apple = { pattern = 'apple%.com', icon = ' ' },
|
||||
discord = { pattern = 'discord%.com', icon = ' ' },
|
||||
github = { pattern = 'github%.com', icon = ' ' },
|
||||
gitlab = { pattern = 'gitlab%.com', icon = ' ' },
|
||||
google = { pattern = 'google%.com', icon = ' ' },
|
||||
hackernews = { pattern = 'ycombinator%.com', icon = ' ' },
|
||||
linkedin = { pattern = 'linkedin%.com', icon = ' ' },
|
||||
microsoft = { pattern = 'microsoft%.com', icon = ' ' },
|
||||
neovim = { pattern = 'neovim%.io', icon = ' ' },
|
||||
reddit = { pattern = 'reddit%.com', icon = ' ' },
|
||||
slack = { pattern = 'slack%.com', icon = ' ' },
|
||||
stackoverflow = { pattern = 'stackoverflow%.com', icon = ' ' },
|
||||
steam = { pattern = 'steampowered%.com', icon = ' ' },
|
||||
twitter = { pattern = 'x%.com', icon = ' ' },
|
||||
wikipedia = { pattern = 'wikipedia%.org', icon = ' ' },
|
||||
youtube = { pattern = 'youtube[^.]*%.com', icon = ' ' },
|
||||
youtube_short = { pattern = 'youtu%.be', icon = ' ' },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user