From c1f1491d6b6a423560d3ec459b2cf90962dfec0b Mon Sep 17 00:00:00 2001 From: Marvin Elsen Date: Thu, 29 Aug 2024 18:29:34 +0200 Subject: [PATCH] Initial commit --- .gitignore | 1 + README.md | 7 ++ nvim/.config/nvim/init.lua | 5 ++ nvim/.config/nvim/lazy-lock.json | 16 ++++ nvim/.config/nvim/lua/config/autocommands.lua | 18 +++++ nvim/.config/nvim/lua/config/colorscheme.lua | 4 + nvim/.config/nvim/lua/config/keymaps.lua | 71 ++++++++++++++++++ nvim/.config/nvim/lua/config/lazy.lua | 14 ++++ nvim/.config/nvim/lua/config/options.lua | 67 +++++++++++++++++ nvim/.config/nvim/lua/plugins/barbar.lua | 14 ++++ .../.config/nvim/lua/plugins/colorschemes.lua | 8 ++ nvim/.config/nvim/lua/plugins/lualine.lua | 12 +++ nvim/.config/nvim/lua/plugins/luasnip.lua | 21 ++++++ nvim/.config/nvim/lua/plugins/neoscroll.lua | 6 ++ .../nvim/lua/plugins/nvim-surround.lua | 10 +++ nvim/.config/nvim/lua/plugins/nvim-tree.lua | 11 +++ nvim/.config/nvim/lua/plugins/telescope.lua | 5 ++ nvim/.config/nvim/lua/plugins/treesitter.lua | 17 +++++ nvim/.config/nvim/spell/de.utf-8.add | 2 + nvim/.config/nvim/spell/de.utf-8.add.spl | Bin 0 -> 53 bytes 20 files changed, 309 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 nvim/.config/nvim/init.lua create mode 100644 nvim/.config/nvim/lazy-lock.json create mode 100644 nvim/.config/nvim/lua/config/autocommands.lua create mode 100644 nvim/.config/nvim/lua/config/colorscheme.lua create mode 100644 nvim/.config/nvim/lua/config/keymaps.lua create mode 100644 nvim/.config/nvim/lua/config/lazy.lua create mode 100644 nvim/.config/nvim/lua/config/options.lua create mode 100644 nvim/.config/nvim/lua/plugins/barbar.lua create mode 100644 nvim/.config/nvim/lua/plugins/colorschemes.lua create mode 100644 nvim/.config/nvim/lua/plugins/lualine.lua create mode 100644 nvim/.config/nvim/lua/plugins/luasnip.lua create mode 100644 nvim/.config/nvim/lua/plugins/neoscroll.lua create mode 100644 nvim/.config/nvim/lua/plugins/nvim-surround.lua create mode 100644 nvim/.config/nvim/lua/plugins/nvim-tree.lua create mode 100644 nvim/.config/nvim/lua/plugins/telescope.lua create mode 100644 nvim/.config/nvim/lua/plugins/treesitter.lua create mode 100644 nvim/.config/nvim/spell/de.utf-8.add create mode 100644 nvim/.config/nvim/spell/de.utf-8.add.spl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c3a3f2 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Dotfiles + +## Install + +```sh +stow --verbose --restow --target ~ nvim +``` diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..60b7ab8 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,5 @@ +require 'config.options' +require 'config.keymaps' +require 'config.lazy' +require 'config.autocommands' +require 'config.colorscheme' \ No newline at end of file diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..e38cca6 --- /dev/null +++ b/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,16 @@ +{ + "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, + "barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" }, + "catppuccin": { "branch": "main", "commit": "4fd72a9ab64b393c2c22b168508fd244877fec96" }, + "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, + "gitsigns.nvim": { "branch": "main", "commit": "80214a857ce512cc64964abddc1d8eb5a3e28396" }, + "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, + "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, + "neoscroll.nvim": { "branch": "master", "commit": "532dcc8cea4287c4cad6bb77532989a8217cfc7b" }, + "nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" }, + "nvim-tree.lua": { "branch": "master", "commit": "ad0b95dee55955817af635fa121f6e2486b10583" }, + "nvim-treesitter": { "branch": "master", "commit": "7499f7379459db3b31c75cf5cec45f785be6e2c7" }, + "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, + "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" }, + "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" } +} diff --git a/nvim/.config/nvim/lua/config/autocommands.lua b/nvim/.config/nvim/lua/config/autocommands.lua new file mode 100644 index 0000000..f12717f --- /dev/null +++ b/nvim/.config/nvim/lua/config/autocommands.lua @@ -0,0 +1,18 @@ +local git_commit_message_group = vim.api.nvim_create_augroup('gitCommitMessage', { clear = true }) +local plaintext = vim.api.nvim_create_augroup('plaintext', { clear = true }) +local markdown = vim.api.nvim_create_augroup('markdown', { clear = true }) +local yank_group = vim.api.nvim_create_augroup('HighlightYank', {}) + +vim.api.nvim_create_autocmd({'Filetype'}, {pattern = 'gitcommit', group = git_commit_message_group, command = 'setlocal spell textwidth=72 colorcolumn=51,73'} ) +vim.api.nvim_create_autocmd({'Filetype'}, {pattern = 'text', group = plaintext, command = 'setlocal spell foldmethod=marker foldcolumn=2'} ) +vim.api.nvim_create_autocmd({'Filetype'}, {pattern = 'markdown', group = markdown, command = 'setlocal spell conceallevel=2'} ) +vim.api.nvim_create_autocmd('TextYankPost', { + group = yank_group, + pattern = '*', + callback = function() + vim.highlight.on_yank({ + higroup = 'IncSearch', + timeout = 500, + }) + end, +}) \ No newline at end of file diff --git a/nvim/.config/nvim/lua/config/colorscheme.lua b/nvim/.config/nvim/lua/config/colorscheme.lua new file mode 100644 index 0000000..7111a81 --- /dev/null +++ b/nvim/.config/nvim/lua/config/colorscheme.lua @@ -0,0 +1,4 @@ +vim.opt.background = 'dark' +vim.opt.termguicolors = true + +vim.cmd.colorscheme 'catppuccin-mocha' \ No newline at end of file diff --git a/nvim/.config/nvim/lua/config/keymaps.lua b/nvim/.config/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..9237aaa --- /dev/null +++ b/nvim/.config/nvim/lua/config/keymaps.lua @@ -0,0 +1,71 @@ +-- ============================================================================ +-- Major Maps *major-maps* {{{1 +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +-- }}}1 +local silent = { silent = true, noremap = true } + +-- Telescope +--local builtin = require('telescope.builtin') +--vim.keymap.set('n', 'ff', builtin.find_files, silent) +--vim.keymap.set('n', 'fg', builtin.live_grep, silent) +--vim.keymap.set('n', 'fb', builtin.buffers, silent) +--vim.keymap.set('n', 'fh', builtin.help_tags, silent) + +-- shortcuts to change buffers the same way as tabs +-- vim.keymap.set('n', 'gb', ':bn', silent) +-- vim.keymap.set('n', 'gB', ':bp', silent) + +vim.api.nvim_set_keymap("n", "", ":NvimTreeToggle", {silent = true, noremap = true}) + +-- Fast save +vim.keymap.set('n', 'w', ':w!', silent) + +vim.keymap.set('n', 'n', ':NvimTreeToggle', silent) + +vim.keymap.set('n', '', ':noh', silent) + +-- Remap, because % is mapped to matchit +vim.keymap.set({ 'n', 'v' }, '', '%', { silent = true, remap = true }) + +vim.keymap.set('n', 's', ':%s//', silent) +vim.keymap.set('v', 's', ':s//', silent) + +-- use enter/backspace to add/remove lines in normal mode +-- New line without entering insert mode +vim.keymap.set('n', '', 'ok', silent) +vim.keymap.set('n', '', 'koj', silent) +vim.keymap.set('n', '', 'ddk', silent) + +-- Do not fill the yank register with single chars +vim.keymap.set('n', 'x', '"_x', silent) +vim.keymap.set('n', 'X', '"_X', silent) + +vim.keymap.set("n", "J", "mzJ`z") + +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +vim.keymap.set('n', 'u', ':UndotreeToggle', silent) + +vim.keymap.set('n', '', 'BufferPrevious', silent) +vim.keymap.set('n', '', 'BufferNext', silent) + +vim.keymap.set('n', '', 'BufferMovePrevious', silent) +vim.keymap.set('n', '>', 'BufferMoveNext', silent) + +vim.keymap.set('n', '', 'BufferGoto 1', silent) +vim.keymap.set('n', '', 'BufferGoto 2', silent) +vim.keymap.set('n', '', 'BufferGoto 3', silent) +vim.keymap.set('n', '', 'BufferGoto 4', silent) +vim.keymap.set('n', '', 'BufferGoto 5', silent) +vim.keymap.set('n', '', 'BufferGoto 6', silent) +vim.keymap.set('n', '', 'BufferGoto 7', silent) +vim.keymap.set('n', '', 'BufferGoto 8', silent) +vim.keymap.set('n', '', 'BufferGoto 9', silent) +vim.keymap.set('n', '', 'BufferLast', silent) + +vim.keymap.set('n', '', 'BufferPin', silent) + +vim.keymap.set('n', '', 'BufferClose', silent) diff --git a/nvim/.config/nvim/lua/config/lazy.lua b/nvim/.config/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..fb168f0 --- /dev/null +++ b/nvim/.config/nvim/lua/config/lazy.lua @@ -0,0 +1,14 @@ +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) + +require('lazy').setup('plugins') \ No newline at end of file diff --git a/nvim/.config/nvim/lua/config/options.lua b/nvim/.config/nvim/lua/config/options.lua new file mode 100644 index 0000000..aafb93f --- /dev/null +++ b/nvim/.config/nvim/lua/config/options.lua @@ -0,0 +1,67 @@ +-- Do not load netrw +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +vim.opt.guicursor = '' + +vim.opt.shiftwidth = 4 +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.expandtab = true + +vim.opt.smartindent = true + +vim.opt.number = true +vim.opt.relativenumber = true + +vim.opt.wrap = true +vim.opt.linebreak = true +-- vim.opt.textwidth=79 +vim.opt.showbreak='↪' +vim.opt.colorcolumn= {80, 120} + +vim.opt.backup = false +vim.opt.writebackup = true +vim.opt.swapfile = true +vim.opt.undofile = true + +vim.opt.wildmode = 'longest,full' +vim.opt.wildignorecase = true +vim.opt.wildignore:append({ '*.o', '*~', '*.pyc' }) +vim.opt.wildignore:append('.git') +vim.opt.wildignore:append({ '*.jpg', '*.jpeg', '*.png', '*.gif' }) + +vim.opt.spelllang = { 'de_20', 'en_us', 'cjk' } + +vim.opt.updatetime = 50 + +vim.opt.list = true +vim.opt.listchars = { tab = '»·', eol = '¬', extends = '›', precedes = '‹', nbsp = '␣', trail = '·'} + +vim.opt.matchpairs:append({'<:>', '「:」', '『:』', '【:】', '“:”', '‘:’', '《:》'}) + +vim.opt.clipboard:append('unnamedplus') +vim.opt.showmode = false +vim.opt.cmdheight = 1 +vim.opt.fileformat = 'unix' +vim.opt.modelines = 1 +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.wrapscan = true +vim.opt.gdefault = true +vim.opt.foldenable = true +vim.opt.foldlevel = 99 +vim.opt.foldmethod = 'expr' +vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' + +vim.opt.scrolloff = 0 +vim.opt.shiftround = true +vim.opt.showmatch = true +vim.opt.matchtime = 3 +vim.opt.cursorline = true +vim.opt.splitbelow = true +vim.opt.splitright = true +vim.opt.title = true +vim.opt.lazyredraw = true +vim.opt.diffopt:append('vertical') +vim.opt.iskeyword:append('-') diff --git a/nvim/.config/nvim/lua/plugins/barbar.lua b/nvim/.config/nvim/lua/plugins/barbar.lua new file mode 100644 index 0000000..245f00b --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/barbar.lua @@ -0,0 +1,14 @@ +return { + 'romgrk/barbar.nvim', + dependencies = { + 'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status + 'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons + }, + init = function() vim.g.barbar_auto_setup = false end, + opts = { + sidebar_filetypes = { + NvimTree = true, + }, + }, + version = '^1.0.0', -- optional: only update when a new 1.x version is released +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/colorschemes.lua b/nvim/.config/nvim/lua/plugins/colorschemes.lua new file mode 100644 index 0000000..7cb5047 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/colorschemes.lua @@ -0,0 +1,8 @@ +return { + { + 'catppuccin/nvim', + lazy = false, + priority = 1000, + name = 'catppuccin', + }, +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/lualine.lua b/nvim/.config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..4c7ed38 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,12 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function () + require('lualine').setup { + options = { + icons_enabled = true, + theme = 'catppuccin', + } + } + end +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/luasnip.lua b/nvim/.config/nvim/lua/plugins/luasnip.lua new file mode 100644 index 0000000..73bdb71 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/luasnip.lua @@ -0,0 +1,21 @@ +return { + { + "L3MON4D3/LuaSnip", + version = "v2.*", + build = "make install_jsregexp", + dependencies = { "rafamadriz/friendly-snippets" }, + config = function () + require("luasnip.loaders.from_vscode").lazy_load() + local ls = require("luasnip") + vim.keymap.set({"i", "s"}, "", + function() + if ls.expand_or_jumpable() then + ls.expand_or_jump() + end + end, + {silent = true}) + vim.keymap.set({"i", "s"}, "", function() ls.jump( 1) end, {silent = true}) + vim.keymap.set({"i", "s"}, "", function() ls.jump(-1) end, {silent = true}) + end + } +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/neoscroll.lua b/nvim/.config/nvim/lua/plugins/neoscroll.lua new file mode 100644 index 0000000..0a1f125 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/neoscroll.lua @@ -0,0 +1,6 @@ +return { + 'karb94/neoscroll.nvim', + config = function () + require('neoscroll').setup {} + end +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/nvim-surround.lua b/nvim/.config/nvim/lua/plugins/nvim-surround.lua new file mode 100644 index 0000000..241ec2c --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-surround.lua @@ -0,0 +1,10 @@ +return { + "kylechui/nvim-surround", + version = "*", -- Use for stability; omit to use `main` branch for the latest features + event = "VeryLazy", + config = function() + require("nvim-surround").setup({ + -- Configuration here, or leave empty to use defaults + }) + end +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/nvim-tree.lua b/nvim/.config/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..93604bb --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,11 @@ +return { + "nvim-tree/nvim-tree.lua", + version = "*", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + config = function() + require("nvim-tree").setup {} + end, +} diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..495f364 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,5 @@ +return { + 'nvim-telescope/telescope.nvim', + tag = '0.1.5', + dependencies = { 'nvim-lua/plenary.nvim' } +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..a7868fd --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,17 @@ +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function () + local configs = require("nvim-treesitter.configs") + + configs.setup({ + ensure_installed = { "lua", "vim", "vimdoc", "javascript", "json", "yaml", "markdown", "dockerfile", "typescript", "markdown_inline", "sql", "html", "css", "gitcommit", "git_config", "fish", "diff", "python" }, + sync_install = false, + highlight = { + enable = true, + additional_vim_regex_highlighting = false + }, + indent = { enable = true }, + }) + end +} diff --git a/nvim/.config/nvim/spell/de.utf-8.add b/nvim/.config/nvim/spell/de.utf-8.add new file mode 100644 index 0000000..e83117d --- /dev/null +++ b/nvim/.config/nvim/spell/de.utf-8.add @@ -0,0 +1,2 @@ +JIRA +analytics diff --git a/nvim/.config/nvim/spell/de.utf-8.add.spl b/nvim/.config/nvim/spell/de.utf-8.add.spl new file mode 100644 index 0000000000000000000000000000000000000000..2f9fa949299a73a8e4c46730423df11db258d704 GIT binary patch literal 53 zcmWIZ^erw(&B-zP&%nSS%aoYKn8%pNn8R4fSi+den9Nwr$N;2^fMQH6Kot-G0AQ*K A-T(jq literal 0 HcmV?d00001