Skip to content

Instantly share code, notes, and snippets.

@tivrfoa
Created January 16, 2025 10:54
Show Gist options
  • Select an option

  • Save tivrfoa/d07a8b8f1bc55bf39ae6743df1a89765 to your computer and use it in GitHub Desktop.

Select an option

Save tivrfoa/d07a8b8f1bc55bf39ae6743df1a89765 to your computer and use it in GitHub Desktop.
Neovim init.lua
-- require("config.lazy")
-- Set the leader key
vim.g.mapleader = " "
-- General settings
vim.opt.cc = "120"
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.autoindent = true
vim.opt.smartindent = true
vim.opt.smarttab = true
vim.opt.expandtab = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
-- Split settings
vim.opt.splitright = true
vim.opt.splitbelow = true
-- Set ripgrep as the grep program
vim.opt.grepprg = "rg --vimgrep"
vim.opt.grepformat = "%f:%l:%c:%m"
-- Netrw settings
vim.g.netrw_altv = 1
vim.g.netrw_winsize = 25
-- Open Netrw on the left side
vim.g.netrw_browse_split = 2
-- Enable syntax highlighting
vim.cmd('syntax enable')
-- Custom key mappings
vim.keymap.set('n', 'j', 'gj', { noremap = true })
vim.keymap.set('n', 'k', 'gk', { noremap = true })
-- Colorscheme
-- vim.cmd('colorscheme tokyonight-night')
vim.cmd.colorscheme('desert') -- tokyonight only works in iTerm
-- Leader key mappings
--
-- search current word using rg and opens de result in a new tab
vim.keymap.set('n', '<Leader>F', ':tabnew | read !rg <C-r>=expand("<cword>")<CR><CR>', { noremap = true })
vim.keymap.set('n', '<Leader>t', ':tabedit <cfile><CR>', { noremap = true }) -- open file under cursor
vim.keymap.set('n', '<Leader>t', ':tabedit <cfile><CR>', { noremap = true }) -- open file under cursor
vim.keymap.set('n', '<Leader>e', ':Vex<CR>', { noremap = true })
vim.keymap.set('n', '<Leader>d', ':q<CR>', { noremap = true }) -- Close file
vim.keymap.set('n', '<Leader>x', ':x<CR>', { noremap = true }) -- Save and Close file
vim.keymap.set('n', '<Leader>s', ':w<CR>', { noremap = true }) -- Save file
-- vim.keymap.set('n', '<Leader>f', ':wincmd _ <BAR> :wincmd \\|<CR>', { noremap = true }) -- Maximize window
-- vim.keymap.set('n', '<Leader>f', function()
-- vim.cmd('wincmd _')
-- vim.cmd('wincmd \\|')
-- end, { noremap = true }) -- Maximize window
vim.keymap.set('n', '<Leader>o', '<Cmd>wincmd _<CR><Cmd>wincmd |<CR>', { noremap = true })
vim.keymap.set('n', '<Leader>n', '<ESC>:set nu! relativenumber!<CR>', { noremap = true })
-- Prompt word to be searched
vim.keymap.set('n', '<Leader>f', function()
vim.ui.input({ prompt = "Enter search pattern: " }, function(input)
if input ~= "" then
local ok, _ = pcall(function()
vim.cmd('vimgrep /' .. input .. '/ %')
end)
if not ok then -- Check if vimgrep found any matches
vim.notify("No matches found.", vim.log.levels.WARN)
else
vim.cmd('copen')
end
end
end)
end, { noremap = true })
-- Search word under cursor
vim.keymap.set('n', '<Leader>g', function()
vim.cmd('vimgrep /' .. vim.fn.expand('<cword>') .. '/ %')
vim.cmd('copen')
end, { noremap = true })
-- Mapping for leader key + 3
vim.keymap.set('n', '<Leader>3', 'o```<CR>```<Esc>O', { noremap = true })
-- Mapping for leader key + p
vim.keymap.set('n', '<Leader>p', 'iprintln("{}")<Esc>F)i', { noremap = true })
-- Markdown fenced languages
vim.g.markdown_fenced_languages = { 'cobol', 'sh', 'html', 'python', 'lua', 'vim', 'typescript', 'javascript', 'java' }
-- Define a function to perform the replacements
function AccessLogReplacements()
vim.api.nvim_exec([[%s/^.*\t"//g]], false)
vim.api.nvim_exec([[%s/ HTTP.*//g]], false)
vim.api.nvim_exec([[%s/\d\+\/xxx/NR\/xxx/g]], false)
end
-- Optionally, create a command to invoke the function
vim.api.nvim_create_user_command('ALReplace', AccessLogReplacements, {})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment