-- Minimale Konfiguration: Markdown mit Live-Ansicht ueber render-markdown.nvim -- Bewusst ohne Formatter beim Speichern, damit Markdown-Dateien unveraendert bleiben. -- Braucht Neovim 0.12 (vim.pack) und eine Nerd Font im Terminal. vim.g.mapleader = " " vim.opt.number = true vim.opt.mouse = "a" vim.opt.clipboard = "unnamedplus" vim.opt.termguicolors = true vim.opt.ignorecase = true vim.opt.smartcase = true -- Neue Dateien mit LF anlegen, bestehende behalten ihr Zeilenende vim.opt.fileformats = { "unix", "dos" } -- Fliesstext weich umbrechen, ohne Umbrueche in die Datei zu schreiben vim.api.nvim_create_autocmd("FileType", { pattern = "markdown", callback = function() vim.opt_local.wrap = true vim.opt_local.linebreak = true vim.opt_local.breakindent = true -- j/k laufen durch die sichtbaren Zeilen statt durch ganze Absaetze vim.keymap.set({ "n", "v" }, "j", "gj", { buffer = true }) vim.keymap.set({ "n", "v" }, "k", "gk", { buffer = true }) end, }) vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter", "https://github.com/nvim-mini/mini.nvim", "https://github.com/MeanderingProgrammer/render-markdown.nvim", }) require("mini.icons").setup() require("render-markdown").setup({ -- Auch beim Schreiben (Insert-Modus) gerendert anzeigen, Standard ist nur Normal-Modus render_modes = { "n", "c", "t", "i" }, -- Rohtext nur in der Zeile unter dem Cursor anti_conceal = { enabled = true }, }) -- Datei-Explorer. Geloeschte Dateien landen im Papierkorb des Moduls statt endgueltig weg. require("mini.files").setup({ options = { permanent_delete = false }, }) -- Suche nach Dateien und Text. Nutzt rg oder git, fuer Dateien sonst eine eingebaute Suche. require("mini.pick").setup() -- Zeigt nach einer angefangenen Tastenfolge (z.B. Leertaste) die moeglichen Fortsetzungen local miniclue = require("mini.clue") miniclue.setup({ triggers = { { mode = { "n", "x" }, keys = "" }, { mode = "n", keys = "[" }, { mode = "n", keys = "]" }, { mode = "i", keys = "" }, { mode = { "n", "x" }, keys = "g" }, { mode = { "n", "x" }, keys = "'" }, { mode = { "n", "x" }, keys = "`" }, { mode = { "n", "x" }, keys = '"' }, { mode = { "i", "c" }, keys = "" }, { mode = "n", keys = "" }, { mode = { "n", "x" }, keys = "z" }, }, clues = { miniclue.gen_clues.square_brackets(), miniclue.gen_clues.builtin_completion(), miniclue.gen_clues.g(), miniclue.gen_clues.marks(), miniclue.gen_clues.registers(), miniclue.gen_clues.windows(), miniclue.gen_clues.z(), }, }) -- Leertaste + m: gerenderte Ansicht ein- und ausschalten vim.keymap.set("n", "m", "RenderMarkdown toggle", { desc = "Markdown-Ansicht umschalten" }) -- Leertaste + e: Explorer beim Ordner der aktuellen Datei oeffnen vim.keymap.set("n", "e", function() local path = vim.api.nvim_buf_get_name(0) MiniFiles.open(vim.fn.filereadable(path) == 1 and path or nil) end, { desc = "Datei-Explorer" }) vim.keymap.set("n", "f", function() MiniPick.builtin.files() end, { desc = "Datei suchen" }) vim.keymap.set("n", "g", function() MiniPick.builtin.grep_live() end, { desc = "Text suchen" }) vim.keymap.set("n", "b", function() MiniPick.builtin.buffers() end, { desc = "Offene Dateien" }) vim.keymap.set("n", "h", function() MiniPick.builtin.help() end, { desc = "Hilfe durchsuchen" })