F2 en mode Coller

2

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 pastetoggleest 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
dotancohen
la source

Réponses:

2

Le mode Coller n'est pas destiné aux longues périodes de frappe. Il existe uniquement pour surmonter les limitations de longue date de Vim lors de l'exécution dans un terminal. Vous ne devez pas l'utiliser pour autre chose que coller du texte avec le bouton central de la souris.

Voilà pourquoi set pastetoggle="<F12>"existe: vous voulez coller quelque chose? Appuyez sur <F12>pour entrer en mode coller, coller, appuyez à <F12>nouveau pour quitter le mode coller.

Vous pouvez également utiliser "*pou "+psi votre version de Vim le prend en charge.

romainl
la source
Je vous remercie. Je ne tape pas en mode Coller, mais je l'utilise assez souvent pour que je veuille le garder sur la bascule à trois voies avec mes deux autres modes d'insertion. En outre, cela me permet d'économiser une touche de fonction qui est d'une grande aide, car les autres sont affectés à d'autres tâches.
dotancohen