83 lines
2.8 KiB
Lua
83 lines
2.8 KiB
Lua
-- VimTeX configuration
|
|
local M = {}
|
|
|
|
function M.setup()
|
|
-- Sioyek - cross-platform PDF viewer with vim-like keybindings
|
|
vim.g.vimtex_view_method = 'general'
|
|
vim.g.vimtex_view_general_viewer = 'sioyek'
|
|
vim.g.vimtex_view_general_options = '--forward-search-file @tex --forward-search-line @line @pdf'
|
|
|
|
-- Skim (macOS)
|
|
-- vim.g.vimtex_view_method = 'skim'
|
|
|
|
-- Compiler settings
|
|
vim.g.vimtex_compiler_method = 'latexmk'
|
|
vim.g.vimtex_compiler_latexmk = {
|
|
aux_dir = 'build',
|
|
out_dir = 'build',
|
|
callback = 1,
|
|
continuous = 1,
|
|
executable = 'latexmk',
|
|
options = {
|
|
'-verbose',
|
|
'-file-line-error',
|
|
'-synctex=1',
|
|
'-interaction=nonstopmode',
|
|
},
|
|
}
|
|
|
|
-- Auto-open viewer on compile
|
|
vim.g.vimtex_view_automatic = 1
|
|
|
|
-- Quickfix settings
|
|
vim.g.vimtex_quickfix_mode = 0 -- Don't open quickfix automatically
|
|
|
|
-- Disable default mappings, we'll set our own
|
|
vim.g.vimtex_mappings_enabled = 1
|
|
|
|
-- TOC settings
|
|
vim.g.vimtex_toc_config = {
|
|
split_pos = 'vert leftabove',
|
|
split_width = 40,
|
|
show_help = 0,
|
|
}
|
|
|
|
-- Fold settings
|
|
vim.g.vimtex_fold_enabled = 0
|
|
|
|
-- Set up filetype-specific keymaps
|
|
vim.api.nvim_create_autocmd('FileType', {
|
|
pattern = { 'tex', 'latex' },
|
|
callback = function()
|
|
local opts = { buffer = true, silent = true }
|
|
|
|
-- Compilation - saves servername for inverse search
|
|
vim.keymap.set('n', '<localleader>ll', function()
|
|
local f = io.open('/tmp/vimtex-servername', 'w')
|
|
if f then
|
|
f:write(vim.v.servername)
|
|
f:close()
|
|
end
|
|
vim.cmd 'VimtexCompile'
|
|
end, vim.tbl_extend('force', opts, { desc = 'Compile LaTeX' }))
|
|
vim.keymap.set('n', '<localleader>lk', '<cmd>VimtexStop<cr>', vim.tbl_extend('force', opts, { desc = 'Stop compilation' }))
|
|
vim.keymap.set('n', '<localleader>lc', '<cmd>VimtexClean<cr>', vim.tbl_extend('force', opts, { desc = 'Clean aux files' }))
|
|
vim.keymap.set('n', '<localleader>lC', '<cmd>VimtexClean!<cr>', vim.tbl_extend('force', opts, { desc = 'Clean all files' }))
|
|
|
|
-- View PDF (forward search)
|
|
vim.keymap.set('n', '<localleader>lv', '<cmd>VimtexView<cr>', vim.tbl_extend('force', opts, { desc = 'View PDF (forward search)' }))
|
|
|
|
-- TOC
|
|
vim.keymap.set('n', '<localleader>lt', '<cmd>VimtexTocToggle<cr>', vim.tbl_extend('force', opts, { desc = 'Toggle TOC' }))
|
|
|
|
-- Errors
|
|
vim.keymap.set('n', '<localleader>le', '<cmd>VimtexErrors<cr>', vim.tbl_extend('force', opts, { desc = 'Show errors' }))
|
|
|
|
-- Info
|
|
vim.keymap.set('n', '<localleader>li', '<cmd>VimtexInfo<cr>', vim.tbl_extend('force', opts, { desc = 'VimTeX info' }))
|
|
vim.keymap.set('n', '<localleader>ls', '<cmd>VimtexStatus<cr>', vim.tbl_extend('force', opts, { desc = 'Compilation status' }))
|
|
end,
|
|
})
|
|
end
|
|
|
|
return M
|