From ac2a719d676d99aa396aa903e4d7527a0b25135a Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 14:37:11 +0100 Subject: [PATCH 1/6] In-place replacements and adding modern tools --- config/vim/init.lua | 83 +++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 26 deletions(-) diff --git a/config/vim/init.lua b/config/vim/init.lua index 63c76c5..cd8969a 100644 --- a/config/vim/init.lua +++ b/config/vim/init.lua @@ -15,26 +15,44 @@ local rtp = vim.opt.rtp rtp:prepend(lazypath) require('lazy').setup({ - { 'airblade/vim-gitgutter' }, -- show git changes in the gutter + { 'lewis6991/gitsigns.nvim' }, -- show git changes in the gutter { 'hashivim/vim-terraform' }, -- terraform syntax highlighting { 'junegunn/fzf', run = 'fzf#install()' }, - {'junegunn/fzf.vim'}, + { 'junegunn/fzf.vim' }, { 'EdenEast/nightfox.nvim' }, -- nightfox theme { 'nvim-treesitter/nvim-treesitter' }, -- treesitter, makes syntax highlighting better - { 'scrooloose/nerdcommenter' }, -- easy commenting + { 'numToStr/Comment.nvim' }, -- easy commenting { 'tpope/vim-fugitive' }, -- git integration with :G{git cmd} { 'itchyny/lightline.vim' }, -- statusline { 'wookayin/fzf-ripgrep.vim' }, -- fzf ripgrep integration, for "/" { 'yuki-yano/fzf-preview.vim' }, -- fzf preview { 'fatih/vim-go' }, -- go syntax highlighting - { "ellisonleao/glow.nvim" }, -- markdown preview using :Glow + { 'OXY2DEV/markview.nvim' }, -- markdown preview in-buffer { 'rhysd/git-messenger.vim' }, -- Show git messages under cursor + { + 'kdheepak/lazygit.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, { 'onsails/lspkind.nvim' }, -- lsp kind, makes autocomplete look better { 'hrsh7th/vim-vsnip' }, { 'nvim-lua/plenary.nvim' }, -- lua utility functions + { + 'nvim-telescope/telescope.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make' + }, + { 'stevearc/conform.nvim' }, + { 'lukas-reineke/indent-blankline.nvim' }, + { + 'folke/todo-comments.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, { "ccntrq/autoreload.nvim", opts = {}, -- make sure setup is called with defaults @@ -44,13 +62,8 @@ require('lazy').setup({ dependencies = { 'kyazdani42/nvim-web-devicons' } }, { -- adds a file explorer similar to vscode - "nvim-neo-tree/neo-tree.nvim", - branch = "v3.x", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended - "MunifTanjim/nui.nvim", - } + 'nvim-tree/nvim-tree.lua', + dependencies = { 'nvim-tree/nvim-web-devicons' } }, { -- adds diagnostics for files "folke/trouble.nvim", @@ -96,6 +109,7 @@ vim.opt.mouse = 'a' vim.opt.clipboard = 'unnamed' vim.opt.scrolloff = 17 vim.opt.colorcolumn = '80' +vim.opt.signcolumn = 'yes' vim.g.terraform_fmt_on_save = true -- keybindings @@ -103,9 +117,9 @@ local opts = { noremap = true, silent = true } -vim.api.nvim_set_keymap('n', 't', ':Neotree toggle', opts) +vim.api.nvim_set_keymap('n', 'tt', ':NvimTreeToggle', opts) vim.api.nvim_set_keymap('n', 'qqq', ':qall', opts) -vim.api.nvim_set_keymap('n', '', ':Files', opts) +vim.api.nvim_set_keymap('n', '', ':Telescope find_files', opts) vim.api.nvim_set_keymap('n', '/', ':Rg', opts) vim.api.nvim_set_keymap('n', 'v', ':vsplit', opts) @@ -114,6 +128,7 @@ vim.api.nvim_set_keymap('n', 'b', ':Buffers', opts) vim.api.nvim_set_keymap('t', '', '', opts) vim.api.nvim_set_keymap('n', 'd', ':Trouble diagnostics toggle', opts) vim.api.nvim_set_keymap('n', 'g', ':GitMessenger', opts) +vim.api.nvim_set_keymap('n', 'lg', ':LazyGit', opts) vim.api.nvim_set_keymap('n', 'd', '"_d', opts) vim.api.nvim_set_keymap('v', 'd', '"_d', opts) vim.api.nvim_set_keymap('n', 'c', '"_c', opts) @@ -122,21 +137,37 @@ vim.api.nvim_set_keymap('v', 'c', '"_c', opts) -- plugins setup require("nvim-lsp-installer").setup {} -require("neo-tree").setup { - close_on_open = false, - close_if_last_window = true, - window = { +require('gitsigns').setup() +require('telescope').setup() +require('telescope').load_extension('fzf') +require('ibl').setup() +require('Comment').setup() +require('todo-comments').setup() + +require('conform').setup({ + format_on_save = { timeout_ms = 500, lsp_fallback = true }, + formatters_by_ft = { + go = { 'gofmt' }, + python = { 'black' }, + terraform = { 'terraform_fmt' }, + sh = { 'shfmt' }, + json = { 'jq' }, + yaml = { 'prettier' }, + }, +}) + +require('nvim-tree').setup({ + view = { width = 40, - side = "left", - auto_resize = true, - mappings = { - ["o"] = "open" - } + side = 'left', }, - filesystem = { - hijack_netrw_behavior = "open_current" + hijack_netrw = true, + actions = { + open_file = { + quit_on_open = false, + } } -} +}) -- Auto reload files when they change require("autoreload").setup({ @@ -224,4 +255,4 @@ vim.diagnostic.config { underline = true } -vim.cmd('colorscheme murphy') +vim.cmd('colorscheme carbonfox') From 170dfc1e046e9e50ae5802345cce05b4b6757d94 Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 15:07:19 +0100 Subject: [PATCH 2/6] add buffer keybinds and autoclose tree --- config/vim/init.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/config/vim/init.lua b/config/vim/init.lua index cd8969a..d190072 100644 --- a/config/vim/init.lua +++ b/config/vim/init.lua @@ -125,6 +125,8 @@ vim.api.nvim_set_keymap('n', '/', ':Rg', opts) vim.api.nvim_set_keymap('n', 'v', ':vsplit', opts) vim.api.nvim_set_keymap('n', 'h', ':split', opts) vim.api.nvim_set_keymap('n', 'b', ':Buffers', opts) +vim.api.nvim_set_keymap('n', '', ':bprev', opts) +vim.api.nvim_set_keymap('n', '', ':bnext', opts) vim.api.nvim_set_keymap('t', '', '', opts) vim.api.nvim_set_keymap('n', 'd', ':Trouble diagnostics toggle', opts) vim.api.nvim_set_keymap('n', 'g', ':GitMessenger', opts) @@ -156,6 +158,15 @@ require('conform').setup({ }, }) +vim.api.nvim_create_autocmd('BufEnter', { + nested = true, + callback = function() + if #vim.api.nvim_list_wins() == 1 and require('nvim-tree.utils').is_nvim_tree_buf() then + vim.cmd('quit') + end + end +}) + require('nvim-tree').setup({ view = { width = 40, From 41a81347ae8c165833fd11ebeb1d02a0430f8a0e Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 15:14:27 +0100 Subject: [PATCH 3/6] add eza and lazygit packages --- config/fish/aliases.fish | 4 +++- config/vim/init.lua | 5 ++++- install-scripts/01-install-packages.sh | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/config/fish/aliases.fish b/config/fish/aliases.fish index 1416482..d33affe 100644 --- a/config/fish/aliases.fish +++ b/config/fish/aliases.fish @@ -23,6 +23,8 @@ end alias vim=nvim alias cat="bat -Pp" +alias lg=lazygit +alias ls=eza alias k="kubectl" alias kp="kubectl get pods -A" @@ -39,4 +41,4 @@ end # Volume control (pipewire) function vol wpctl set-volume @DEFAULT_SINK@ $argv% 2>&1 > /dev/null -end \ No newline at end of file +end diff --git a/config/vim/init.lua b/config/vim/init.lua index d190072..e39be3a 100644 --- a/config/vim/init.lua +++ b/config/vim/init.lua @@ -143,7 +143,10 @@ require('gitsigns').setup() require('telescope').setup() require('telescope').load_extension('fzf') require('ibl').setup() -require('Comment').setup() +require('Comment').setup({ + toggler = { line = 'c' }, + opleader = { line = 'c' }, +}) require('todo-comments').setup() require('conform').setup({ diff --git a/install-scripts/01-install-packages.sh b/install-scripts/01-install-packages.sh index 8911b90..f9863ea 100755 --- a/install-scripts/01-install-packages.sh +++ b/install-scripts/01-install-packages.sh @@ -9,7 +9,9 @@ PACKAGES=( "curl" "bat" "go" + "eza" "ripgrep" + "lazygit" ) # if MacOS install Homebrew @@ -70,4 +72,4 @@ fi if [ -f /etc/gentoo-release ]; then PACKAGES=("${PACKAGES[@]/git/dev-vcs\/git}") sudo emerge "${PACKAGES[@]}" -fi \ No newline at end of file +fi From acab70a75907201a443fdead165e1c62c5e13007 Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 15:26:15 +0100 Subject: [PATCH 4/6] ubuntu doesn't have lazygit --- install-scripts/01-install-packages.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install-scripts/01-install-packages.sh b/install-scripts/01-install-packages.sh index f9863ea..7be8f1a 100755 --- a/install-scripts/01-install-packages.sh +++ b/install-scripts/01-install-packages.sh @@ -43,6 +43,7 @@ fi if [ -f /etc/debian_version ]; then # replace "go" with "golang" for debian PACKAGES=("${PACKAGES[@]/go/golang}") + PACKAGES=("${PACKAGES[@]/lazygit/}") # ubuntu doesn't have lazygit :( # install packages export DEBIAN_FRONTEND=noninteractive From 6d9f3d4e1b5796b82aa14173b3f0d1156ec05a67 Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 16:09:10 +0100 Subject: [PATCH 5/6] fedora too --- install-scripts/01-install-packages.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install-scripts/01-install-packages.sh b/install-scripts/01-install-packages.sh index 7be8f1a..3a71a69 100755 --- a/install-scripts/01-install-packages.sh +++ b/install-scripts/01-install-packages.sh @@ -65,6 +65,8 @@ fi # if RHEL/CentOS/Fedora install if [ -f /etc/redhat-release ]; then + PACKAGES=("${PACKAGES[@]/lazygit/}") + # install packages sudo dnf install -y "${PACKAGES[@]}" fi From f547345965a62f7683726294adf9e857a163a0ba Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 19 Apr 2026 17:05:54 +0100 Subject: [PATCH 6/6] make exclude and replace pkgs a bit neater --- install-scripts/01-install-packages.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/install-scripts/01-install-packages.sh b/install-scripts/01-install-packages.sh index 3a71a69..5a79f9f 100755 --- a/install-scripts/01-install-packages.sh +++ b/install-scripts/01-install-packages.sh @@ -1,6 +1,14 @@ #!/bin/bash set -e # exit on error +exclude() { + PACKAGES=( $(printf '%s\n' "${PACKAGES[@]}" | grep -vxE "$(IFS='|'; echo "$*")") ) +} + +replace() { + PACKAGES=("${PACKAGES[@]/$1/$2}") +} + PACKAGES=( "tmux" "neovim" @@ -42,8 +50,8 @@ fi # if debian or ubuntu install if [ -f /etc/debian_version ]; then # replace "go" with "golang" for debian - PACKAGES=("${PACKAGES[@]/go/golang}") - PACKAGES=("${PACKAGES[@]/lazygit/}") # ubuntu doesn't have lazygit :( + replace go golang + exclude lazygit # install packages export DEBIAN_FRONTEND=noninteractive @@ -65,7 +73,7 @@ fi # if RHEL/CentOS/Fedora install if [ -f /etc/redhat-release ]; then - PACKAGES=("${PACKAGES[@]/lazygit/}") + exclude curl lazygit # install packages sudo dnf install -y "${PACKAGES[@]}" @@ -73,6 +81,6 @@ fi # if Gentoo if [ -f /etc/gentoo-release ]; then - PACKAGES=("${PACKAGES[@]/git/dev-vcs\/git}") + replace git dev-vcs/git sudo emerge "${PACKAGES[@]}" fi