Compare commits

..

4 Commits

Author SHA1 Message Date
agresdominik cae9e03002 chore 2026-06-07 21:02:30 +02:00
agresdominik a332c64a6f Merge remote-tracking branch 'refs/remotes/origin/main' 2026-06-05 08:34:05 +02:00
agresdominik cc7e03dc90 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-05-20 18:24:01 +02:00
agresdominik 35d98db928 Remove lazy-lock.json, add nvim/.gitignore to prevent it returning
Symlinking a shared lockfile across devices causes lazy.nvim on one
device to overwrite plugin pins for the other. Each device should
manage its own plugin state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 18:21:16 +02:00
12 changed files with 471 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
lazy-lock.json
+41
View File
@@ -0,0 +1,41 @@
-- Set leader key to Space
vim.g.mapleader = " "
vim.g.maplocalleader = ","
-- Load basic settings
require("config.options")
require("config.keymaps")
-- Load plugins (lazy.nvim will be auto-installed)
require("config.plugins")
-- Plugin-specific configuration
require("config.lsp")
require("config.treesitter")
require("config.telescope")
require("config.cmp")
-- VimTeX Config
vim.g.vimtex_view_method = 'zathura'
vim.g.vimtex_compiler_method = 'latexmk'
vim.g.vimtex_compiler_latexmk = {
build_dir = 'out'
}
-- Language Checks
vim.api.nvim_create_autocmd("FileType", {
pattern = { "tex", "plaintex", "latex", "markdown" },
callback = function()
vim.opt_local.spell = true
vim.opt_local.linebreak = true
vim.opt_local.spelllang = { "de_de", "en_us" }
end,
})
-- Diable Copilot on Start
vim.g.copilot_filetypes = {
["*"] = false,
}
+78
View File
@@ -0,0 +1,78 @@
-- Completion setup for Neovim using nvim-cmp and LuaSnip
-- Safely import modules
local cmp_status, cmp = pcall(require, "cmp")
if not cmp_status then
return
end
local snip_status, luasnip = pcall(require, "luasnip")
if not snip_status then
return
end
-- Load friendly-snippets (optional, prebuilt snippets)
require("luasnip.loaders.from_vscode").lazy_load()
-- Setup nvim-cmp
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-Space>"] = cmp.mapping.complete(), -- Trigger completion menu
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Confirm selection
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" }, -- LSP completion
{ name = "luasnip" }, -- Snippets
}, {
{ name = "buffer" }, -- Words in current buffer
{ name = "path" }, -- File system paths
}),
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
format = function(entry, vim_item)
vim_item.menu = ({
nvim_lsp = "[LSP]",
luasnip = "[Snip]",
buffer = "[Buf]",
path = "[Path]",
})[entry.source.name]
return vim_item
end,
},
})
-- Disable cmp for markdown notes (no recommendations/autocomplete)
cmp.setup.filetype("markdown", {
enabled = false,
})
+34
View File
@@ -0,0 +1,34 @@
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
-- Tabs shortcuts
map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', opts)
map('n', '<A-.>', '<Cmd>BufferNext<CR>', opts)
map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', opts)
map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', opts)
map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', opts)
map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', opts)
map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', opts)
map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', opts)
map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', opts)
map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', opts)
map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', opts)
map('n', '<A-0>', '<Cmd>BufferLast<CR>', opts)
map('n', '<A-c>', '<Cmd>BufferClose<CR>', opts)
map('n', '<C-p>', '<Cmd>BufferPick<CR>', opts)
map('n', '<C-s-p>', '<Cmd>BufferPickDelete<CR>', opts)
map('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', opts)
map('n', '<Space>bn', '<Cmd>BufferOrderByName<CR>', opts)
map('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', opts)
map('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', opts)
map('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', opts)
-- Toggle Neotree
map('n', '<leader>e', ':Neotree toggle<CR>', opts)
-- Terminal
map('n', '<leader>t', ':terminal<CR>', opts)
+34
View File
@@ -0,0 +1,34 @@
-- Common on_attach handler
local on_attach = function(client, bufnr)
local opts = { buffer = bufnr }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
end
-- Configure all your servers
vim.lsp.config("lua_ls", {
on_attach = on_attach,
settings = {
Lua = { diagnostics = { globals = { "vim" } } },
},
})
vim.lsp.config("pyright", { on_attach = on_attach })
vim.lsp.config("gopls", { on_attach = on_attach })
vim.lsp.config("clangd", { on_attach = on_attach })
vim.lsp.config("omnisharp", { on_attach = on_attach })
vim.lsp.config("jdtls", { on_attach = on_attach })
vim.lsp.config("ts_ls", { on_attach = on_attach })
vim.lsp.config("jsonls", { on_attach = on_attach })
vim.lsp.config("yamlls", { on_attach = on_attach })
-- Enable them all
for _, server in ipairs({
"lua_ls", "pyright", "gopls", "clangd",
"omnisharp", "jdtls", "ts_ls", "jsonls", "yamlls",
}) do
vim.lsp.enable(server)
end
+10
View File
@@ -0,0 +1,10 @@
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.termguicolors = true
vim.opt.cursorline = true
vim.opt.mouse = "a"
vim.opt.clipboard = "unnamedplus"
+143
View File
@@ -0,0 +1,143 @@
-- Bootstrap lazy.nvim if not installed
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",
lazypath
})
end
vim.opt.rtp:prepend(lazypath)
-- Plugins
require("lazy").setup({
-- Core
"nvim-lua/plenary.nvim",
-- UI
"nvim-lualine/lualine.nvim",
"nvim-tree/nvim-web-devicons",
-- Treesitter
--{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
vim.treesitter.language.register("markdown", "vimwiki")
end,
},
-- Telescope
"nvim-telescope/telescope.nvim",
-- LSP
"neovim/nvim-lspconfig",
-- Themes
"folke/tokyonight.nvim",
{
'sainnhe/sonokai',
lazy = false,
priority = 1000,
config = function()
-- Optionally configure and load the colorscheme
-- directly inside the plugin declaration.
vim.g.sonokai_enable_italic = true
vim.cmd.colorscheme('sonokai')
end
},
-- Vimwiki
{
"vimwiki/vimwiki",
init = function()
vim.g.vimwiki_global_ext = 0
vim.g.vimwiki_conceallevel = 0
vim.g.vimwiki_list = {
{
path = "~/wiki/uni/",
syntax = "markdown",
ext = ".md",
name = "Uni",
},
}
end,
},
-- Autocomplete
{
"hrsh7th/nvim-cmp",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"rafamadriz/friendly-snippets",
},
-- Markdown Preview Page
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
ft = { "markdown" },
build = function()
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
vim.fn["mkdp#util#install"]()
end,
config = function()
vim.g.mkdp_echo_preview_url = 1
vim.cmd([[
function! OpenMarkdownPreview(url)
call jobstart(['xdg-open', a:url], {'detach': v:true})
endfunction
]])
vim.g.mkdp_browserfunc = "OpenMarkdownPreview"
end,
},
-- Tabs
{ '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 = {
-- lazy.nvim will automatically call setup for you. put your options here, anything missing will use the default:
-- animation = true,
-- insert_at_start = true,
-- …etc.
},
},
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons", -- optional, but recommended
},
lazy = false, -- neo-tree will lazily load itself
},
-- GitHub Copilot
"github/copilot.vim",
{
"lervag/vimtex",
lazy = false, -- we don't want to lazy load VimTeX
-- tag = "v2.15", -- uncomment to pin to a specific release
init = function()
-- VimTeX configuration goes here, e.g.
vim.g.vimtex_view_method = "zathura"
end
},
})
+25
View File
@@ -0,0 +1,25 @@
local telescope = require("telescope")
telescope.setup({
defaults = {
prompt_prefix = "🔍 ",
selection_caret = "",
path_display = { "smart" },
sorting_strategy = "ascending",
layout_config = { prompt_position = "top" },
},
pickers = {
find_files = {
hidden = true, -- show hidden files
},
},
})
-- Optional: keymaps for quick access
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Find files" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Grep text" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Find buffers" })
vim.keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "Find help" })
vim.keymap.set("n", "<leader>fr", builtin.oldfiles, { desc = "Recent files" })
+16
View File
@@ -0,0 +1,16 @@
require("nvim-treesitter.configs").setup({
ensure_installed = {
-- Programming Languages
"lua", "python", "bash", "javascript", "typescript",
"go", "java", "c", "cpp", "c_sharp", "rust",
-- Web Languages
"html", "css", "scss", "json", "yaml", "toml", "xml",
-- Other formats
"markdown", "markdown_inline", "sql", "dockerfile", "gitignore"
},
highlight = { enable = true },
indent = { enable = true },
})
+86
View File
@@ -0,0 +1,86 @@
Heilberufler
ePA
eHBA
Agres
sc
hum
hum
Seidling
EMA
GMP
BfArM
GKV
Primärverpackung
Medikationsprozess
Ärztlicherseits
Medikations
Digitalisierungsprozesse
Telematikinfrastruktur
Heilberuflerausweis
Medikationsprozesse
CLMM
LLM
KI
OpenAI
GPT
Wirkweise
hum
hum
hum
Schickhardt
BVL
Werkzeuge
Zukunftige
Resumee
Vorlesungs
Whatsapp
Zabel
extrakranielle
Intra
Intrakranielle
Extrakraniell
Proffessionsethik
Intrakraniell
intrakraniellen
mitbestrahlt
Oligometastasierung
Hypofraktionierte
Hochdosisbereich
Neurokognition
Ganzhirnbestrahlung
Hippocampusatrophie
neurokognitiven
MRT
Lagerungskontrolle
bildgeführte
Atemgating
Pneumonitis
Lungenläsionen
Begleiterkrankungen
Kapselschmerz
CyberKnife
oligometastasierten
Tumorschäden
hypofraktionierten
p53
leptomeningeale
Rückenmarkshäute
SBRT
intrakraniell
intrakranielle
toc
tex
APA
UniTyLab
Unitylab
VR
Holodeck
augmentationen
Unitylabs
Expositionstherapie
LLMs
OsiriX
Meixner
Homeoffice
ArbN
ArbG
Binary file not shown.
+3
View File
@@ -64,6 +64,9 @@ alias vps01='tmux new-session -s vps01 "ssh agres@agres.online"'
alias vps02='tmux new-session -s vps02 "ssh agres@agres.cloud"' alias vps02='tmux new-session -s vps02 "ssh agres@agres.cloud"'
alias pve01='tmux new-session -s pve01 "ssh agres@192.168.0.200"' alias pve01='tmux new-session -s pve01 "ssh agres@192.168.0.200"'
# docs folder
alias docsync='cd ~/documents && git pull && git add -A && git commit -m "sync $(date +%F)" && git push'
# Slop Alias # Slop Alias
claude() { claude() {
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then