summaryrefslogtreecommitdiff
path: root/lua/core/init.lua
blob: 73c82f49b81dfb02b27669300a382c299d4fa0c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
vim.g.mapleader=" "
vim.opt.encoding="utf-8"
vim.opt.wildmenu=true -- Show mathes with tab-completion
vim.opt.number=true
vim.opt.relativenumber=true
vim.opt.ruler=true
vim.opt.lazyredraw=true
vim.opt.laststatus=0
vim.opt.showmode=false
vim.opt.splitbelow=true
vim.opt.splitright=true
vim.opt.tabstop=2
vim.opt.shiftwidth=2
vim.opt.expandtab=true
vim.opt.foldmethod="marker" --- For `{{{` & `}}}` folding
vim.opt.complete:append("kspell")
vim.opt.inccommand="split"
vim.opt.spelllang="fr" -- why does french exist...
vim.api.nvim_set_keymap("n","Y","y$", {}) -- What should have been `Y`
vim.api.nvim_set_keymap("t", "<Esc>", "<C-\\><C-n>", {}) -- terminal mode Esc

vim.keymap.set("v", "<s-l>", ":m '>+1<cr>gv=gv")
vim.keymap.set("v", "<s-h>", ":m '<-2<cr>gv=gv")

-- Netrw preferences when not using lf
vim.g.netrw_liststyle = 3
vim.g.netrw_banner = 0
vim.g.netrw_bufsettings = "noma nomod nu nobl nowrap ro"

-- Clear search highlights
vim.keymap.set("n", "<leader><leader>l", "<cmd>nohlsearch<cr>")

-- Don't mess with pasted text
vim.keymap.set("i", "<C-r>+","<C-r><C-o>+")

-- Remove trailing whitespace (exept current line to avoid moving cursor)
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
    pattern = {"*"},
    callback = function()
      local save_cursor = vim.fn.getpos(".")
      pcall(function() vim.cmd [[%s/\s\+$//e]] end)
      vim.fn.setpos(".", save_cursor)
    end,
})

-- Quickly compile and preview files
vim.keymap.set("n", "<leader>c", "<cmd>make<cr>")
vim.keymap.set("n", "<leader>o", "<cmd>!opout %<cr>")