new: Made some keymaps dot-repeatable
This commit is contained in:
parent
cf34340f3c
commit
0bcc15cb62
5 changed files with 65 additions and 19 deletions
|
@ -1,13 +1,22 @@
|
||||||
-- This file lists all the global keymaps
|
-- This file lists all the global keymaps
|
||||||
local map = vim.keymap.set
|
local map = vim.keymap.set
|
||||||
local g = vim.g
|
local g = vim.g
|
||||||
local api = vim.api
|
|
||||||
local opt = vim.opt
|
|
||||||
|
|
||||||
-- Change the leader and localleader
|
-- Change the leader and localleader
|
||||||
g.mapleader = ','
|
g.mapleader = ','
|
||||||
g.maplocalleader = ';'
|
g.maplocalleader = ';'
|
||||||
|
|
||||||
|
-- Make a dot-repeatable keymaps
|
||||||
|
local function drmap(mode, motion, keycodes, opts)
|
||||||
|
local termcodes = vim.api.nvim_replace_termcodes(keycodes, true, true, true)
|
||||||
|
local function dot_repeatable()
|
||||||
|
_G.dot_repeat_callback = vim.api.nvim_feedkeys(termcodes, mode, false)
|
||||||
|
vim.go.operatorfunc = 'v:lua.dot_repeat_callback'
|
||||||
|
return 'g@l'
|
||||||
|
end
|
||||||
|
map(mode, motion, dot_repeatable, opts)
|
||||||
|
end
|
||||||
|
|
||||||
-- Use ctrl-[hjkl] to select the active split!
|
-- Use ctrl-[hjkl] to select the active split!
|
||||||
map('n', '<c-k>', ":wincmd k<cr>", { silent = true })
|
map('n', '<c-k>', ":wincmd k<cr>", { silent = true })
|
||||||
map('n', '<c-j>', ":wincmd j<cr>", { silent = true })
|
map('n', '<c-j>', ":wincmd j<cr>", { silent = true })
|
||||||
|
@ -15,10 +24,11 @@ map('n', '<c-h>', ":wincmd h<cr>", { silent = true })
|
||||||
map('n', '<c-l>', ":wincmd l<cr>", { silent = true })
|
map('n', '<c-l>', ":wincmd l<cr>", { silent = true })
|
||||||
|
|
||||||
-- Use ,dd for deleting without putting into buffer etc.
|
-- Use ,dd for deleting without putting into buffer etc.
|
||||||
map({ 'v', 'n' }, '<leader>d', '"_d', { remap = false })
|
drmap('n', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>D', '"_D', { remap = false })
|
map('v', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>x', '"_x', { remap = false })
|
drmap('n', '<leader>D', '"_D', { remap = false })
|
||||||
map('n', '<leader>r', '"_viwP', { remap = false })
|
drmap('n', '<leader>x', '"_x', { remap = false })
|
||||||
|
drmap('n', '<leader>r', '"_viwP', { remap = false })
|
||||||
|
|
||||||
-- Insert a newline in normal mode by ,o and ,O
|
-- Insert a newline in normal mode by ,o and ,O
|
||||||
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
||||||
|
|
|
@ -80,7 +80,8 @@ require("lazy").setup(
|
||||||
version = "1",
|
version = "1",
|
||||||
event = "LspAttach",
|
event = "LspAttach",
|
||||||
config = true,
|
config = true,
|
||||||
}
|
},
|
||||||
|
"dvrlabs/takeout.nvim",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
lockfile = vim.fn.stdpath("config") .. "/config/lazy-lock.json",
|
lockfile = vim.fn.stdpath("config") .. "/config/lazy-lock.json",
|
||||||
|
|
|
@ -55,6 +55,17 @@ g.loaded_python_provider = 0
|
||||||
g.mapleader = ','
|
g.mapleader = ','
|
||||||
g.maplocalleader = ';'
|
g.maplocalleader = ';'
|
||||||
|
|
||||||
|
-- Make a dot-repeatable keymaps
|
||||||
|
local function drmap(mode, motion, keycodes, opts)
|
||||||
|
local termcodes = vim.api.nvim_replace_termcodes(keycodes, true, true, true)
|
||||||
|
local function dot_repeatable()
|
||||||
|
_G.dot_repeat_callback = vim.api.nvim_feedkeys(termcodes, mode, false)
|
||||||
|
vim.go.operatorfunc = 'v:lua.dot_repeat_callback'
|
||||||
|
return 'g@l'
|
||||||
|
end
|
||||||
|
map(mode, motion, dot_repeatable, opts)
|
||||||
|
end
|
||||||
|
|
||||||
-- Use ctrl-[hjkl] to select the active split!
|
-- Use ctrl-[hjkl] to select the active split!
|
||||||
map('n', '<c-k>', ":wincmd k<cr>", { silent = true })
|
map('n', '<c-k>', ":wincmd k<cr>", { silent = true })
|
||||||
map('n', '<c-j>', ":wincmd j<cr>", { silent = true })
|
map('n', '<c-j>', ":wincmd j<cr>", { silent = true })
|
||||||
|
@ -62,10 +73,11 @@ map('n', '<c-h>', ":wincmd h<cr>", { silent = true })
|
||||||
map('n', '<c-l>', ":wincmd l<cr>", { silent = true })
|
map('n', '<c-l>', ":wincmd l<cr>", { silent = true })
|
||||||
|
|
||||||
-- Use ,dd for deleting without putting into buffer etc.
|
-- Use ,dd for deleting without putting into buffer etc.
|
||||||
map({ 'v', 'n' }, '<leader>d', '"_d', { remap = false })
|
drmap('n', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>D', '"_D', { remap = false })
|
map('v', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>x', '"_x', { remap = false })
|
drmap('n', '<leader>D', '"_D', { remap = false })
|
||||||
map('n', '<leader>r', '"_viwP', { remap = false })
|
drmap('n', '<leader>x', '"_x', { remap = false })
|
||||||
|
drmap('n', '<leader>r', '"_viwP', { remap = false })
|
||||||
|
|
||||||
-- Insert a newline in normal mode by ,o and ,O
|
-- Insert a newline in normal mode by ,o and ,O
|
||||||
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
||||||
|
|
|
@ -6,12 +6,23 @@ local g = vim.g
|
||||||
g.mapleader = ','
|
g.mapleader = ','
|
||||||
g.maplocalleader = ';'
|
g.maplocalleader = ';'
|
||||||
|
|
||||||
|
-- Make a dot-repeatable keymaps
|
||||||
|
local function drmap(mode, motion, keycodes, opts)
|
||||||
|
local termcodes = vim.api.nvim_replace_termcodes(keycodes, true, true, true)
|
||||||
|
local function dot_repeatable()
|
||||||
|
_G.dot_repeat_callback = vim.api.nvim_feedkeys(termcodes, mode, false)
|
||||||
|
vim.go.operatorfunc = 'v:lua.dot_repeat_callback'
|
||||||
|
return 'g@l'
|
||||||
|
end
|
||||||
|
map(mode, motion, dot_repeatable, opts)
|
||||||
|
end
|
||||||
|
|
||||||
-- Use ,dd for deleting without putting into buffer etc.
|
-- Use ,dd for deleting without putting into buffer etc.
|
||||||
map({ 'v', 'n' }, '<leader>d', '"_d', { remap = false })
|
drmap('n', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>D', '"_D', { remap = false })
|
map('v', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>x', '"_x', { remap = false })
|
drmap('n', '<leader>D', '"_D', { remap = false })
|
||||||
map('n', '<leader>r', '"_viwP', { remap = false })
|
drmap('n', '<leader>x', '"_x', { remap = false })
|
||||||
|
drmap('n', '<leader>r', '"_viwP', { remap = false })
|
||||||
|
|
||||||
-- Insert a newline in normal mode by ,o and ,O
|
-- Insert a newline in normal mode by ,o and ,O
|
||||||
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
||||||
|
|
|
@ -6,11 +6,23 @@ local g = vim.g
|
||||||
g.mapleader = ','
|
g.mapleader = ','
|
||||||
g.maplocalleader = ';'
|
g.maplocalleader = ';'
|
||||||
|
|
||||||
|
-- Make a dot-repeatable keymaps
|
||||||
|
local function drmap(mode, motion, keycodes, opts)
|
||||||
|
local termcodes = vim.api.nvim_replace_termcodes(keycodes, true, true, true)
|
||||||
|
local function dot_repeatable()
|
||||||
|
_G.dot_repeat_callback = vim.api.nvim_feedkeys(termcodes, mode, false)
|
||||||
|
vim.go.operatorfunc = 'v:lua.dot_repeat_callback'
|
||||||
|
return 'g@l'
|
||||||
|
end
|
||||||
|
map(mode, motion, dot_repeatable, opts)
|
||||||
|
end
|
||||||
|
|
||||||
-- Use ,dd for deleting without putting into buffer etc.
|
-- Use ,dd for deleting without putting into buffer etc.
|
||||||
map({ 'v', 'n' }, '<leader>d', '"_d', { remap = false })
|
drmap('n', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>D', '"_D', { remap = false })
|
map('v', '<leader>d', '"_d', { remap = false })
|
||||||
map('n', '<leader>x', '"_x', { remap = false })
|
drmap('n', '<leader>D', '"_D', { remap = false })
|
||||||
map('n', '<leader>r', '"_viwP', { remap = false })
|
drmap('n', '<leader>x', '"_x', { remap = false })
|
||||||
|
drmap('n', '<leader>r', '"_viwP', { remap = false })
|
||||||
|
|
||||||
-- Insert a newline in normal mode by ,o and ,O
|
-- Insert a newline in normal mode by ,o and ,O
|
||||||
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
map('n', '<leader>o', ":<c-u>call append(line('.'), repeat([''], v:count1))<cr>", { remap = false })
|
||||||
|
|
Loading…
Reference in a new issue