Répéter la commande pour exécuter un script externe?
J'ai un script appelé lorem.shqui prend le nombre de paragraphes (premier argument) et le nombre de lignes dans chaque paragraphe (deuxième argument) et imprime le texte aléatoire de ce format à la norme. J'ai transformé cela en une liaison de clé vim afin que je puisse entrer ce texte dans mon fichier avec:
nmap <leader>l :read ! ~/lorem.sh 1 100<CR>
Cela fonctionne mais je me demandais s'il serait possible d'ajouter un décompte à cette commande de la même manière que vous pouvez spécifier un décompte pour d'autres commandes comme Nddsupprimer N lignes en dessous de celle actuelle. Si je pouvais avoir quelque chose comme N<leader>ltravailler, je pourrais entrer N paragraphes de texte à la fois.
Merci !
Réponses
Basé sur :help v:count:
*v:count* *count-variable*
v:count The count given for the last Normal mode command. Can be used
to get the count before a mapping. Read-only. Example: >
:map _x :<C-U>echo "the count is " . v:count<CR>
< Note: The <C-U> is required to remove the line range that you
get when typing ':' after a count.
When there are two counts, as in "3d2w", they are multiplied,
just like what happens in the command, "d6w" for the example.
Also used for evaluating the 'formatexpr' option.
"count" also works, for backwards compatibility, unless
|scriptversion| is 3 or higher.
*v:count1* *count1-variable*
v:count1 Just like "v:count", but defaults to one when no count is
used.
Vous voulez
nnoremap <leader>l :execute 'read !~/lorem.sh' v:count1 '100'<CR>
(Remarquez que j'utilise nnoremap; c'est une bonne habitude.)