summaryrefslogtreecommitdiff
path: root/lua/ben/core/init.lua
blob: e5bb0a247e0f76e761d38d4f7f9fbbd4db8779e6 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- My Personal Configurations:

-- Superior leader key
vim.g.mapleader = ";"

-- Space is quicker than Shift+Semicolon
vim.keymap.set("n", "<space>", ":")

-- fm -> File Manager
vim.keymap.set("n", "<leader>fm", "<cmd>Exp<cr>")

-- Tree View for the netrw File Manager
vim.g.netrw_liststyle = 3

-- Set encoding to UTF-8
vim.opt.encoding = "utf-8"

-- Display all matching files when tab completing
vim.opt.wildmenu = true

-- Don't show the previously typed command
vim.opt.shortmess:append("c")

-- Set absolute and relative number hybrid
vim.opt.number = true
vim.opt.relativenumber = true

-- View column count
vim.opt.ruler = true

-- Disable the statusline
vim.opt.laststatus = 0

-- Sensible split directions
vim.opt.splitbelow = true
vim.opt.splitright = true

-- Set tab width and shift width to 2
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2

-- Expanding tabs
vim.opt.expandtab = true

-- Set fold method to marker for Vim folding
vim.opt.foldmethod = "marker"

-- Spelling
vim.opt.complete:append("kspell") -- Better Spell Checking
vim.opt.spelllang = "fr" -- French prose

-- Tag Editing
vim.api.nvim_set_keymap("i", "<leader>t", "<++>", { noremap = true })
vim.api.nvim_set_keymap("i", "<leader>:", '<Esc>/<++><CR>"_c4l', { noremap = true })

-- Quickly save
vim.api.nvim_set_keymap("n", "<Leader>w", ":update<CR>", { silent = true })

-- Logical way to Yank
vim.api.nvim_set_keymap("n", "Y", "y$", {})

-- Easily escape terminal mode
vim.api.nvim_set_keymap("t", "<Esc>", "<C-\\><C-n>", {})

-- Split motion
vim.api.nvim_set_keymap("n", "<C-h>", "<C-w>h", {})
vim.api.nvim_set_keymap("n", "<C-j>", "<C-w>j", {})
vim.api.nvim_set_keymap("n", "<C-k>", "<C-w>k", {})
vim.api.nvim_set_keymap("n", "<C-l>", "<C-w>l", {})

-- Saving and quitting buffers
vim.api.nvim_set_keymap("n", "ZF", "ZQ", {})
vim.api.nvim_set_keymap("n", "<leader>w", ":update<CR>", { silent = true })

-- Remove trailing white spaces on BufWritePre
vim.cmd([[autocmd BufWritePre * %s/\s\+$//e]])