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 = {
mapleader = " ";
# TODO: Set this differntly and actually move local keybindings to this, e.g. for LaTeX
mallocalleader = " ";
maplocalleader = ",";
};
opts = import ./vim_opts.nix {inherit lib mylib;};
extraConfigLuaPost = builtins.readFile ./extraConfigLuaPost.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; [];
# extraPython3Packages = p: [];
@ -1585,6 +1588,7 @@ in {
pkg = pkgs.vimPlugins.vimtex;
init = ''
function()
vim.g.vimtex_mappings_enabled = false
vim.g.vimtex_view_method = "zathura"
vim.g.vimtex_compiler_latexmk = {
options = {

View File

@ -2,6 +2,9 @@
require("lazy.core.config").options.ui.border = "rounded"
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
vim.g.enable_inline_diagnostics = false
vim.diagnostic.config({

View File

@ -1,6 +1,8 @@
{...}: let
# TODO: Doesn't work reliably. I think they are rebound by plugins after? Try setting in extraConfigLuaPost...
disabled-mappings = let
mkDisabledMapping = mapping: {
mode = ["n" "v"];
key = mapping;
action = "<Nop>";
};
@ -11,6 +13,14 @@
"S"
"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
builtins.map mkDisabledMapping disableMappings;
@ -247,6 +257,12 @@
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
options.desc = "Grep Buffer";
}
{
mode = "v";
key = ";";
action = "<Esc>";
options.desc = "Exit Visual Mode";
}
];
leader = [
@ -588,12 +604,12 @@
action = "<cmd>:set wrap!<cr>";
options.desc = "Word Wrapping";
}
{
mode = "n";
key = "<leader>tv";
action = "<cmd>VimtexTocToggle<cr>";
options.desc = "VimTex ToC";
}
# {
# mode = "n";
# key = "<leader>tv";
# action = "<cmd>VimtexTocToggle<cr>";
# options.desc = "VimTex ToC";
# }
];
leader-git = [
@ -679,19 +695,32 @@
action = "<cmd>lua vim.lsp.buf.rename()<cr>";
options.desc = "Rename Symbol";
}
{
mode = "n";
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "Code Actions";
}
# {
# mode = "n";
# key = "<leader>cr";
# action = ":IncRename ";
# 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";
key = "<leader>cg";
@ -729,22 +758,37 @@
}
{
mode = "n";
key = "<leader>cI";
action = "<cmd>Telescope lsp_incoming_calls<cr>";
options.desc = "Incoming Calls";
key = "<leader>cge";
action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
options.desc = "Next Error";
}
{
mode = "n";
key = "<leader>cO";
action = "<cmd>Telescope lsp_outgoing_calls<cr>";
options.desc = "Outgoing Calls";
key = "<C-e>";
action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
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
builtins.concatLists [
disabled-mappings
no-leader
leader
leader-help
leader-quit
@ -754,4 +798,6 @@ in
leader-toggles
leader-git
leader-code
localleader-latex
]

View File

@ -3,6 +3,48 @@
mode = "n";
key = "<localleader>t";
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)
then "nil"
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
-- }}}
'';
}