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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
require('plugins')
-- common
vim.g.mapleader = ' ' -- set leader key to space
vim.g.maplocalleader = '-' -- set file local leader key to backslash
vim.opt.compatible = false -- not compatible with vi
vim.opt.number = true -- line number
vim.opt.numberwidth = 1 -- line numbers gutter autowidth
vim.opt.cursorline = true -- highlight current line
vim.opt.showmatch = false -- dont jump to pair bracket
vim.opt.autoread = true -- reload files when changes happen outside vim
vim.opt.autowrite = true -- auto write buf on certain events
vim.opt.hidden = true -- keep change in buffer when quitting window
vim.opt.swapfile = false -- disable swap files
vim.opt.scrolloff = 2 -- line padding when scrolling
vim.opt.textwidth = 0 -- when line wrap occurs
vim.opt.wrapmargin = 0 -- disable auto line wrapping
vim.opt.clipboard = 'unnamedplus' -- use system clipboard
vim.g.c_syntax_for_h = 1 -- .h file use C filetype instead of C++
vim.opt.encoding = "utf-8" -- utf-8 encoding
vim.opt.shellredir = ">" -- don't inclue stderr when reading a command
-- intuitif split opening
vim.opt.splitbelow = true
vim.opt.splitright = true
-- tab
vim.opt.expandtab = true -- tab to space
vim.opt.tabstop = 4 -- tab size
vim.opt.shiftwidth = 4
vim.opt.smarttab = true
vim.opt.autoindent = true
vim.opt.smartindent = true
-- file search
vim.opt.ignorecase = true -- case insensitive
vim.opt.smartcase = true
vim.opt.hlsearch = true -- match highlight
vim.opt.incsearch = true
-- status
vim.opt.laststatus=2 -- always a statusline (all window)
vim.opt.showcmd = true -- show current partial command in the bottom right
vim.opt.showmode = false -- dont show current mode (i.e --INSERT--)
-- colorscheme
vim.opt.termguicolors = true
vim.opt.background = "dark"
vim.cmd [[ colorscheme gruvbox ]]
vim.g.gruvbox_italic = 1
vim.g.gruvbox_bold = 1
vim.g.gruvbox_termcolors = 256
vim.g.gruvbox_contrast_dark = 'medium'
vim.g.gruvbox_contrast_light = 'hard'
vim.g.gruvbox_invert_selection = 0
local actions = require('telescope.actions')
require('telescope').setup {
defaults = {
mappings = {
i = {
['<C-j>'] = actions.move_selection_next,
['<C-k>'] = actions.move_selection_previous,
['<esc>'] = actions.close,
['kj'] = actions.close,
}
},
}
}
require('lualine').setup {
options = {
theme = 'gruvbox',
icons_enabled = true,
section_separators = '',
component_separators = ''
}
}
require('nvim-treesitter.configs').setup {
highlight = {
enable = true
},
-- indent = {
-- enable = true
-- },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
}
}
}
vim.cmd [[ highlight link pythonTSKeywordOperator Keyword ]]
-- require 'nvim-treesitter.highlight'
-- local hlmap = vim.treesitter.TSHighlighter.hl_map
-- hlmap.error = nil
require('nvim_comment').setup()
-- local on_attach = function(_, bufnr)
-- local opts = {noremap = true, silent = true }
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', opts)
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', opts)
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<cr>', opts)
-- end
-- require('lspconfig').clangd.setup {}
-- require('lspconfig').pyright.setup { on_attach = on_attach }
require('mappings')
|