diff --git a/ftplugin/c.lua b/ftplugin/c.lua new file mode 100644 index 0000000..68676e5 --- /dev/null +++ b/ftplugin/c.lua @@ -0,0 +1,4 @@ +vim.bo.tabstop = 4 +vim.bo.shiftwidth = 4 +vim.bo.expandtab = true +vim.bo.softtabstop = 4 diff --git a/ftplugin/feature.lua b/ftplugin/feature.lua new file mode 100644 index 0000000..9edb208 --- /dev/null +++ b/ftplugin/feature.lua @@ -0,0 +1,4 @@ +vim.bo.tabstop = 2 +vim.bo.shiftwidth = 2 +vim.bo.expandtab = true +vim.bo.softtabstop = 2 diff --git a/ftplugin/toml.lua b/ftplugin/toml.lua new file mode 100644 index 0000000..9edb208 --- /dev/null +++ b/ftplugin/toml.lua @@ -0,0 +1,4 @@ +vim.bo.tabstop = 2 +vim.bo.shiftwidth = 2 +vim.bo.expandtab = true +vim.bo.softtabstop = 2 diff --git a/ftplugin/xml.lua b/ftplugin/xml.lua new file mode 100644 index 0000000..9edb208 --- /dev/null +++ b/ftplugin/xml.lua @@ -0,0 +1,4 @@ +vim.bo.tabstop = 2 +vim.bo.shiftwidth = 2 +vim.bo.expandtab = true +vim.bo.softtabstop = 2 diff --git a/lua/core/mappings/qwerty_en_mappings.lua b/lua/core/mappings/qwerty_en_mappings.lua new file mode 100644 index 0000000..b75db80 --- /dev/null +++ b/lua/core/mappings/qwerty_en_mappings.lua @@ -0,0 +1,66 @@ +local opts = { noremap = true, silent = true } + +-- Shorten function name +local keymap = vim.keymap.set + +--Remap space as leader key +keymap("", "", "", opts) +vim.g.mapleader = " " +vim.g.maplocalleader = " " + +-- Modes +-- normal_mode = "n", +-- insert_mode = "i", +-- visual_mode = "v", +-- visual_block_mode = "x", +-- term_mode = "t", +-- command_mode = "c", + +-- Normal -- +-- Better window navigation +keymap("n", "", "h", opts) +keymap("n", "", "j", opts) +keymap("n", "", "k", opts) +keymap("n", "", "l", opts) + +-- Resize with arrows +keymap("n", "", ":resize +2", opts) +keymap("n", "", ":resize -2", opts) +keymap("n", "", ":vertical resize +2", opts) +keymap("n", "", ":vertical resize -2", opts) + +-- Navigate buffers +keymap("n", "", ":bnext", opts) +keymap("n", "", ":bprevious", opts) + +-- Move text up and down +keymap("n", "", ":m .+1==", opts) +keymap("n", "", ":m .-2==", opts) + +-- Insert -- +keymap("i", "jj", "", opts) +keymap("i", "kk", "", opts) + +-- Visual -- +-- Stay in indent mode +keymap("v", "<", "", ">gv^", opts) + +-- Move text up and down +keymap("v", "", ":m '>+1gv=gv", opts) +keymap("v", "", ":m '<-2gv=gv", opts) +keymap("v", "p", '"_dP', opts) + +-- Visual Block -- +-- Move text up and down +keymap("x", "J", ":m '>+1gv=gv", opts) +keymap("x", "K", ":m '<-2gv=gv", opts) +keymap("x", "", ":m '>+1gv=gv", opts) +keymap("x", "", ":m '<-2gv=gv", opts) + +-- Terminal -- +-- Better terminal navigation +-- kkeymap("t", "", "h", term_opts) +-- kkeymap("t", "", "j", term_opts) +-- keymap("t", "", "k", term_opts) +-- keymap("t", "", "l", term_opts) diff --git a/lua/core/mappings/йцукен_ru_mappings.lua b/lua/core/mappings/йцукен_ru_mappings.lua new file mode 100644 index 0000000..073117e --- /dev/null +++ b/lua/core/mappings/йцукен_ru_mappings.lua @@ -0,0 +1,148 @@ +--[[ +буква(ы) = Space (пробел) + = = Meta (Alt) (также можно исп. вместо ) + = Ctrl + или = Shift (русские буквы писать заглавной и без <>) + = Meta eсли ≠ Alt + = Super (Win) +--]] + +-- Для исп. нескольких символов в комбинации клавиш можно исп. только (остальные не сработают) +-- Для того, чтобы исп. shift и ещё какой-то модификатор, букву нужно писать заглавной +-- Учтите, что клавишы, назначенные системой, будут главнее => сработает системная комбинация вместо установленной здесь +-- Русские сочетания клавиш добавляются здесь (для сохранения удобной структуры), хотя никто не запрещает создавать их в lua/core/mappings.lua + +vim.keymap.set({"n", "v"}, "у", "e") +vim.keymap.set({"n", "v"}, "ц", "w") +vim.keymap.set({"n", "v"}, "и", "b") +vim.keymap.set({"n", "v"}, ";", "$") +vim.keymap.set({"n", "v"}, "й", "q") + +vim.keymap.set("n", "", ":w") -- Сохранить файл +vim.keymap.set("n", "", ":q") -- Закрыть Neovim + +-- Normal mode +vim.keymap.set("i", "оо", "") +vim.keymap.set("i", "лл", "") + +-- Command mode +vim.keymap.set("n", "Ж", ":") + +-- Insert mode +vim.keymap.set("n", "ф", "a") +vim.keymap.set("n", "Ф", "A") +vim.keymap.set("n", "щ", "o") +vim.keymap.set("n", "Щ", "O") +vim.keymap.set("n", "ш", "i") +vim.keymap.set("n", "Ш", "I") +vim.keymap.set("n", "з", "p") +vim.keymap.set("n", "З", "P") +vim.keymap.set("v", "с", "c") + +-- Перемещение влево +vim.keymap.set("n", "р", "h") +vim.keymap.set("v", "р", "h") + +-- Перемещение вниз +vim.keymap.set("n", "о", "j") +vim.keymap.set("v", "о", "j") + +-- Перемещение вверх +vim.keymap.set("n", "л", "k") +vim.keymap.set("v", "л", "k") + +-- Перемещение вправо +vim.keymap.set("n", "д", "l") +vim.keymap.set("v", "д", "l") + +-- Удаление +vim.keymap.set("n", "в", "d") +vim.keymap.set("v", "в", "d") +vim.keymap.set("n", "вв", "dd") +vim.keymap.set("n", "ч", "x") +vim.keymap.set("v", "ч", "x") + +-- Вставка +vim.keymap.set("n", "з", "p") +vim.keymap.set("n", "З", "P") +vim.keymap.set("v", "з", "p") +vim.keymap.set("v", "З", "P") + +-- Отмена действия +vim.keymap.set("n", "г", "u") + +-- Копирование +vim.keymap.set("n", "нн", "yy") +vim.keymap.set("n", "н", "y") +vim.keymap.set("v", "н", "yy") + +-- Замена replace +vim.keymap.set("n", "к", "r") + +-- Заменить change +vim.keymap.set("n", "с", "c") + +-- Работа с вкладками (буферами) +vim.keymap.set("n", "ч", ":BufferLineSortByTabs:BufferLineCloseRight") -- Закрытие всех буферов +vim.keymap.set("n", "Ч", ":BufferLinePickClose") -- Закрытие одного буфера +vim.api.nvim_set_keymap("n", "", ":lua _G.close_and_go_right()", { noremap = true, silent = true }) -- подробнее в lua/core/utils.lua +vim.keymap.set("n", "", ":BufferLineMoveNext") -- переместить вкладку вперед +vim.keymap.set("n", "", ":BufferLineMovePrev") -- переместить вкладку назад + +-- Выделение +vim.keymap.set("n", "м", "v") +vim.keymap.set("v", "м", "v") +vim.keymap.set("n", "М", "V") +vim.keymap.set("v", "М", "V") + +-- Файловый менеджер +vim.keymap.set("n", "", ":Neotree toggle float") -- Открыть/Закрыть файловое дерево в плавающем режиме +vim.keymap.set("n", "", ":Neotree toggle left") -- -- Открыть/Закрыть файловое дерево слева сбоку +-- vim.keymap.set("n", "", ":Neotree toggle") -- Открыть/Закрыть файловое дерево (используется последний активный режим) +vim.keymap.set("n", "ы", ":Neotree show reveal") -- Показать файл в дереве (не работает в плавающем режиме) + +-- Навигация +vim.keymap.set("n", "", ":wincmd k") -- Переключиться на верхнее окно +vim.keymap.set("n", "", ":wincmd j") -- Переключиться на нижнее окно +vim.keymap.set("n", "", ":wincmd h") -- Переключиться на левое окно +vim.keymap.set("n", "", ":wincmd l") -- Переключиться на правое окно + +-- В начало и конец файла +vim.keymap.set("n", "пп", "gg") +vim.keymap.set("v", "пп", "gg") +vim.keymap.set("n", "П", "G") +vim.keymap.set("v", "П", "G") +vim.keymap.set("n", "", "") +vim.keymap.set("v", "", "") +vim.keymap.set("n", "", "") +vim.keymap.set("v", "", "") + +--[[ Если строка визуально разбита на несколько строк, то курсор перепрыгнет через них, так как считает, что это одна строка +При помощи настройки ниже курсор будет перемещаться по ним будто это разные строки --]] +vim.keymap.set('n', 'о', "v:count == 0 ? 'gj' : 'j'", { + expr = true, +}) +vim.keymap.set('n', 'л', "v:count == 0 ? 'gk' : 'k'", { + expr = true, +}) + + +-- Терминал +vim.keymap.set("n", "", ":ToggleTerm direction=float") -- Открыть терминал в плавающем режиме + +vim.keymap.set("n", "Е", function() require("trouble").toggle() end) -- Открыть/Закрыть список проблем (расширение ) + +--[[ +Включить/Выключить подсветку Treesitter, то есть исп. подсветку от Treesitter или встроенную от LSP +Подсветка от Treesitter выдаёт более качественную подсветку по сравнению с LSP, но может замедлять работу Neovim в больших файлах +Благодаря этому хоткею можно переключаться между ними в зависимости от потребностей и личных приоритетов +--]] +vim.keymap.set("n", "", + function() if vim.b.ts_highlight then vim.treesitter.stop() else vim.treesitter.start() end end, + { desc = "Toggle Treesitter Highlight" }) + + +vim.keymap.set("n", "се", ":ColorizerToggle") -- Включить/Отключить подсветку цветовых кодов + +vim.keymap.set("n", "", ":m+1") -- Переместить строку под курсором на одну строку вниз +vim.keymap.set("n", "", ":m-2") -- Переместить строку под курсором на одну строку вверх