From 5b7f037312da442bfc313e4169cf0a384a0d53e3 Mon Sep 17 00:00:00 2001 From: caley <195605706+cqley@users.noreply.github.com> Date: Thu, 2 Jul 2026 00:23:52 +0200 Subject: Update and rename vim.nix to vi.nix --- nixos/mdls/vi.nix | 147 +++++++++++++++++++++++++++++++++++++ nixos/mdls/vim.nix | 211 ----------------------------------------------------- 2 files changed, 147 insertions(+), 211 deletions(-) create mode 100644 nixos/mdls/vi.nix delete mode 100644 nixos/mdls/vim.nix (limited to 'nixos/mdls') diff --git a/nixos/mdls/vi.nix b/nixos/mdls/vi.nix new file mode 100644 index 0000000..293f44b --- /dev/null +++ b/nixos/mdls/vi.nix @@ -0,0 +1,147 @@ +{ config, pkgs, ... }: + +{ + programs.neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + withRuby = false; + withPython3 = false; + + extraPackages = with pkgs; [ + ripgrep + ]; + + plugins = with pkgs.vimPlugins; [ + lualine-nvim + telescope-nvim + plenary-nvim + nvim-web-devicons + neo-tree-nvim + nui-nvim + alpha-nvim + ]; + + initLua = '' + vim.opt.number = true + vim.opt.relativenumber = false + vim.opt.numberwidth = 4 + vim.opt.statuscolumn = "%l %s" + vim.opt.tabstop = 2 + vim.opt.softtabstop = 2 + vim.opt.shiftwidth = 2 + vim.opt.expandtab = true + vim.opt.wrap = false + vim.opt.ignorecase = true + vim.opt.smartcase = true + vim.opt.hlsearch = false + vim.opt.termguicolors = false + vim.opt.signcolumn = "yes" + vim.opt.scrolloff = 8 + vim.opt.showmode = false + vim.opt.timeoutlen = 300 + vim.opt.updatetime = 250 + vim.opt.foldcolumn = "0" + vim.opt.directory = vim.fn.stdpath("state") .. "/swap//" + + vim.g.mapleader = " " + vim.g.maplocalleader = " " + + vim.keymap.set({"n", "i"}, "", "write", {desc = "save file"}) + vim.keymap.set("n", "", "quit", {desc = "quit neovim"}) + vim.keymap.set("n", "", "nohlsearch", {desc = "clear search highlight"}) + vim.keymap.set({"n", "x"}, "gy", '"+y', {desc = "copy to clipboard"}) + vim.keymap.set({"n", "x"}, "gp", '"+p', {desc = "paste from clipboard"}) + vim.keymap.set("n", "", "u", {desc = "undo"}) + vim.keymap.set("i", "", "u", {desc = "undo"}) + vim.keymap.set("n", "", "", {desc = "redo"}) + vim.keymap.set("i", "", "", {desc = "redo"}) + vim.keymap.set({"n", "i"}, "", "ggVG", {desc = "select all"}) + + vim.keymap.set("n", "", "Telescope current_buffer_fuzzy_find", {desc = "search buffer"}) + + vim.keymap.set("n", "ff", "Telescope find_files", {desc = "find files"}) + vim.keymap.set("n", "fg", "Telescope live_grep", {desc = "text search"}) + vim.keymap.set("n", "fb", "Telescope buffers", {desc = "find buffers"}) + vim.keymap.set("n", "", "Neotree toggle", {desc = "toggle file explorer"}) + + vim.keymap.set("n", "", "h", {desc = "move left"}) + vim.keymap.set("n", "", "j", {desc = "move down"}) + vim.keymap.set("n", "", "k", {desc = "move up"}) + vim.keymap.set("n", "", "l", {desc = "move right"}) + vim.keymap.set("n", "", "vsplit", {desc = "vertical split"}) + vim.keymap.set("n", "", "split", {desc = "horizontal split"}) + vim.keymap.set("n", "", "close", {desc = "close split"}) + + vim.cmd.colorscheme("default") + vim.opt.matchpairs = "" + vim.api.nvim_set_hl(0, "MatchParen", {}) + vim.cmd("highlight clear MatchParen") + vim.cmd("highlight MatchParen guifg=NONE guibg=NONE gui=NONE") + + require("lualine").setup({ + options = { + icons_enabled = true, + theme = "auto", + component_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + }, + }) + + require("telescope").setup({ + defaults = { + file_ignore_patterns = { "node_modules", ".git", "%.lock" }, + layout_strategy = "horizontal", + layout_config = { horizontal = { preview_width = 0.5 } }, + }, + }) + + require("neo-tree").setup({ + window = { + position = "right", + width = 30, + mappings = { + ["l"] = "open", + ["h"] = "close_node", + [""] = "open", + [""] = "revert_preview", + }, + }, + filesystem = { + filtered_items = { + visible = false, + hide_dotfiles = false, + hide_gitignored = false, + hide_by_name = { ".git", ".DS_Store", "thumbs.db" }, + }, + follow_current_file = { enabled = true }, + }, + }) + + local alpha = require("alpha") + local dashboard = require("alpha.themes.dashboard") + + dashboard.section.header.val = { + " ⠀⠀⠀⢀⡴⠲⣄⠀⠀⢀⡶⠲⡄⠀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + " ⣀⣀⣀⣾⠁⠀⠹⠿⠟⠟⠀⠀⠙⣛⣉⡻⠿⠋⣿⣷⢦⣄⠀⠀⠀⠀⠀⠀", + " ⠭⠭⣽⠇⠀⠶⠀⢴⣦⠀⠶⠆⠸⠯⠭⠄⠀⠀⠀⠀⠀⠙⢧⡀⠀⢀⣤⣤", + "⠀⠀ ⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⣤⣾⣻⡟", + " ⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠽⠋⠀", + " ⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀", + " ⠀⠀⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠀", + "⠀ ⠀⠈⠳⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠟⠀⠀⠀⠀⠀", + "⠀⠀ ⠀⠀⠉⠿⠟⠛⠛⠻⠾⠛⠛⠛⠛⠻⠟⠛⠛⠻⠾⠃⠀⠀⠀⠀⠀⠀", + } + + dashboard.section.buttons.val = { + dashboard.button("f", " > find file", "Telescope find_files"), + dashboard.button("n", " > new file", "enew"), + dashboard.button("r", " > recent files", "Telescope oldfiles"), + dashboard.button("q", " > quit", "qa"), + } + + alpha.setup(dashboard.opts) + ''; + }; +} diff --git a/nixos/mdls/vim.nix b/nixos/mdls/vim.nix deleted file mode 100644 index 7174be3..0000000 --- a/nixos/mdls/vim.nix +++ /dev/null @@ -1,211 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - withRuby = false; - withPython3 = false; - - initLua = '' - vim.opt.number = true - vim.opt.relativenumber = false - vim.opt.numberwidth = 4 - vim.opt.statuscolumn = "%l %s" - vim.opt.tabstop = 2 - vim.opt.softtabstop = 2 - vim.opt.shiftwidth = 2 - vim.opt.expandtab = true - vim.opt.wrap = false - vim.opt.ignorecase = true - vim.opt.smartcase = true - vim.opt.hlsearch = false - vim.opt.termguicolors = false - vim.opt.signcolumn = "yes" - vim.opt.scrolloff = 8 - vim.opt.showmode = false - vim.opt.timeoutlen = 300 - vim.opt.updatetime = 250 - vim.opt.foldcolumn = "0" - vim.opt.directory = vim.fn.stdpath("state") .. "/swap//" - - vim.g.mapleader = " " - vim.g.maplocalleader = " " - - vim.keymap.set({"n", "i"}, "", "write", {desc = "save file"}) - vim.keymap.set("n", "", "write", {desc = "save file"}) - vim.keymap.set("n", "", "quit", {desc = "quit neovim"}) - vim.keymap.set("n", "", "quit!", {desc = "force quit"}) - vim.keymap.set("n", "", "nohlsearch", {desc = "clear search highlight"}) - vim.keymap.set({"n", "x"}, "gy", '"+y', {desc = "copy to clipboard"}) - vim.keymap.set({"n", "x"}, "gp", '"+p', {desc = "paste from clipboard"}) - vim.keymap.set("n", "", "u", {desc = "undo"}) - vim.keymap.set("i", "", "u", {desc = "undo"}) - vim.keymap.set("n", "", "", {desc = "redo"}) - vim.keymap.set("i", "", "", {desc = "redo"}) - vim.keymap.set({"n", "i"}, "", "ggVG", {desc = "select all"}) - vim.keymap.set("n", "", "Telescope find_files", {desc = "find files"}) - vim.keymap.set("n", "", "Telescope live_grep", {desc = "text search"}) - vim.keymap.set("n", "", "Telescope buffers", {desc = "find buffers"}) - vim.keymap.set("n", "", "Telescope help_tags", {desc = "help tags"}) - vim.keymap.set("n", "", "h", {desc = "move to left split"}) - vim.keymap.set("n", "", "j", {desc = "move to lower split"}) - vim.keymap.set("n", "", "k", {desc = "move to upper split"}) - vim.keymap.set("n", "", "l", {desc = "move to right split"}) - vim.keymap.set("n", "", "vsplit", {desc = "vertical split"}) - vim.keymap.set("n", "", "split", {desc = "horizontal split"}) - vim.keymap.set("n", "", "close", {desc = "close split"}) - - vim.cmd.colorscheme("default") - vim.opt.matchpairs = "" - vim.api.nvim_set_hl(0, "MatchParen", {}) - vim.cmd("highlight clear MatchParen") - vim.cmd("highlight MatchParen guifg=NONE guibg=NONE gui=NONE") - - 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", - lazypath, - }) - end - vim.opt.rtp:prepend(lazypath) - - require("lazy").setup({ - { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - config = function() - require("lualine").setup({ - options = { - icons_enabled = true, - theme = "auto", - component_separators = { left = "", right = "" }, - section_separators = { left = "", right = "" }, - }, - }) - end, - }, - { - "nvim-telescope/telescope.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - cmd = "Telescope", - keys = { - { "", "Telescope find_files", desc = "find files" }, - { "", "Telescope live_grep", desc = "text search" }, - { "", "Telescope buffers", desc = "find buffers" }, - { "", "Telescope help_tags", desc = "help tags" }, - }, - config = function() - local telescope = require("telescope") - telescope.setup({ - defaults = { - file_ignore_patterns = { "node_modules", ".git", "%.lock" }, - layout_strategy = "horizontal", - layout_config = { - horizontal = { - preview_width = 0.5, - }, - }, - }, - pickers = { - find_files = { - hidden = true, - no_ignore = false, - }, - live_grep = { - additional_args = function() - return { "--hidden" } - end, - }, - }, - }) - end, - }, - { - "nvim-neo-tree/neo-tree.nvim", - branch = "v3.x", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", - "MunifTanjim/nui.nvim", - }, - keys = { - { "", "Neotree toggle", desc = "toggle file explorer" }, - }, - config = function() - require("neo-tree").setup({ - window = { - position = "right", - width = 30, - mappings = { - ["l"] = "open", - ["h"] = "close_node", - [""] = "open", - [""] = "revert_preview", - }, - }, - filesystem = { - filtered_items = { - visible = false, - hide_dotfiles = false, - hide_gitignored = false, - hide_by_name = { - ".git", - ".DS_Store", - "thumbs.db", - }, - }, - follow_current_file = { - enabled = true, - }, - }, - }) - end, - }, - { - "goolord/alpha-nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - config = function() - local alpha = require("alpha") - local dashboard = require("alpha.themes.dashboard") - - dashboard.section.header.val = { - " ⠀⠀⠀⢀⡴⠲⣄⠀⠀⢀⡶⠲⡄⠀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", - " ⣀⣀⣀⣾⠁⠀⠹⠿⠟⠟⠀⠀⠙⣛⣉⡻⠿⠋⣿⣷⢦⣄⠀⠀⠀⠀⠀⠀", - " ⠭⠭⣽⠇⠀⠶⠀⢴⣦⠀⠶⠆⠸⠯⠭⠄⠀⠀⠀⠀⠀⠙⢧⡀⠀⢀⣤⣤", - "⠀⠀ ⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⣤⣾⣻⡟", - " ⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠽⠋⠀", - " ⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀", - " ⠀⠀⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠀", - "⠀ ⠀⠈⠳⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠟⠀⠀⠀⠀⠀", - "⠀⠀ ⠀⠀⠉⠿⠟⠛⠛⠻⠾⠛⠛⠛⠛⠻⠟⠛⠛⠻⠾⠃⠀⠀⠀⠀⠀⠀", - } - - dashboard.section.buttons.val = { - dashboard.button("f", " > find file", "Telescope find_files"), - dashboard.button("n", " > new file", "enew"), - dashboard.button("r", " > recent files", "Telescope oldfiles"), - dashboard.button("q", " > quit", "qa"), - } - - alpha.setup(dashboard.opts) - end, - }, - }) - - vim.api.nvim_create_autocmd("User", { - pattern = "LazyDone", - callback = function() - vim.notify("plugins loaded", vim.log.levels.INFO, { title = "neovim" }) - end, - }) - ''; - }; -} -- cgit v1.3.1