recherche

Maison  >  Questions et réponses  >  le corps du texte

Répétez la commande de mappage en mode d'affichage vim

J'ai écrit une fonction vim pour imprimer les lignes de texte sélectionnées et effectuer le mappage des touches de raccourci. Le code est le suivant :

function! EchoVisual()
        let st= getpos("'<")[1]
        let ed= getpos("'>")[1]
        execute '!sed -n '.st.','.ed.'p '.expand('%:p')
endfunction


vmap <leader>e :call EchoVisual()<CR>

Mais en exécution réelle, la fonction EchoVisual sera exécutée n fois à chaque fois que j'appuie sur <leader>e La taille de n est la même que le nombre de lignes que j'ai sélectionnées. Quel est le problème ? Comment le résoudre?

PHP中文网PHP中文网2743 Il y a quelques jours704

répondre à tous(2)je répondrai

  • 漂亮男人

    漂亮男人2017-05-16 16:44:01

    Maintenant je sais

    command! -range=% EchoVisual :!sed -n <line1>,<line2>p %:p
    vmap <leader>e :EchoVisual<CR>
    

    répondre
    0
  • 阿神

    阿神2017-05-16 16:44:01

    command! -range=% EchoVisual :<line1>,<line2>p | echo expand('%:p')
    vmap <leader>e :EchoVisual<CR>
    

    Comment ?

    répondre
    0
  • Annulerrépondre