1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 06:30:03 +08:00
SpaceVim/bundle/vim-bepo/plugin/bepo.vim
2020-06-13 14:06:35 +08:00

78 lines
3.7 KiB
VimL
Vendored

" vim-bepo - Plugin vim pour disposition de clavier bépo
" Maintainer: Micha Moskovic
if exists('g:loaded_bepo') || &compatible
finish
else
let g:loaded_bepo = 1
endif
"s:tomap is for text-objects
function! s:tomap(key, target) abort
if maparg(a:key, 'o') ==# ''
execute "onoremap" a:key a:target
endif
if maparg(a:key, 'x') ==# ''
execute "xnoremap" a:key a:target
endif
endfunction
"s:amap is for the rest
function! s:amap(key, target) abort
if maparg(a:key, 'n') ==# ''
execute "nnoremap" a:key a:target
endif
call s:tomap(a:key, a:target)
endfunction
call s:amap( 'c', 'h' ) "on préserve {hjkl} pour les directions
call s:amap( 't', 'j' ) "on préserve {hjkl} pour les directions
call s:amap( 's', 'k' ) "on préserve {hjkl} pour les directions
call s:amap( 'r', 'l' ) "on préserve {hjkl} pour les directions
call s:amap( 'C', 'H' ) "{HJKL} devient [CTSR]
call s:amap( 'T', 'J' ) "{HJKL} devient [CTSR]
call s:amap( 'S', 'K' ) "{HJKL} devient [CTSR]
call s:amap( 'R', 'L' ) "{HJKL} devient [CTSR]
call s:amap( 'gt', 'gj' ) "on préserve les variantes avec 'g'
call s:amap( 'gs', 'gk' ) "on préserve les variantes avec 'g'
call s:amap( 'zt', 'zj' ) "on préserve les variantes avec 'z'
call s:amap( 'zs', 'zk' ) "on préserve les variantes avec 'z'
call s:amap( 'h', 't' ) "{t} devient [h] pour être proche de [f]
call s:amap( 'H', 'T' ) "idem pour {T} et [H]
call s:amap( 'l', 'c' ) "{c} devient [l]
call s:amap( 'L', 'C' ) "{C} devient [L]
call s:amap( 'j', 'r' ) "{j} devient [r]
call s:amap( 'J', 'R' ) "{J} devient [R]
call s:amap( 'k', 's' ) "{k} devient [s]
call s:amap( 'K', 'S' ) "{h} devient [S]
call s:amap( 'gb', 'gT' ) "le couple [gb]/[gé] agit sur les tabs
call s:amap( 'gé', 'gt' ) "le couple [gb]/[gé] agit sur les tabs
call s:amap( 'gB', ':execute "silent! tabfirst"<CR>' ) "[gB] va au premier tab
call s:amap( 'gÉ', ':execute "silent! tablast"<CR> ' ) "[gÉ] au dernier
call s:amap( 'gT', '<C-]>' ) "[gT] est libéré et peut agir sur les tags
call s:amap( '«', '<' ) "[<] est moins accessible que [«]
call s:amap( '»', '>' ) "idem pour [»] et [>]
call s:amap( ';', ',' ) "idem pour [,] et [;]
call s:amap( ',', ';' ) "qui sont permutés
call s:amap( 'g,', 'g;' ) "idem pour [g,] et [g;]
call s:amap( 'g;', 'g,' ) "qui sont permutés
call s:amap( 'é', 'w' ) "[w] est peu accessible, on utilise [é]
call s:amap( 'É', 'W' ) "idem pour [W] et [É]
call s:tomap( 'aé', 'aw' ) "idem pour [aw] et [aé]
call s:tomap( 'aÉ', 'aW' ) "idem pour [aW] et [aÉ]
call s:tomap( 'ié', 'iw' ) "idem pour [iw] et [ié]
call s:tomap( 'iÉ', 'iW' ) "idem pour [iW] et [iÉ]
call s:amap( 'w', '<C-w>' ) "[w] est libre pour faire <C-w>
call s:amap( 'W', '<C-w><C-w>') "et [w] pour faire <C-w><C-w>
call s:amap( 'wc', '<C-w>h' ) "on map [w]+direction
call s:amap( 'wt', '<C-w>j' ) "on map [w]+direction
call s:amap( 'ws', '<C-w>k' ) "on map [w]+direction
call s:amap( 'wr', '<C-w>l' ) "on map [w]+direction
call s:amap( 'wC', '<C-w>H' ) "idem pour les majuscules
call s:amap( 'wT', '<C-w>J' ) "idem pour les majuscules
call s:amap( 'wS', '<C-w>K' ) "idem pour les majuscules
call s:amap( 'wR', '<C-w>L' ) "idem pour les majuscules
call s:amap( 'wh', '<C-w>s' ) "crée un split _h_orizontal
call s:amap( 'wé', '<C-w>t' ) "va en haut à gauche
call s:amap( 'wÉ', '<C-w>T' ) "déplace sur un nouveau tab