Initial Configurations
This commit is contained in:
parent
01a1ebed38
commit
5c216504bb
15 changed files with 478 additions and 687 deletions
43
lua/defaults/autocmds.lua
Normal file
43
lua/defaults/autocmds.lua
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
local group = vim.api.nvim_create_augroup('user_cmds', { clear = true })
|
||||
|
||||
vim.api.nvim_create_user_command('ReloadConfig', 'source $MYVIMRC | PackerCompile', {})
|
||||
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = { 'qf', 'help', 'man', 'lspinfo', 'spectre_panel' },
|
||||
group = group,
|
||||
command = 'nnoremap <buffer> q <cmd>quit<cr>',
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'FileType' }, {
|
||||
pattern = { 'gitcommit' },
|
||||
callback = function()
|
||||
vim.opt_local.wrap = true
|
||||
vim.opt_local.spell = true
|
||||
end,
|
||||
})
|
||||
|
||||
vim.cmd "autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif"
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'VimResized' }, {
|
||||
callback = function()
|
||||
vim.cmd 'tabdo wincmd ='
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'CmdWinEnter' }, {
|
||||
callback = function()
|
||||
vim.cmd 'quit'
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'TextYankPost' }, {
|
||||
callback = function()
|
||||
vim.highlight.on_yank { higroup = 'Visual', timeout = 200 }
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'VimEnter' }, {
|
||||
callback = function()
|
||||
vim.cmd 'hi link illuminatedWord LspReferenceText'
|
||||
end,
|
||||
})
|
||||
92
lua/defaults/keymaps.lua
Normal file
92
lua/defaults/keymaps.lua
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
-- Shorten function name
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
-- Silent keymap option
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
--Remap space as leader key
|
||||
keymap('', '<Space>', '<Nop>', opts)
|
||||
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Modes
|
||||
-- normal_mode = "n",
|
||||
-- insert_mode = "i",
|
||||
-- visual_mode = "v",
|
||||
-- visual_block_mode = "x",
|
||||
-- term_mode = "t",
|
||||
-- command_mode = "c",
|
||||
|
||||
-- Normal --
|
||||
-- Better window navigation
|
||||
keymap('n', '<C-h>', '<C-w>h', opts)
|
||||
keymap('n', '<C-j>', '<C-w>j', opts)
|
||||
keymap('n', '<C-k>', '<C-w>k', opts)
|
||||
keymap('n', '<C-l>', '<C-w>l', opts)
|
||||
|
||||
-- Resize with arrows
|
||||
keymap('n', '<C-Up>', ':resize -2<CR>', opts)
|
||||
keymap('n', '<C-Down>', ':resize +2<CR>', opts)
|
||||
keymap('n', '<C-Left>', ':vertical resize -2<CR>', opts)
|
||||
keymap('n', '<C-Right>', ':vertical resize +2<CR>', opts)
|
||||
|
||||
-- Navigate buffers
|
||||
keymap('n', '<S-l>', ':bnext<CR>', opts)
|
||||
keymap('n', '<S-h>', ':bprevious<CR>', opts)
|
||||
|
||||
-- Clear highlights
|
||||
keymap('n', '<leader>nh', '<cmd>nohlsearch<CR>', opts)
|
||||
|
||||
-- delete single character without copying into register
|
||||
keymap('n', 'x', '"_x', opts)
|
||||
|
||||
-- Close buffers
|
||||
keymap('n', '<leader>bd', '<cmd>:bd<CR>', opts)
|
||||
keymap('n', '<leader>bD', '<cmd>Bdelete!<CR>', opts)
|
||||
|
||||
-- Write file
|
||||
keymap('n', '<leader>fs', '<cmd>:write<CR>', opts)
|
||||
keymap('n', '<leader>fw', '<cmd>:write<CR>', opts)
|
||||
keymap('n', '<leader>fS', '<cmd>:wa<CR>', opts)
|
||||
keymap('n', '<leader>fW', '<cmd>:wa<CR>', opts)
|
||||
|
||||
-- Safe quit
|
||||
keymap('n', '<Leader>qq', ':quitall<CR>', opts)
|
||||
|
||||
-- Force quit
|
||||
keymap('n', '<Leader>Q', ':quitall!<CR>', opts)
|
||||
|
||||
-- Better paste
|
||||
keymap('v', 'p', '"_dP', opts)
|
||||
|
||||
-- Insert --
|
||||
-- Press jk fast to enter
|
||||
keymap('i', 'jk', '<ESC>', opts)
|
||||
keymap('v', 'jk', '<ESC>', opts)
|
||||
|
||||
-- Visual --
|
||||
-- Stay in indent mode
|
||||
keymap('v', '<', '<gv', opts)
|
||||
keymap('v', '>', '>gv', opts)
|
||||
|
||||
-- Search will center on the line it's found in
|
||||
keymap('n', 'n', 'nzzzv', opts)
|
||||
keymap('n', 'N', 'Nzzzv', opts)
|
||||
keymap('n', '#', '#zz', opts)
|
||||
keymap('n', '*', '*zz', opts)
|
||||
|
||||
-- increment/decrement numbers
|
||||
keymap('n', '<leader>+', '<C-a>', opts) -- increment
|
||||
keymap('n', '<leader>-', '<C-x>', opts) -- decrement
|
||||
|
||||
-- window management
|
||||
keymap('n', '<leader>wv', '<C-w>v', opts) -- split window vertically
|
||||
keymap('n', '<leader>wh', '<C-w>s', opts) -- split window horizontally
|
||||
keymap('n', '<leader>w-', '<C-w>s', opts) -- split window horizontally
|
||||
keymap('n', '<leader>wd', ':close<CR>', opts) -- close current split window
|
||||
|
||||
keymap('n', '<leader>to', ':tabnew<CR>', opts) -- open new tab
|
||||
keymap('n', '<leader>tx', ':tabclose<CR>', opts) -- close current tab
|
||||
keymap('n', '<leader>tn', ':tabn<CR>', opts) -- go to next tab
|
||||
keymap('n', '<leader>tp', ':tabp<CR>', opts) -- go to previous tab
|
||||
87
lua/defaults/settings.lua
Normal file
87
lua/defaults/settings.lua
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
-- vim.opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||
vim.opt.clipboard:append 'unnamedplus' -- use system clipboard as default register
|
||||
vim.opt.cmdheight = 1 -- more space in the neovim command line for displaying messages
|
||||
vim.opt.completeopt = 'menu,menuone,noselect' -- cmp needs this
|
||||
vim.opt.conceallevel = 0 -- so that `` is visible in markdown files
|
||||
vim.opt.fileencoding = 'utf-8' -- the encoding written to a file
|
||||
vim.opt.hlsearch = false -- highlight all matches on previous search pattern
|
||||
vim.opt.ignorecase = true -- ignore case in search patterns
|
||||
vim.opt.mouse = 'a' -- allow the mouse to be used in neovim
|
||||
vim.opt.pumheight = 10 -- pop up menu height
|
||||
vim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
||||
vim.opt.showtabline = 0 -- always show tabs
|
||||
vim.opt.smartcase = true -- smart case
|
||||
vim.opt.smartindent = true -- make indenting smarter again
|
||||
vim.opt.splitbelow = true -- force all horizontal splits to go below current window
|
||||
vim.opt.splitright = true -- force all vertical splits to go to the right of current window
|
||||
vim.opt.swapfile = false -- creates a swapfile
|
||||
vim.opt.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
vim.opt.background = 'dark' --
|
||||
vim.opt.timeoutlen = 1000 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
vim.opt.undofile = true -- enable persistent undo
|
||||
vim.opt.updatetime = 300 -- faster completion (4000ms default)
|
||||
vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
|
||||
vim.opt.expandtab = true -- convert tabs to spaces
|
||||
vim.opt.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
||||
vim.opt.shiftround = true --
|
||||
vim.opt.tabstop = 2 -- insert 2 spaces for a tab
|
||||
vim.opt.cursorline = true -- highlight the current line
|
||||
vim.opt.number = true -- set numbered lines
|
||||
vim.opt.relativenumber = true -- Relative numbers numbers
|
||||
vim.opt.laststatus = 3 -- only the last window will always have a status line
|
||||
vim.opt.showcmd = false -- hide (partial) command in the last line of the screen (for performance)
|
||||
vim.opt.ruler = false -- hide the line and column number of the cursor position
|
||||
vim.opt.numberwidth = 4 -- minimal number of columns to use for the line number {default 4}
|
||||
vim.opt.signcolumn = 'yes' -- always show the sign column, otherwise it would shift the text each time
|
||||
vim.opt.wrap = false -- display lines as one long line
|
||||
vim.opt.scrolloff = 8 -- minimal number of screen lines to keep above and below the cursor
|
||||
vim.opt.sidescrolloff = 8 -- minimal number of screen columns to keep to the left and right of the cursor if wrap is `false`
|
||||
vim.opt.guifont = 'monospace:h17' -- the font used in graphical neovim applications
|
||||
vim.opt.fillchars.eob = ' ' -- show empty lines at the end of a buffer as ` ` {default `~`}
|
||||
vim.opt.shortmess:append 'c' -- hide all the completion messages, e.g. "-- XXX completion (YYY)", "match 1 of 2", "The only match", "Pattern not found"
|
||||
vim.opt.whichwrap:append '<,>,[,],h,l' -- keys allowed to move to the previous/next line when the beginning/end of line is reached
|
||||
vim.opt.iskeyword:append '-' -- treats words with `-` as single words
|
||||
vim.opt.formatoptions:remove { 'c', 'r', 'o' } -- This is a sequence of letters which describes how automatic formatting is to be done
|
||||
vim.opt.linebreak = true
|
||||
vim.opt.backspace = 'indent,eol,start' -- allow backspace on indent, end of line or insert mode start position
|
||||
vim.opt.backup = false -- creates a backup file
|
||||
|
||||
local disabled_built_ins = {
|
||||
'2html_plugin',
|
||||
'getscript',
|
||||
'getscriptPlugin',
|
||||
'gzip',
|
||||
'logipat',
|
||||
'loaded_netrw',
|
||||
'loaded_netrwPlugin',
|
||||
'loaded_remote_plugins',
|
||||
'loaded_tutor_mode_plugin',
|
||||
'matchit',
|
||||
'matchparen',
|
||||
'netrw',
|
||||
'netrwFileHandlers',
|
||||
'netrwPlugin',
|
||||
'netrwSettings',
|
||||
'rrhelper',
|
||||
'spellfile_plugin',
|
||||
'tar',
|
||||
'tarPlugin',
|
||||
'vimball',
|
||||
'vimballPlugin',
|
||||
'zip',
|
||||
'zipPlugin',
|
||||
}
|
||||
|
||||
for _, plugin in pairs(disabled_built_ins) do
|
||||
vim.g['loaded_' .. plugin] = 1
|
||||
end
|
||||
|
||||
-- disable netrw at the very start of your init.lua (strongly advised)
|
||||
vim.g.loaded_perl_provider = 0
|
||||
vim.g.loaded_ruby_provider = 0
|
||||
|
||||
if vim.fn.executable 'rg' then
|
||||
-- if ripgrep installed, use that as a grepper
|
||||
vim.opt.grepprg = 'rg --vimgrep --no-heading --smart-case'
|
||||
vim.opt.grepformat = '%f:%l:%c:%m,%f:%l:%m'
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue