1

Neovim: Add LaTeX specific localleader mappings

This commit is contained in:
2024-10-10 15:54:53 +02:00
parent 6ea184095d
commit 435ad9bb3b
5 changed files with 131 additions and 23 deletions

View File

@ -99,15 +99,18 @@ in {
globals = { globals = {
mapleader = " "; mapleader = " ";
maplocalleader = ",";
# TODO: Set this differntly and actually move local keybindings to this, e.g. for LaTeX
mallocalleader = " ";
}; };
opts = import ./vim_opts.nix {inherit lib mylib;}; opts = import ./vim_opts.nix {inherit lib mylib;};
extraConfigLuaPost = builtins.readFile ./extraConfigLuaPost.lua; extraConfigLuaPost = builtins.readFile ./extraConfigLuaPost.lua;
extraConfigLua = builtins.readFile ./extraConfigLua.lua; extraConfigLua = builtins.readFile ./extraConfigLua.lua;
extraFiles = {
# For this its probably important to set the default filetype to tex (see extraConfigLua)
"ftplugin/tex.lua".text = mylib.generators.toLuaKeymap (import ./mappings_latex.nix {});
};
# extraLuaPackages = with pkgs.lua51Packages; []; # extraLuaPackages = with pkgs.lua51Packages; [];
# extraPython3Packages = p: []; # extraPython3Packages = p: [];
@ -1585,6 +1588,7 @@ in {
pkg = pkgs.vimPlugins.vimtex; pkg = pkgs.vimPlugins.vimtex;
init = '' init = ''
function() function()
vim.g.vimtex_mappings_enabled = false
vim.g.vimtex_view_method = "zathura" vim.g.vimtex_view_method = "zathura"
vim.g.vimtex_compiler_latexmk = { vim.g.vimtex_compiler_latexmk = {
options = { options = {

View File

@ -2,6 +2,9 @@
require("lazy.core.config").options.ui.border = "rounded" require("lazy.core.config").options.ui.border = "rounded"
require("lazy.core.config").options.rocks.enabled = false require("lazy.core.config").options.rocks.enabled = false
-- Default filetype to tex instead of plaintex
vim.g.tex_flavor = "latex"
-- Toggle inline diagnostics and show border -- Toggle inline diagnostics and show border
vim.g.enable_inline_diagnostics = false vim.g.enable_inline_diagnostics = false
vim.diagnostic.config({ vim.diagnostic.config({

View File

@ -1,6 +1,8 @@
{...}: let {...}: let
# TODO: Doesn't work reliably. I think they are rebound by plugins after? Try setting in extraConfigLuaPost...
disabled-mappings = let disabled-mappings = let
mkDisabledMapping = mapping: { mkDisabledMapping = mapping: {
mode = ["n" "v"];
key = mapping; key = mapping;
action = "<Nop>"; action = "<Nop>";
}; };
@ -11,6 +13,14 @@
"S" "S"
"t" "t"
"T" "T"
# Use flash to repeat f/F instead of ;/,
# ;/, are now free for localleader and exiting visual mode like helix
","
";"
# Use Telescope on "/", I don't want backwards search
"?"
]; ];
in in
builtins.map mkDisabledMapping disableMappings; builtins.map mkDisabledMapping disableMappings;
@ -247,6 +257,12 @@
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>"; action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
options.desc = "Grep Buffer"; options.desc = "Grep Buffer";
} }
{
mode = "v";
key = ";";
action = "<Esc>";
options.desc = "Exit Visual Mode";
}
]; ];
leader = [ leader = [
@ -588,12 +604,12 @@
action = "<cmd>:set wrap!<cr>"; action = "<cmd>:set wrap!<cr>";
options.desc = "Word Wrapping"; options.desc = "Word Wrapping";
} }
{ # {
mode = "n"; # mode = "n";
key = "<leader>tv"; # key = "<leader>tv";
action = "<cmd>VimtexTocToggle<cr>"; # action = "<cmd>VimtexTocToggle<cr>";
options.desc = "VimTex ToC"; # options.desc = "VimTex ToC";
} # }
]; ];
leader-git = [ leader-git = [
@ -679,19 +695,32 @@
action = "<cmd>lua vim.lsp.buf.rename()<cr>"; action = "<cmd>lua vim.lsp.buf.rename()<cr>";
options.desc = "Rename Symbol"; options.desc = "Rename Symbol";
} }
{
mode = "n";
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "Code Actions";
}
# { # {
# mode = "n"; # mode = "n";
# key = "<leader>cr"; # key = "<leader>cr";
# action = ":IncRename "; # action = ":IncRename ";
# options.desc = "Rename LSP symbol"; # options.desc = "Rename LSP symbol";
# } # }
{
mode = "n";
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "Code Actions";
}
{
mode = "n";
key = "<leader>cI";
action = "<cmd>Telescope lsp_incoming_calls<cr>";
options.desc = "Incoming Calls";
}
{
mode = "n";
key = "<leader>cO";
action = "<cmd>Telescope lsp_outgoing_calls<cr>";
options.desc = "Outgoing Calls";
}
# GoTo
{ {
mode = "n"; mode = "n";
key = "<leader>cg"; key = "<leader>cg";
@ -729,22 +758,37 @@
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cI"; key = "<leader>cge";
action = "<cmd>Telescope lsp_incoming_calls<cr>"; action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
options.desc = "Incoming Calls"; options.desc = "Next Error";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cO"; key = "<C-e>";
action = "<cmd>Telescope lsp_outgoing_calls<cr>"; action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
options.desc = "Outgoing Calls"; options.desc = "Next Error";
} }
{
mode = "n";
key = "<leader>cgE";
action = "<cmd>lua vim.diagnostic.goto_prev()<cr>";
options.desc = "Previous Error";
}
{
mode = "n";
key = "<C-S-e>";
action = "<cmd>lua vim.diagnostic.goto_prev()<cr>";
options.desc = "Previous Error";
}
];
localleader-latex = [
]; ];
in in
builtins.concatLists [ builtins.concatLists [
disabled-mappings disabled-mappings
no-leader no-leader
leader leader
leader-help leader-help
leader-quit leader-quit
@ -754,4 +798,6 @@ in
leader-toggles leader-toggles
leader-git leader-git
leader-code leader-code
localleader-latex
] ]

