vim: How to insert output of shell command in-line?












0















Suppose I want to edit a new libvirt XML file:



virsh dumpxml machine1 > machine2.xml


Then I open the file with vim,



vim machine2.xml


and then I want to change the UUID. Now do this, I use



:r ! uuidgen


But the new UUID is inserted under the current line:



<uuid>6r123ttz-6t01-356t-1y7h-g7oe196c8u3m</uuid>
e67baf90-751b-4aea-a14b-aca1b881542b


How may I insert the output of the uuidgen command into the current line, so that if I have



<uuid></uuid>


(with the cursor between ><), then, by executing uuidgen I get



<uuid>e67baf90-751b-4aea-a14b-aca1b881542b</uuid>


The question is: is possible to use the :r vim command without adding a new line?










share|improve this question

























  • I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

    – Kusalananda
    6 mins ago
















0















Suppose I want to edit a new libvirt XML file:



virsh dumpxml machine1 > machine2.xml


Then I open the file with vim,



vim machine2.xml


and then I want to change the UUID. Now do this, I use



:r ! uuidgen


But the new UUID is inserted under the current line:



<uuid>6r123ttz-6t01-356t-1y7h-g7oe196c8u3m</uuid>
e67baf90-751b-4aea-a14b-aca1b881542b


How may I insert the output of the uuidgen command into the current line, so that if I have



<uuid></uuid>


(with the cursor between ><), then, by executing uuidgen I get



<uuid>e67baf90-751b-4aea-a14b-aca1b881542b</uuid>


The question is: is possible to use the :r vim command without adding a new line?










share|improve this question

























  • I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

    – Kusalananda
    6 mins ago














0












0








0








Suppose I want to edit a new libvirt XML file:



virsh dumpxml machine1 > machine2.xml


Then I open the file with vim,



vim machine2.xml


and then I want to change the UUID. Now do this, I use



:r ! uuidgen


But the new UUID is inserted under the current line:



<uuid>6r123ttz-6t01-356t-1y7h-g7oe196c8u3m</uuid>
e67baf90-751b-4aea-a14b-aca1b881542b


How may I insert the output of the uuidgen command into the current line, so that if I have



<uuid></uuid>


(with the cursor between ><), then, by executing uuidgen I get



<uuid>e67baf90-751b-4aea-a14b-aca1b881542b</uuid>


The question is: is possible to use the :r vim command without adding a new line?










share|improve this question
















Suppose I want to edit a new libvirt XML file:



virsh dumpxml machine1 > machine2.xml


Then I open the file with vim,



vim machine2.xml


and then I want to change the UUID. Now do this, I use



:r ! uuidgen


But the new UUID is inserted under the current line:



<uuid>6r123ttz-6t01-356t-1y7h-g7oe196c8u3m</uuid>
e67baf90-751b-4aea-a14b-aca1b881542b


How may I insert the output of the uuidgen command into the current line, so that if I have



<uuid></uuid>


(with the cursor between ><), then, by executing uuidgen I get



<uuid>e67baf90-751b-4aea-a14b-aca1b881542b</uuid>


The question is: is possible to use the :r vim command without adding a new line?







vim






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 7 mins ago









Kusalananda

137k17258426




137k17258426










asked 6 hours ago









elbarnaelbarna

4,199123986




4,199123986













  • I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

    – Kusalananda
    6 mins ago



















  • I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

    – Kusalananda
    6 mins ago

















I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

– Kusalananda
6 mins ago





I reformulated the question. If you feel that I misrepresented you, then feel free to roll back the edit.

– Kusalananda
6 mins ago










1 Answer
1






active

oldest

votes


















0














I had a play around and this doesn't do exactly as you want as :r will always enter a newline. But it should do what you want for a result.



:.!UUID=`uuidgen` ; echo "<uuid>$UUID</uuid>"


It puts the stdout on the current line (not at the cursor) - the smarts are done with the command that is being invoked.






share|improve this answer








New contributor




hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "106"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f508407%2fvim-how-to-insert-output-of-shell-command-in-line%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I had a play around and this doesn't do exactly as you want as :r will always enter a newline. But it should do what you want for a result.



    :.!UUID=`uuidgen` ; echo "<uuid>$UUID</uuid>"


    It puts the stdout on the current line (not at the cursor) - the smarts are done with the command that is being invoked.






    share|improve this answer








    New contributor




    hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.

























      0














      I had a play around and this doesn't do exactly as you want as :r will always enter a newline. But it should do what you want for a result.



      :.!UUID=`uuidgen` ; echo "<uuid>$UUID</uuid>"


      It puts the stdout on the current line (not at the cursor) - the smarts are done with the command that is being invoked.






      share|improve this answer








      New contributor




      hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.























        0












        0








        0







        I had a play around and this doesn't do exactly as you want as :r will always enter a newline. But it should do what you want for a result.



        :.!UUID=`uuidgen` ; echo "<uuid>$UUID</uuid>"


        It puts the stdout on the current line (not at the cursor) - the smarts are done with the command that is being invoked.






        share|improve this answer








        New contributor




        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.










        I had a play around and this doesn't do exactly as you want as :r will always enter a newline. But it should do what you want for a result.



        :.!UUID=`uuidgen` ; echo "<uuid>$UUID</uuid>"


        It puts the stdout on the current line (not at the cursor) - the smarts are done with the command that is being invoked.







        share|improve this answer








        New contributor




        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        share|improve this answer



        share|improve this answer






        New contributor




        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        answered 26 mins ago









        hqqnshqqns

        1




        1




        New contributor




        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.





        New contributor





        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.






        hqqns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Unix & Linux Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f508407%2fvim-how-to-insert-output-of-shell-command-in-line%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            CARDNET

            Boot-repair Failure: Unable to locate package grub-common:i386

            濃尾地震