117 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
		
		
			
		
	
	
			117 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
|  | 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 = false | ||
|  | 
 | ||
|  | -- [[ Setting options ]] | ||
|  | -- See `:help vim.opt` | ||
|  | -- NOTE: You can change these options as you wish! | ||
|  | --  For more options, you can see `:help option-list` | ||
|  | 
 | ||
|  | -- Make line numbers default | ||
|  | vim.opt.number = true | ||
|  | -- You can also add relative line numbers, to help with jumping. | ||
|  | --  Experiment for yourself to see if you like it! | ||
|  | -- vim.opt.relativenumber = true | ||
|  | 
 | ||
|  | -- Enable mouse mode, can be useful for resizing splits for example! | ||
|  | vim.opt.mouse = 'a' | ||
|  | 
 | ||
|  | -- Don't show the mode, since it's already in the status line | ||
|  | vim.opt.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.opt.clipboard = 'unnamedplus' | ||
|  | end) | ||
|  | 
 | ||
|  | -- Enable break indent | ||
|  | vim.opt.breakindent = true | ||
|  | 
 | ||
|  | -- Save undo history | ||
|  | vim.opt.undofile = true | ||
|  | 
 | ||
|  | -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term | ||
|  | vim.opt.ignorecase = true | ||
|  | vim.opt.smartcase = true | ||
|  | 
 | ||
|  | -- Keep signcolumn on by default | ||
|  | vim.opt.signcolumn = 'yes' | ||
|  | 
 | ||
|  | -- Decrease update time | ||
|  | vim.opt.updatetime = 250 | ||
|  | 
 | ||
|  | -- Decrease mapped sequence wait time | ||
|  | -- Displays which-key popup sooner | ||
|  | vim.opt.timeoutlen = 300 | ||
|  | 
 | ||
|  | -- Configure how new splits should be opened | ||
|  | vim.opt.splitright = true | ||
|  | vim.opt.splitbelow = true | ||
|  | 
 | ||
|  | -- Sets how neovim will display certain whitespace characters in the editor. | ||
|  | --  See `:help 'list'` | ||
|  | --  and `:help 'listchars'` | ||
|  | vim.opt.list = true | ||
|  | vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } | ||
|  | 
 | ||
|  | -- Preview substitutions live, as you type! | ||
|  | vim.opt.inccommand = 'split' | ||
|  | 
 | ||
|  | -- Show which line your cursor is on | ||
|  | vim.opt.cursorline = true | ||
|  | 
 | ||
|  | -- Minimal number of screen lines to keep above and below the cursor. | ||
|  | vim.opt.scrolloff = 10 | ||
|  | 
 | ||
|  | -- [[ Basic Keymaps ]] | ||
|  | --  See `:help vim.keymap.set()` | ||
|  | 
 | ||
|  | -- Clear highlights on search when pressing <Esc> in normal mode | ||
|  | --  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' }) | ||
|  | 
 | ||
|  | -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier | ||
|  | -- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which | ||
|  | -- is not what someone will guess without a bit more experience. | ||
|  | -- | ||
|  | -- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping | ||
|  | -- or just use <C-\><C-n> to exit terminal mode | ||
|  | vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) | ||
|  | 
 | ||
|  | -- 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' }) | ||
|  | 
 | ||
|  | -- [[ Basic Autocommands ]] | ||
|  | --  See `:help lua-guide-autocommands` | ||
|  | 
 | ||
|  | -- Highlight when yanking (copying) text | ||
|  | --  Try it with `yap` in normal mode | ||
|  | --  See `:help vim.highlight.on_yank()` | ||
|  | 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.highlight.on_yank() | ||
|  | 	end, | ||
|  | }) |