View File

@ -3,6 +3,48 @@
mode = "n"; mode = "n";
key = "<localleader>t"; key = "<localleader>t";
action = "<cmd>VimtexTocToggle<cr>"; action = "<cmd>VimtexTocToggle<cr>";
options.desc = "VimTex ToC"; options.desc = "Vimtex ToC";
}
{
mode = "n";
key = "<localleader>c";
action = "<cmd>VimtexCompile<cr>";
options.desc = "Vimtex Compile";
}
{
mode = "n";
key = "<localleader>C";
action = "<cmd>VimtexClean!<cr>";
options.desc = "Vimtex Clean";
}
{
mode = "n";
key = "<localleader>v";
action = "<cmd>VimtexView<cr>";
options.desc = "Vimtex View";
}
{
mode = "n";
key = "<localleader>I";
action = "<cmd>VimtexInfo<cr>";
options.desc = "Vimtex Info";
}
{
mode = "n";
key = "<localleader>,";
action = "<cmd>VimtexContextMenu<cr>";
options.desc = "Vimtex Context Menu";
}
{
mode = "n";
key = "<localleader>e";
action = "<cmd>VimtexErrors<cr>";
options.desc = "Vimtex Errors";
}
{
mode = "n";
key = "<localleader>p";
action = "<cmd>VimtexDocPackage<cr>";
options.desc = "Vimtex Package Docs";
} }
] ]

View File

@ -46,4 +46,17 @@
else if (args == null) else if (args == null)
then "nil" then "nil"
else ""; else "";
toLuaKeymap = args: let
removeDeprecatedMapAttrs = v: builtins.removeAttrs v ["lua"];
in ''
-- Set up keybinds using mylib.generators.toLuaKeymap {{{
do
local __nixvim_binds = ${toLuaObject (map removeDeprecatedMapAttrs args)}
for i, map in ipairs(__nixvim_binds) do
vim.keymap.set(map.mode, map.key, map.action, map.options)
end
end
-- }}}
'';
} }