2023-04-15 02:23:36 +02:00
-- disable netrw
vim.g . loaded_netrw = 1
vim.g . loaded_netrwPlugin = 1
2023-04-07 16:38:45 +02:00
-- install Lazy
local lazypath = vim.fn . stdpath ( " data " ) .. " /lazy/lazy.nvim "
if not vim.loop . fs_stat ( lazypath ) then
vim.fn . system ( {
" git " ,
" clone " ,
" --filter=blob:none " ,
" https://github.com/folke/lazy.nvim.git " ,
" --branch=stable " , -- latest stable release
lazypath ,
} )
end
vim.opt . rtp : prepend ( lazypath )
-- define plugins
2023-04-15 00:12:40 +02:00
require ( " lazy " ) . setup ( {
2023-04-15 15:45:38 +02:00
" jdhao/whitespace.nvim " ,
2023-04-14 02:15:42 +02:00
" lewis6991/gitsigns.nvim " ,
2023-04-15 12:01:10 +02:00
" lukas-reineke/indent-blankline.nvim " ,
2023-04-14 23:56:33 +02:00
" numToStr/Comment.nvim " ,
" NvChad/nvim-colorizer.lua " ,
2023-04-14 02:15:42 +02:00
" nvim-lualine/lualine.nvim " ,
" nvim-treesitter/nvim-treesitter " ,
2023-04-14 23:56:33 +02:00
" tanvirtin/monokai.nvim " ,
{ " nvim-telescope/telescope.nvim " ,
dependencies = { ' nvim-lua/plenary.nvim ' }
2023-04-15 02:23:36 +02:00
} ,
2023-04-15 15:04:29 +02:00
{ " nvim-neo-tree/neo-tree.nvim " ,
2023-04-15 22:58:39 +02:00
dependencies = {
" nvim-lua/plenary.nvim " ,
" nvim-tree/nvim-web-devicons " ,
" MunifTanjim/nui.nvim "
} ,
2023-04-15 10:59:31 +02:00
} ,
{
" folke/which-key.nvim " ,
config = function ( )
vim.o . timeout = true
vim.o . timeoutlen = 300
require ( " which-key " ) . setup ( {
} )
end ,
} ,
2023-04-15 00:12:40 +02:00
} )
2023-04-14 02:15:42 +02:00
2023-04-15 00:12:40 +02:00
-- start & setup plugins
-- colorscheme has to be first
require ( " monokai " ) . setup ( )
require ( " gitsigns " ) . setup ( {
2023-04-14 02:15:42 +02:00
signs = {
add = { text = " ▎ " } ,
change = { text = " ▎ " } ,
delete = { text = " ▎ " } ,
topdelete = { text = " 契 " } ,
changedelete = { text = " ▎ " } ,
untracked = { text = " ▎ " } ,
} ,
2023-04-15 00:12:40 +02:00
} )
2023-04-15 12:01:10 +02:00
require ( " indent_blankline " ) . setup ( )
2023-04-15 00:12:40 +02:00
require ( " Comment " ) . setup ( )
require ( " colorizer " ) . setup ( )
require ( " lualine " ) . setup ( {
2023-04-14 02:15:42 +02:00
options = {
component_separators = ' ' ,
2023-04-15 02:30:44 +02:00
icons_enabled = true ,
2023-04-14 02:15:42 +02:00
section_separators = ' ' ,
2023-04-15 02:30:44 +02:00
theme = " molokai " ,
2023-04-14 02:15:42 +02:00
} ,
sections = {
lualine_a = { " mode " } ,
lualine_b = { { " filename " , file_status = true , path = 1 } } ,
lualine_c = { " branch " } ,
lualine_x = { " filetype " } ,
lualine_y = { " progress " } ,
lualine_z = { " location " } ,
} ,
2023-04-15 02:23:36 +02:00
tabline = {
lualine_a = { " buffers " } ,
} ,
2023-04-15 00:12:40 +02:00
} )
require ( " nvim-treesitter.configs " ) . setup ( {
2023-04-15 10:59:31 +02:00
build = " :TSUpdate " ,
ensure_installed = { " bash " , " python " , " terraform " , " vim " , " yaml " } ,
highlight = {
enable = true ,
use_languagetree = true ,
} ,
2023-04-15 00:12:40 +02:00
} )
2023-04-15 15:04:29 +02:00
require ( " neo-tree " ) . setup ( {
close_if_last_window = false ,
sort_case_insensitive = true ,
window = {
position = " left " ,
auto_expand_width = true ,
-- width = 100,
mappings = {
[ " s " ] = " open_split " ,
[ " v " ] = " open_vsplit " ,
} ,
2023-04-15 02:23:36 +02:00
} ,
2023-04-15 15:04:29 +02:00
nesting_rules = { } ,
filesystem = {
filtered_items = {
visible = true ,
hide_dotfiles = false ,
hide_gitignored = true ,
} ,
2023-04-15 02:23:36 +02:00
} ,
} )
2023-04-07 16:38:45 +02:00
-- modify colorcheme
vim.api . nvim_set_hl ( 0 , " ColorColumn " , { bg = " #770000 " } )
vim.api . nvim_set_hl ( 0 , " DiffChange " , { bg = NONE , fg = " #e7c547 " } )
vim.api . nvim_set_hl ( 0 , " DiffText " , { bg = NONE , fg = " #ff8700 " } )
vim.api . nvim_set_hl ( 0 , " LineNr " , { bg = NONE , fg = " #465457 " } )
2023-04-15 12:01:10 +02:00
vim.api . nvim_set_hl ( 0 , " NonText " , { bg = NONE } )
vim.api . nvim_set_hl ( 0 , " Normal " , { bg = NONE } )
vim.api . nvim_set_hl ( 0 , " SignColumn " , { bg = NONE } )
2023-04-07 16:38:45 +02:00
vim.api . nvim_set_hl ( 0 , " SpellBad " , { bg = " #770000 " , fg = " #ffffff " } )
2023-04-15 12:01:10 +02:00
vim.api . nvim_set_hl ( 0 , " Visual " , { bg = " #005577 " , fg = " #ffffff " } )
2023-04-07 16:38:45 +02:00
-- global options
2023-04-15 12:01:10 +02:00
vim.opt . list = true
2023-04-07 16:38:45 +02:00
vim.opt . cursorline = true
vim.opt . expandtab = true
vim.opt . gdefault = true
vim.opt . hlsearch = false
vim.opt . ignorecase = true
vim.opt . number = true
vim.opt . shiftround = true
vim.opt . showmode = false
vim.opt . smartcase = true
vim.opt . splitbelow = true
vim.opt . splitright = true
vim.opt . termguicolors = true
vim.opt . writebackup = false
2023-04-14 22:00:55 +02:00
vim.opt . clipboard = " "
2023-04-07 16:38:45 +02:00
vim.opt . mouse = " "
vim.opt . tabstop = 2
vim.opt . scrolloff = 5
vim.opt . updatetime = 100
vim.opt . shiftwidth = 2
2023-04-15 02:23:36 +02:00
vim.opt . showtabline = 2
2023-04-07 16:38:45 +02:00
vim.opt . softtabstop = 2
-- configure mappings
vim.g . mapleader = " "
2023-04-15 00:12:40 +02:00
vim.keymap . set ( " i " , " <C-a> " , " <esc>I " , { silent = true } )
vim.keymap . set ( " i " , " <C-e> " , " <esc>A " , { silent = true } )
2023-04-15 12:01:10 +02:00
vim.keymap . set ( " n " , " <esc><cr> " , " <esc><cmd>wq!<cr> " , { silent = true } )
2023-04-15 12:54:41 +02:00
vim.keymap . set ( " n " , " <leader>/ " , " <esc><cmd>lua require('Comment.api').toggle.linewise.count(vim.v.count > 0 and vim.v.count or 1)<cr> " , { silent = true , desc = " toggle comment " } )
2023-04-15 12:01:10 +02:00
vim.keymap . set ( " n " , " <leader>c " , ' <cmd>execute "set colorcolumn=" . (&colorcolumn == "" ? "80,120" : "")<cr> ' , { silent = true , desc = " toggle column " } )
2023-04-15 12:14:56 +02:00
vim.keymap . set ( " n " , " <leader>fb " , require ( " telescope.builtin " ) . buffers , { desc = " find buffer " } )
2023-04-15 12:01:10 +02:00
vim.keymap . set ( " n " , " <leader>ff " , require ( " telescope.builtin " ) . find_files , { desc = " find file " } )
vim.keymap . set ( " n " , " <leader>fg " , require ( " telescope.builtin " ) . live_grep , { desc = " find text " } )
vim.keymap . set ( " n " , " <leader>h " , " <cmd>set hlsearch!<cr> " , { silent = true , desc = " toggle hlsearch " } )
vim.keymap . set ( " n " , " <leader>j " , " <cmd>bprevious<cr> " , { silent = true , desc = " previous buffer " } )
vim.keymap . set ( " n " , " <leader>k " , " <cmd>bnext<cr> " , { silent = true , desc = " next buffer " } )
vim.keymap . set ( " n " , " <leader>n " , " <cmd>set nonumber!<cr><cmd>Gitsigns toggle_signs<cr><cmd>IndentBlanklineToggle<cr> " , { silent = true , desc = " toggle decorations " } )
vim.keymap . set ( " n " , " <leader>s " , " <cmd>set spell!<cr> " , { silent = true , desc = " toggle spell " } )
2023-04-15 15:04:29 +02:00
vim.keymap . set ( " n " , " <leader>t " , " <cmd>Neotree toggle<cr> " , { silent = true , desc = " toggle tree " } )
2023-04-15 12:01:10 +02:00
vim.keymap . set ( " n " , " <leader>x " , " <cmd>bd<cr> " , { silent = true , desc = " close buffer " } )
2023-04-15 00:12:40 +02:00
vim.keymap . set ( " n " , " <tab> " , " <C-w>w " , { silent = true } )
2023-04-15 12:54:41 +02:00
vim.keymap . set ( " v " , " <leader>/ " , " <esc><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<cr> " , { silent = true , desc = " toggle comment " } )
2023-04-14 23:39:02 +02:00
2023-04-15 00:12:40 +02:00
-- autocmd
2023-04-15 10:59:31 +02:00
vim.api . nvim_create_autocmd ( { " BufRead " , " BufNewFile " } , {
2023-04-14 23:39:02 +02:00
pattern = { " *.gotmpl " } ,
callback = function ( ) vim.bo . filetype = " yaml " end ,
} )