Created
January 16, 2025 10:54
-
-
Save tivrfoa/d07a8b8f1bc55bf39ae6743df1a89765 to your computer and use it in GitHub Desktop.
Neovim init.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- 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