138 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
vim.o.fillchars = "eob: ,fold: ,foldopen:,foldsep: ,foldclose:"
 | 
						|
vim.o.foldcolumn = "1"
 | 
						|
vim.o.foldenable = true
 | 
						|
vim.o.foldexpr = "v:lua.vim.lsp.foldexpr()"
 | 
						|
vim.o.foldlevel = 99
 | 
						|
vim.o.foldlevelstart = 99
 | 
						|
vim.o.foldmethod = "expr"
 | 
						|
-- vim.o.winborder = "bold"
 | 
						|
 | 
						|
vim.opt.langmap = "+]ü["
 | 
						|
vim.keymap.set("n", "ü", "[", { remap = true })
 | 
						|
 | 
						|
vim.opt.expandtab = true
 | 
						|
vim.opt.shiftwidth = 4
 | 
						|
vim.opt.tabstop = 4
 | 
						|
vim.opt.softtabstop = 4
 | 
						|
 | 
						|
vim.opt.smarttab = true
 | 
						|
vim.opt.smartindent = true
 | 
						|
vim.opt.autoindent = true
 | 
						|
 | 
						|
-- Set to true if you have a Nerd Font installed and selected in the terminal
 | 
						|
vim.g.have_nerd_font = false
 | 
						|
 | 
						|
-- 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
 | 
						|
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
 | 
						|
vim.opt.cursorcolumn = false
 | 
						|
 | 
						|
-- Minimal number of screen lines to keep above and below the cursor.
 | 
						|
vim.opt.scrolloff = 20
 | 
						|
 | 
						|
-- 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.opt.confirm = true
 | 
						|
 | 
						|
vim.opt.title = true
 | 
						|
 | 
						|
vim.opt.conceallevel = 0
 | 
						|
 | 
						|
vim.diagnostic.config({ virtual_text = true })
 | 
						|
 | 
						|
-- [[ 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" })
 | 
						|
 | 
						|
-- 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,
 | 
						|
})
 |