-- -- Only load this plugin if it has not yet been loaded for this buffer -- if vim.b.did_myvimtexsettings then -- return -- end -- vim.b.did_myvimtexsettings = true -- vim.api.nvim_set_keymap('n', 'li', '(vimtex-info)', {desc = "Vimtex Info"}) -- vim.api.nvim_set_keymap('n', 'ls', ':VimtexTocToggle', {desc = "Table Of Content Toggle"}) -- vim.api.nvim_set_keymap('n', 'lv', ':VimtexView', {desc = "View in Viwer"}) -- Toggle shell escape on and off when using minted package local function TexToggleShellEscape() local options = vim.g.vimtex_compiler_latexmk.options local shell_escape_index = vim.fn.index(options, '-shell-escape') if shell_escape_index ~= -1 then table.remove(options, shell_escape_index) else table.insert(options, 1, '-shell-escape') end vim.fn['VimtexReload']() vim.fn['VimtexClean']() end vim.api.nvim_set_keymap('n', 'le', 'lua TexToggleShellEscape()', {desc = "Toggle Shell Escape"}) -- When loading new buffers, search for references to minted package in the -- document preamble and enable shell escape if minted is detected. local preamble_output = vim.fn.systemlist('head -n 20 ' .. vim.fn.expand('%') .. ' | grep "minted"') if #preamble_output > 0 then table.insert(vim.g.vimtex_compiler_latexmk.options, 1, '-shell-escape') end -- Close viewers when VimTeX buffers are closed local function CloseViewers() if vim.fn.executable('xdotool') == 1 and vim.b.vimtex_viewer_xwin_id > 0 then vim.fn.system('xdotool windowclose ' .. vim.b.vimtex_viewer_xwin_id) end end vim.cmd('augroup vimtex_event_close') vim.cmd('au!') vim.cmd('au User VimtexEventQuit call CloseViewers()') vim.cmd('augroup END') -- -- Define mappings -- vim.api.nvim_set_keymap('n', 'dse', '(vimtex-env-delete)', {}) -- vim.api.nvim_set_keymap('n', 'dsc', '(vimtex-cmd-delete)', {}) -- vim.api.nvim_set_keymap('n', 'dsm', '(vimtex-env-delete-math)', {}) -- vim.api.nvim_set_keymap('n', 'dsd', '(vimtex-delim-delete)', {}) -- vim.api.nvim_set_keymap('n', 'cse', '(vimtex-env-change)', {}) -- vim.api.nvim_set_keymap('n', 'csc', '(vimtex-cmd-change)', {}) -- vim.api.nvim_set_keymap('n', 'csm', '(vimtex-env-change-math)', {}) -- vim.api.nvim_set_keymap('n', 'csd', '(vimtex-delim-change-math)', {}) -- vim.api.nvim_set_keymap('n', 'tsf', '(vimtex-cmd-toggle-frac)', {}) -- vim.api.nvim_set_keymap('n', 'tsc', '(vimtex-cmd-toggle-star)', {}) -- vim.api.nvim_set_keymap('n', 'tse', '(vimtex-env-toggle-star)', {}) -- vim.api.nvim_set_keymap('n', 'tsd', '(vimtex-delim-toggle-modifier)', {}) -- vim.api.nvim_set_keymap('n', 'tsD', '(vimtex-delim-toggle-modifier-reverse)', {}) -- vim.api.nvim_set_keymap('n', 'tsm', '(vimtex-env-toggle-math)', {}) -- vim.api.nvim_set_keymap('i', ']]', '(vimtex-delim-close)', {}) -- -- Text objects in operator-pending mode -- vim.api.nvim_set_keymap('o', 'ac', '(vimtex-ac)', {}) -- vim.api.nvim_set_keymap('x', 'ac', '(vimtex-ac)', {}) -- vim.api.nvim_set_keymap('o', 'ic', '(vimtex-ic)', {}) -- vim.api.nvim_set_keymap('x', 'ic', '(vimtex-ic)', {}) -- -- Define more mappings as needed...