------------------------------------------------- -- LEADER ------------------------------------------------- vim.g.mapleader = " " ------------------------------------------------- -- BASIC OPTIONS ------------------------------------------------- vim.opt.number = true vim.opt.relativenumber = true vim.opt.clipboard = "unnamedplus" vim.opt.showtabline = 2 vim.o.timeout = true vim.o.timeoutlen = 300 ------------------------------------------------- -- THEME ------------------------------------------------- require("catppuccin").setup({ flavour = "mocha", transparent_background = false, }) vim.cmd.colorscheme("catppuccin") ------------------------------------------------- -- TREESITTER (IDE-like syntax highlighting) ------------------------------------------------- require("nvim-treesitter.configs").setup({ highlight = { enable = true, additional_vim_regex_highlighting = false, }, indent = { enable = true }, incremental_selection = { enable = true, keymaps = { init_selection = "", node_incremental = "", node_decremental = "", }, }, }) ------------------------------------------------- -- TELESCOPE ------------------------------------------------- local telescope = require("telescope") local builtin = require("telescope.builtin") telescope.setup({ defaults = { layout_strategy = "horizontal", layout_config = { prompt_position = "top" }, sorting_strategy = "ascending", winblend = 0, }, }) vim.keymap.set("n", "", builtin.find_files, { desc = "Find files" }) vim.keymap.set("n", "ff", builtin.find_files) vim.keymap.set("n", "fg", builtin.live_grep) vim.keymap.set("n", "fb", builtin.buffers) vim.keymap.set("n", "fh", builtin.help_tags) ------------------------------------------------- -- WHICH-KEY ------------------------------------------------- require("which-key").setup({}) ------------------------------------------------- -- TABS ------------------------------------------------- vim.keymap.set("n", "tt", "tabnew", { desc = "New tab" }) vim.keymap.set("n", "tc", "tabclose", { desc = "Close tab" }) vim.keymap.set("n", "tn", "tabnext", { desc = "Next tab" }) vim.keymap.set("n", "tp", "tabprevious", { desc = "Previous tab" }) vim.keymap.set("n", "t0", "tabfirst", { desc = "First tab" }) vim.keymap.set("n", "t$", "tablast", { desc = "Last tab" }) ------------------------------------------------- -- NVIM TREE ------------------------------------------------- require("nvim-tree").setup({ view = { width = 30, side = "left", }, renderer = { group_empty = true, }, filters = { dotfiles = false, git_ignored = true, }, git = { enable = true, ignore = true, }, on_attach = function(bufnr) local api = require("nvim-tree.api") local function opts(desc) return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true, } end api.config.mappings.default_on_attach(bufnr) -- open file in new tab vim.keymap.set("n", "t", function() local node = api.tree.get_node_under_cursor() if node and node.type == "file" then vim.cmd("tabnew " .. node.absolute_path) end end, opts("Open in new tab")) end, }) vim.keymap.set("n", "e", "NvimTreeToggle") ------------------------------------------------- -- TOGGLETERM + LAZYGIT ------------------------------------------------- require("toggleterm").setup({ direction = "float", float_opts = { border = "rounded" }, }) local Terminal = require("toggleterm.terminal").Terminal local lazygit = Terminal:new({ cmd = "lazygit", hidden = true, direction = "float", float_opts = { border = "rounded" }, }) vim.keymap.set("n", "gg", function() lazygit:toggle() end, { desc = "Lazygit" }) ------------------------------------------------- -- ORGMODE ------------------------------------------------- require("orgmode").setup({ org_agenda_files = { "~/Documents/2. Writing/0. SOČ/org/*.org" }, org_default_notes_file = "~/Documents/2. Writing/0. SOČ/org/index.org", }) ------------------------------------------------- -- VIMTEX ------------------------------------------------- vim.g.vimtex_view_method = "zathura" vim.g.vimtex_compiler_latexmk = { executable = "latexmk", options = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "-file-line-error", }, } vim.g.vimtex_syntax_enabled = 0 vim.api.nvim_create_autocmd("FileType", { pattern = "tex", callback = function() vim.opt_local.wrap = true vim.opt_local.linebreak = true vim.opt_local.breakindent = true vim.opt_local.textwidth = 0 end, })