From ac58cb8e338c3abbe82c4031d08c290c37ccb278 Mon Sep 17 00:00:00 2001 From: thek4n Date: Tue, 21 May 2024 15:15:17 +0300 Subject: [PATCH] feat(nvim): prevent dot command to change cursor position --- .../nvim/lua/core/mappings/mappings.lua | 19 +++++++++++++++++++ home/user/.config/nvim/lua/core/options.lua | 9 +++++++++ 2 files changed, 28 insertions(+) diff --git a/home/user/.config/nvim/lua/core/mappings/mappings.lua b/home/user/.config/nvim/lua/core/mappings/mappings.lua index f5e4ce3..f2e82bb 100644 --- a/home/user/.config/nvim/lua/core/mappings/mappings.lua +++ b/home/user/.config/nvim/lua/core/mappings/mappings.lua @@ -35,6 +35,25 @@ map('n', 'hl', create_function_tabdo('lua toggle_number_style()'), map('i', 'jf', '`^') map('i', 'оа', '`^') +map('i', + '', + function() + local current_line, _ = unpack(vim.api.nvim_win_get_cursor(0)) + vim.api.nvim_win_set_cursor(0, {current_line, COLUMN_NUMBER_BEFORE_INSERT}) + vim.cmd('stopinsert') + end +) + +map('n', + '.', + function() + local current_position = vim.api.nvim_win_get_cursor(0) + vim.cmd('norm! .') + vim.api.nvim_win_set_cursor(0, current_position) + end, + {remap = false} +) + map('n', 'Ж', ':') map('n', '', 'o') diff --git a/home/user/.config/nvim/lua/core/options.lua b/home/user/.config/nvim/lua/core/options.lua index e217930..c6b071e 100644 --- a/home/user/.config/nvim/lua/core/options.lua +++ b/home/user/.config/nvim/lua/core/options.lua @@ -60,6 +60,15 @@ opt.mouse = 'a' opt.scrolloff = 999 +COLUMN_NUMBER_BEFORE_INSERT=1 + +vim.api.nvim_create_autocmd("InsertEnter", { + callback = function() + _, COLUMN_NUMBER_BEFORE_INSERT = unpack(vim.api.nvim_win_get_cursor(0)) + end, +}) + + -- disable paste comment on new line vim.api.nvim_create_autocmd("BufEnter", { pattern = {"*"},