From 4ff724875107d6c39599d113f5aaea2b0fd921be Mon Sep 17 00:00:00 2001 From: Dmitry Voronin Date: Tue, 8 Oct 2024 04:02:46 +0300 Subject: [PATCH] Nvim : Add in input mode to switch lines & refactor keys a bit. --- home/config/nvim/default.nix | 5 ++- home/config/nvim/module/key/Cmd.nix | 11 ++++++ home/config/nvim/module/key/Common.nix | 45 ------------------------ home/config/nvim/module/key/Newline.nix | 5 +++ home/config/nvim/module/key/Save.nix | 19 ++++++++++ home/config/nvim/module/key/TabWidth.nix | 21 +++++++++++ 6 files changed, 60 insertions(+), 46 deletions(-) create mode 100644 home/config/nvim/module/key/Cmd.nix delete mode 100644 home/config/nvim/module/key/Common.nix create mode 100644 home/config/nvim/module/key/Newline.nix create mode 100644 home/config/nvim/module/key/Save.nix create mode 100644 home/config/nvim/module/key/TabWidth.nix diff --git a/home/config/nvim/default.nix b/home/config/nvim/default.nix index 7bec097..39aabf0 100644 --- a/home/config/nvim/default.nix +++ b/home/config/nvim/default.nix @@ -68,14 +68,17 @@ in { ./module/plugin/lsp/Nix.nix ./module/key/Autocomplete.nix ./module/key/Buffer.nix + ./module/key/Cmd.nix ./module/key/Colorscheme.nix ./module/key/Comment.nix - ./module/key/Common.nix ./module/key/Filetree.nix ./module/key/Gitsigns.nix ./module/key/Navigation.nix + ./module/key/Newline.nix ./module/key/Ollama.nix + ./module/key/Save.nix ./module/key/Sort.nix + ./module/key/TabWidth.nix ./module/key/Telescope.nix ./module/key/Terminal.nix ./module/key/Trouble.nix diff --git a/home/config/nvim/module/key/Cmd.nix b/home/config/nvim/module/key/Cmd.nix new file mode 100644 index 0000000..01138e0 --- /dev/null +++ b/home/config/nvim/module/key/Cmd.nix @@ -0,0 +1,11 @@ +{ ... }: { + text = '' + -- Remap ; to :. + rekey_normal(";", ":") + rekey_visual(";", ":") + + -- Repeat previous command. + rekey_normal(".", "@:") + rekey_visual(".", "@:") + ''; +} diff --git a/home/config/nvim/module/key/Common.nix b/home/config/nvim/module/key/Common.nix deleted file mode 100644 index 209796d..0000000 --- a/home/config/nvim/module/key/Common.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ ... }: { - text = '' - -- Write all we can and exit. Created this to drop non-writable stuff when piping to nvim. - function bye() - pcall(vim.cmd, "wa") - vim.cmd[[qa!]] - end - - function toggle_tab_width() - if vim.bo.shiftwidth == 2 then - vim.bo.shiftwidth = 4 - vim.bo.tabstop = 4 - vim.bo.softtabstop = 4 - elseif vim.bo.shiftwidth == 4 then - vim.bo.shiftwidth = 8 - vim.bo.tabstop = 8 - vim.bo.softtabstop = 8 - elseif vim.bo.shiftwidth == 8 then - vim.bo.shiftwidth = 2 - vim.bo.tabstop = 2 - vim.bo.softtabstop = 2 - end - end - - rekey_normal("", "lua toggle_tab_width()") - - -- Repeat previous command. - rekey_normal(".", "@:") - rekey_visual(".", "@:") - - -- Save everything. - rekey_normal("", "wa!") - rekey_input("", "wa!") - - -- Save all we can and leave. - rekey_normal("z", "lua bye()") - - -- Just leave, no saves. - rekey_normal("Z", "qa!") - - -- Remap ; to :. - rekey_normal(";", ":") - rekey_visual(";", ":") - ''; -} diff --git a/home/config/nvim/module/key/Newline.nix b/home/config/nvim/module/key/Newline.nix new file mode 100644 index 0000000..0a6bbf2 --- /dev/null +++ b/home/config/nvim/module/key/Newline.nix @@ -0,0 +1,5 @@ +{ ... }: { + text = '' + remap_input("", "o") + ''; +} diff --git a/home/config/nvim/module/key/Save.nix b/home/config/nvim/module/key/Save.nix new file mode 100644 index 0000000..c7d3cba --- /dev/null +++ b/home/config/nvim/module/key/Save.nix @@ -0,0 +1,19 @@ +{ ... }: { + text = '' + -- Write all we can and exit. Created this to drop non-writable stuff when piping to nvim. + function bye() + pcall(vim.cmd, "wa") + vim.cmd[[qa!]] + end + + -- Save everything. + rekey_normal("", "wa!") + rekey_input("", "wa!") + + -- Save all we can and leave. + rekey_normal("z", "lua bye()") + + -- Just leave, no saves. + rekey_normal("Z", "qa!") + ''; +} diff --git a/home/config/nvim/module/key/TabWidth.nix b/home/config/nvim/module/key/TabWidth.nix new file mode 100644 index 0000000..741760a --- /dev/null +++ b/home/config/nvim/module/key/TabWidth.nix @@ -0,0 +1,21 @@ +{ ... }: { + text = '' + function toggle_tab_width() + if vim.bo.shiftwidth == 2 then + vim.bo.shiftwidth = 4 + vim.bo.tabstop = 4 + vim.bo.softtabstop = 4 + elseif vim.bo.shiftwidth == 4 then + vim.bo.shiftwidth = 8 + vim.bo.tabstop = 8 + vim.bo.softtabstop = 8 + elseif vim.bo.shiftwidth == 8 then + vim.bo.shiftwidth = 2 + vim.bo.tabstop = 2 + vim.bo.softtabstop = 2 + end + end + + rekey_normal("", "lua toggle_tab_width()") + ''; +}