73 lines
3.4 KiB
Lua
73 lines
3.4 KiB
Lua
|
-- colorise les nbsp
|
|||
|
-- highlight NbSp ctermbg=lightgray guibg=lightred
|
|||
|
--hi NbSps ctermbg=lightred guibg=lightred
|
|||
|
--match NbSps /\%xa0\|\%u202F/
|
|||
|
-- bépo
|
|||
|
vim.opt.listchars:append({nbsp = "·", trail = "¤"})
|
|||
|
vim.opt.list = true
|
|||
|
|
|||
|
-- ii devient Esc
|
|||
|
vim.api.nvim_set_keymap('i', 'ii', '<Esc>', {noremap = true, silent = true})
|
|||
|
-- Y pour copier dans le presse papier
|
|||
|
vim.api.nvim_set_keymap('', 'Y', '"+y', {})
|
|||
|
|
|||
|
-- {W} -> [É]
|
|||
|
-- ——————————
|
|||
|
-- On remappe W sur É :
|
|||
|
-- Pour faciliter les manipulations de fenêtres, on utilise {W} comme un Ctrl+W :
|
|||
|
local keymap = vim.keymap.set
|
|||
|
local opts = {noremap = true, silent = true}
|
|||
|
|
|||
|
local map_list = {['é'] = 'w', ['É'] = 'W', ['w'] = '<C-w>'}
|
|||
|
for key,binding in pairs(map_list) do
|
|||
|
keymap('n', key, binding, opts)
|
|||
|
end
|
|||
|
-- Corollaire: on remplace les text objects aw, aW, iw et iW
|
|||
|
-- pour effacer/remplacer un mot quand on n’est pas au début (daé / laé).
|
|||
|
local omap_list = {['aé'] = 'w', ['aÉ'] = 'aW', ['ié'] = 'iw', ['iÉ'] = 'iW'}
|
|||
|
for key,binding in pairs(omap_list) do
|
|||
|
keymap('o', key, binding, opts)
|
|||
|
end
|
|||
|
|
|||
|
-- [HJKL] <-> {CTSR}
|
|||
|
-- ————————————————
|
|||
|
map_list = {
|
|||
|
['c'] = 'h', ['r'] = 'l', ['t'] = 'j', ['s'] = 'k', ['C'] = 'H', ['R'] = 'L', ['T'] = 'J', ['S'] = 'K', -- [HJKL] -> [CTSR]
|
|||
|
['j'] = 't', ['J'] = 'T', ['l'] = 'c', ['L'] = 'C', ['h'] = 'r', ['H'] = 'R', ['k'] = 's', ['K'] = 'S', -- [CTSR] -> [HJKL]: J = jusqu'à, L = change, h = remplace, k = substitute
|
|||
|
['zs'] = 'zj', ['zt'] = 'zk', -- Pour les replis
|
|||
|
[']k'] = ']s', ['[k'] = '[s' , -- correction orthographique
|
|||
|
}
|
|||
|
for key, binding in pairs(map_list) do
|
|||
|
keymap({'n', 'x'}, key, binding, opts)
|
|||
|
end
|
|||
|
|
|||
|
-- Désambiguation de {g}
|
|||
|
-- —————————————————————
|
|||
|
-- ligne écran précédente / suivante (à l'intérieur d'une phrase)
|
|||
|
-- onglets précédent/suivant : gé/gb, premier/dernier onglet : gÉ/gB,
|
|||
|
-- g" = première ligne de l’écran
|
|||
|
local map_list = {['gs'] = 'gk', ['gt'] = 'gj', ['gb'] = 'gT', ['gé'] = 'gt', ['gB'] = ':tabfirst<CR>', ['gÉ'] = ':tablast<CR>', ['g"'] = 'g0', }
|
|||
|
for key, binding in pairs(map_list) do
|
|||
|
keymap({'n', 'x'}, key, binding, opts)
|
|||
|
end
|
|||
|
|
|||
|
-- <> en direct
|
|||
|
-- ————————————
|
|||
|
vim.api.nvim_set_keymap('', '«', '<', {noremap = false, silent = true})
|
|||
|
vim.api.nvim_set_keymap('', '»', '>', {noremap = false, silent = true})
|
|||
|
|
|||
|
-- Chiffres en accès direct
|
|||
|
-- ————————————————————————
|
|||
|
-- À décommenter si on souhaite les avoir
|
|||
|
--local map_list = { ['"'] = '1', ['1'] = '"', ['«'] = '2', ['2'] = '<', ['»'] = '3', ['3'] = '>', ['('] = '4', ['4'] = '(', [')'] = '5', ['5'] = ')', ['@'] = '6', ['6'] = '@', ['+'] = '7', ['7'] = '+', ['-'] = '8', ['8'] = '-', ['/'] = '9', ['9'] = '/', ['*'] = '0', ['0'] = '*', }
|
|||
|
--for key, binding in pairs(map_list) do
|
|||
|
-- vim.api.nvim_set_keymap('', key, binding, { noremap = true, silent = true })
|
|||
|
--end
|
|||
|
|
|||
|
-- Remaper la gestion des fenêtres
|
|||
|
-- ———————————————————————————————
|
|||
|
map_list = {['wt'] = '<C-w>j', ['ws'] = '<C-w>k', ['wc'] = '<C-w>h', ['wr'] = '<C-w>l', ['wd'] = '<C-w>c', ['wo'] = '<C-w>s', ['wp'] = '<C-w>o', ['w<SPACE>'] = ':split<CR>', ['w<CR>'] = ':vsplit<CR>', ['<A-w>'] = '<C-w><C-w>', }
|
|||
|
for key, binding in pairs(map_list) do
|
|||
|
vim.api.nvim_set_keymap('', key, binding, {noremap = true, silent = true})
|
|||
|
end
|