diff options
| author | seraphim <18ycm9tx@anonaddy.me> | 2026-08-27 11:50:43 +0700 |
|---|---|---|
| committer | seraphim <18ycm9tx@anonaddy.me> | 2026-08-27 11:50:43 +0700 |
| commit | 6fc7f49449cb237e1aa37eb1025461fe3ea39589 (patch) | |
| tree | ceebc8a65556830627a4546da57e30e72945175e /.config/nvim | |
| parent | cc7b61a1496d25a100f012300c1121835a9f8177 (diff) | |
.
Diffstat (limited to '.config/nvim')
| -rw-r--r-- | .config/nvim/init.lua | 3 | ||||
| -rwxr-xr-x | .config/nvim/lua/config/keymaps.lua | 8 | ||||
| -rwxr-xr-x | .config/nvim/lua/config/options.lua | 19 | ||||
| -rw-r--r-- | .config/nvim/lua/config/plugins.lua | 4 | ||||
| -rw-r--r-- | .config/nvim/nvim-pack-lock.json | 4 |
5 files changed, 37 insertions, 1 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index e0ef470..de075d5 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -6,3 +6,6 @@ vim.api.nvim_create_autocmd("FocusGained", { require("config.keymaps") require("config.options") require("config.plugins") + +-- must be last: translates all registered mappings (incl. built-ins) +require('langmapper').automapping({ global = true, buffer = true }) diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua index e2987bc..0d482da 100755 --- a/.config/nvim/lua/config/keymaps.lua +++ b/.config/nvim/lua/config/keymaps.lua @@ -11,3 +11,11 @@ vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "moves lines up in visual vim.keymap.set("n", "<leader>al", "<CMD>term<CR>", { desc = "Open terminal" }) vim.keymap.set("n", "<leader>f", vim.lsp.buf.format) + +-- universal clipboard hotkeys (niri sends these synthesized to the focused app) +-- super+c (Ctrl+Insert): copy selection +vim.keymap.set({"n", "v"}, "<C-Insert>", '"+y', { desc = "Copy selection to system clipboard" }) +-- super+v (Shift+Insert): paste +vim.keymap.set({"n", "i", "v"}, "<S-Insert>", '"+p', { desc = "Paste from system clipboard" }) +-- super+x (Shift+Delete): cut (delete selection into system clipboard) +vim.keymap.set({"v"}, "<S-Delete>", '"+d', { desc = "Cut selection to system clipboard" }) diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua index dac7c76..b9d7e90 100755 --- a/.config/nvim/lua/config/options.lua +++ b/.config/nvim/lua/config/options.lua @@ -2,8 +2,9 @@ vim.cmd("let g:netrw_banner = 0") vim.cmd("set termguicolors") vim.opt.guicursor = "" +vim.opt.clipboard = "unnamedplus" vim.opt.nu = true -vim.opt.relativenumber = false +vim.opt.relativenumber = true vim.opt.tabstop = 2 vim.opt.softtabstop = 2 @@ -37,4 +38,20 @@ vim.opt.hlsearch = true vim.opt.mouse = "a" vim.g.editorconfig = true +-- Russian layout: base layer so QWERTY motions work while Ru is active +-- (langmapper.nvim handles translated *mappings* on top of this) +do + local function escape(str) + return vim.fn.escape(str, [[;,."|\]]) + end + local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] + local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] + local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] + local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] + vim.opt.langmap = vim.fn.join({ + escape(ru_shift) .. ";" .. escape(en_shift), + escape(ru) .. ";" .. escape(en), + }, ",") +end + vim.g.markdown_folding = 1 diff --git a/.config/nvim/lua/config/plugins.lua b/.config/nvim/lua/config/plugins.lua index 464a5ae..0cd74b2 100644 --- a/.config/nvim/lua/config/plugins.lua +++ b/.config/nvim/lua/config/plugins.lua @@ -27,8 +27,12 @@ vim.pack.add { 'https://github.com/antosha417/nvim-lsp-file-operations', 'https://github.com/nvim-telescope/telescope-ui-select.nvim', 'https://github.com/MeanderingProgrammer/render-markdown.nvim', + 'https://github.com/Wansmer/langmapper.nvim', } +-- langmapper: translates registered mappings so they work while Ru is active +require('langmapper').setup() + -- vlang --vim.lsp.config.vlang.setup({}) diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json index dc69b9a..dae1c4d 100644 --- a/.config/nvim/nvim-pack-lock.json +++ b/.config/nvim/nvim-pack-lock.json @@ -16,6 +16,10 @@ "rev": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3", "src": "https://github.com/thePrimeagen/harpoon" }, + "langmapper.nvim": { + "rev": "49462fd9f4f33cf8cfbaa779ba07d3c0b255cc06", + "src": "https://github.com/Wansmer/langmapper.nvim" + }, "lualine.nvim": { "rev": "47f91c416daef12db467145e16bed5bbfe00add8", "src": "https://github.com/nvim-lualine/lualine.nvim" |
