Vim a un excellent mode de collage , dans lequel les abréviations et les correspondances sont ignorées. Frustrement, même les touches qui ne correspondent pas à des caractères ASCII pouvant être collés, telles que les touches de fonction, sont collées littéralement. Par exemple, la clé F2 est collée en tant que <F2>
. Y a-t-il un moyen de contourner cela?
Notez qu’il pastetoggle
est en fait possible de mapper une touche de fonction pour quitter facilement le mode Collé. Toutefois, la fonction que j’écris change d’autres valeurs lors de l’entrée ou de la sortie du mode Coller (telles que l’activation ou la désactivation des numéros de ligne et autres). Par conséquent, j'aimerais vraiment trouver une solution de contournement.
Pour référence, voici la version actuelle de la fonction (qui reste bloquée en mode coller):
iab if if<Space>(<Space>{{<Esc>kA<Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
" Triple-toggle Insert Modes: coding, prose, and paste
let g:insertModeGlobal=1
function! Te()
if g:insertModeGlobal==3
" Was in paste insert mode, go to coding insert mode
set nu
set nopaste
let g:insertModeGlobal=4
endif
if g:insertModeGlobal==2
" Was in prose insert mode, go to paste insert mode
set nolinebreak
nnoremap j j
nnoremap k k
nnoremap gj gj
nnoremap gk gk
set relativenumber
execute ":Signs"
iab if if<Space>(<Space>{{<Esc>kA<Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
set nonu
set paste
let g:insertModeGlobal=3
endif
if g:insertModeGlobal==1
" Was in coding insert mode, go to prose insert mode
set linebreak
nnoremap j gj
nnoremap k gk
nnoremap gj j
nnoremap gk k
set number
execute ":DisableSigns"
iab if if
let g:insertModeGlobal=2
endif
if g:insertModeGlobal==4
let g:insertModeGlobal=1
endif
endfunction