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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-- use modern vim
vim.o.compatible = false
-- dont use backup files
vim.o.backup = false
vim.o.writebackup = false
vim.o.swapfile = false
-- allow unsaved buffers
vim.o.hidden = true
-- enable mouse
vim.o.mouse = 'a'
-- display tabs and trailing spaces
vim.o.list = true
vim.o.listchars = 'tab:»·,trail:·,nbsp:·'
-- search options
vim.o.incsearch = true
vim.o.hlsearch = true
-- backspace in insert mode
vim.o.backspace = "indent,eol,start"
-- no sound
vim.o.visualbell = true
-- set encoding
vim.o.encoding = "utf-8"
vim.o.fileencoding = "utf-8"
-- show commands
vim.o.showcmd = true
-- file format
vim.o.fileformats = "unix,dos"
-- disable conceal
vim.g.vim_json_conceal = 0
vim.g.markdown_syntax_conceal = 0
-- autocmd FileType json set conceallevel=0
-- show line numbers
vim.o.number = true
-- 80 character line length highlight
vim.o.colorcolumn = "80"
-- highlight current line
vim.o.cursorline = true
-- set tab width and use spaces for tabs
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.softtabstop = 4
vim.o.expandtab = true
-- make files use regular tabs
vim.api.nvim_create_autocmd({"FileType"}, {
pattern = "make",
command = "set tabstop=4 shiftwidth=8 softtabstop=0 noexpandtab"
})
-- reload vimrc on change
vim.api.nvim_create_augroup("reload_vimrc", {})
vim.api.nvim_create_autocmd({"BufWritePost"}, {
group = "reload_vimrc",
pattern = vim.env.MYVIMRC,
command = "source $MYVIMRC"
})
-- gui settings
vim.o.linespace = 4
vim.o.guifont = "Droid\\ Sans\\ Mono:h12"
-- neovide settings
if vim.g.neovide then
vim.g.neovide_cursor_animation_length = 0.01
vim.g.neovide_cursor_trail_length = 0.01
vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.g.neovide_scale_factor = 1.0
vim.keymap.set('n', '<C-=>', function()
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * 1.1
end)
vim.keymap.set('n', '<C-->', function()
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor / 1.1
end)
end
-- plugin manager
vim.fn['plug#begin']()
vim.cmd.Plug('"airblade/vim-gitgutter"')
vim.cmd.Plug('"christoomey/vim-tmux-navigator"')
vim.cmd.Plug('"jiangmiao/auto-pairs"')
vim.cmd.Plug('"majutsushi/tagbar"')
vim.cmd.Plug('"mg979/vim-visual-multi"')
vim.cmd.Plug('"nvim-tree/nvim-tree.lua"')
vim.cmd.Plug('"nvim-tree/nvim-web-devicons"')
vim.cmd.Plug('"romgrk/barbar.nvim"')
vim.cmd.Plug('"tanvirtin/monokai.nvim"')
vim.cmd.Plug('"thaerkh/vim-indentguides"')
vim.fn['plug#end']()
-- monokai
require('monokai').setup({})
-- indentguides
vim.g.indent_guides_enable_on_vim_startup = 1
vim.g.indent_guides_start_level = 2
vim.g.indent_guides_guide_size = 1
-- nvim-tree
require("nvim-tree").setup()
vim.opt.termguicolors = true
-- barbar
require('bufferline').setup({
auto_hide = false
})
local _ = (function(y)
local nvim_tree_events = require('nvim-tree.events')
local bufferline_api = require('bufferline.api')
local function get_tree_size()
return require'nvim-tree.view'.View.width
end
nvim_tree_events.subscribe('TreeOpen', function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe('Resize', function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe('TreeClose', function()
bufferline_api.set_offset(0)
end)
end)()
-- gitgutter
vim.g.gitgutter_realtime = 1
-- function keys map
vim.keymap.set('', '<F5>', vim.cmd.NvimTreeToggle)
vim.keymap.set('', '<F6>', vim.cmd.TagbarToggle)
|