Given the result of grep -n, how can I open vim in that specific line? (using only keyboard)











up vote
3
down vote

favorite












When I run grep "keyword" -n and get the following list of results:



a/b/c:10:    keyword
a/b/c:70: keyword
a/b/d:50: keyword


How can I open one of the files (say the 2nd in list) in the line it found?



I now just copy the the output using my mouse, and copy it after vim and then add + with the line number I copy. (meaning I write vim a/b/c +70 using the mouse copy to get the file name, and another mouse copy to get the line number [or I just copy it by hand, when its short enough])



Is there a way to do it with a keyboard shortcut?










share|improve this question
























  • You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
    – Arkadiusz Drabczyk
    2 hours ago






  • 2




    Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
    – muru
    2 hours ago















up vote
3
down vote

favorite












When I run grep "keyword" -n and get the following list of results:



a/b/c:10:    keyword
a/b/c:70: keyword
a/b/d:50: keyword


How can I open one of the files (say the 2nd in list) in the line it found?



I now just copy the the output using my mouse, and copy it after vim and then add + with the line number I copy. (meaning I write vim a/b/c +70 using the mouse copy to get the file name, and another mouse copy to get the line number [or I just copy it by hand, when its short enough])



Is there a way to do it with a keyboard shortcut?










share|improve this question
























  • You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
    – Arkadiusz Drabczyk
    2 hours ago






  • 2




    Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
    – muru
    2 hours ago













up vote
3
down vote

favorite









up vote
3
down vote

favorite











When I run grep "keyword" -n and get the following list of results:



a/b/c:10:    keyword
a/b/c:70: keyword
a/b/d:50: keyword


How can I open one of the files (say the 2nd in list) in the line it found?



I now just copy the the output using my mouse, and copy it after vim and then add + with the line number I copy. (meaning I write vim a/b/c +70 using the mouse copy to get the file name, and another mouse copy to get the line number [or I just copy it by hand, when its short enough])



Is there a way to do it with a keyboard shortcut?










share|improve this question















When I run grep "keyword" -n and get the following list of results:



a/b/c:10:    keyword
a/b/c:70: keyword
a/b/d:50: keyword


How can I open one of the files (say the 2nd in list) in the line it found?



I now just copy the the output using my mouse, and copy it after vim and then add + with the line number I copy. (meaning I write vim a/b/c +70 using the mouse copy to get the file name, and another mouse copy to get the line number [or I just copy it by hand, when its short enough])



Is there a way to do it with a keyboard shortcut?







command-line vim grep






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago









muru

135k19288488




135k19288488










asked 3 hours ago









CIsForCookies

1938




1938












  • You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
    – Arkadiusz Drabczyk
    2 hours ago






  • 2




    Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
    – muru
    2 hours ago


















  • You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
    – Arkadiusz Drabczyk
    2 hours ago






  • 2




    Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
    – muru
    2 hours ago
















You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
– Arkadiusz Drabczyk
2 hours ago




You can try something like that: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.
– Arkadiusz Drabczyk
2 hours ago




2




2




Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
– muru
2 hours ago




Also, if you're interested in using Vim more efficiently, do check out the dedicated Vi and Vim Stack Exchange site.
– muru
2 hours ago










1 Answer
1






active

oldest

votes

















up vote
5
down vote



accepted










Two things:





  1. Vim has some support for grep.



    If you open Vim, and do :grep keyword ..., Vim populates the quickfix list with the results, and jumps to the first file. You can then jump to the nth quickfix entry with :cc n (and other commands).




  2. You can populate the aforementioned quickfix list using grep's output:



    vim -q <(grep -n keyword ...)


    And then use the quickfix navigation commands mentioned above.




Either is simpler than playing around with grep's output manually.



As an alternative to (2), you can save grep's output to a file and use that file instead, if you think you won't necessarily open Vim after:



grep ... | tee log
vim -q log





share|improve this answer





















  • Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
    – CIsForCookies
    2 hours ago






  • 2




    @CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
    – muru
    1 hour ago













Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
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',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2faskubuntu.com%2fquestions%2f1100032%2fgiven-the-result-of-grep-n-how-can-i-open-vim-in-that-specific-line-using-on%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








up vote
5
down vote



accepted










Two things:





  1. Vim has some support for grep.



    If you open Vim, and do :grep keyword ..., Vim populates the quickfix list with the results, and jumps to the first file. You can then jump to the nth quickfix entry with :cc n (and other commands).




  2. You can populate the aforementioned quickfix list using grep's output:



    vim -q <(grep -n keyword ...)


    And then use the quickfix navigation commands mentioned above.




Either is simpler than playing around with grep's output manually.



As an alternative to (2), you can save grep's output to a file and use that file instead, if you think you won't necessarily open Vim after:



grep ... | tee log
vim -q log





share|improve this answer





















  • Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
    – CIsForCookies
    2 hours ago






  • 2




    @CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
    – muru
    1 hour ago

















up vote
5
down vote



accepted










Two things:





  1. Vim has some support for grep.



    If you open Vim, and do :grep keyword ..., Vim populates the quickfix list with the results, and jumps to the first file. You can then jump to the nth quickfix entry with :cc n (and other commands).




  2. You can populate the aforementioned quickfix list using grep's output:



    vim -q <(grep -n keyword ...)


    And then use the quickfix navigation commands mentioned above.




Either is simpler than playing around with grep's output manually.



As an alternative to (2), you can save grep's output to a file and use that file instead, if you think you won't necessarily open Vim after:



grep ... | tee log
vim -q log





share|improve this answer





















  • Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
    – CIsForCookies
    2 hours ago






  • 2




    @CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
    – muru
    1 hour ago















up vote
5
down vote



accepted







up vote
5
down vote



accepted






Two things:





  1. Vim has some support for grep.



    If you open Vim, and do :grep keyword ..., Vim populates the quickfix list with the results, and jumps to the first file. You can then jump to the nth quickfix entry with :cc n (and other commands).




  2. You can populate the aforementioned quickfix list using grep's output:



    vim -q <(grep -n keyword ...)


    And then use the quickfix navigation commands mentioned above.




Either is simpler than playing around with grep's output manually.



As an alternative to (2), you can save grep's output to a file and use that file instead, if you think you won't necessarily open Vim after:



grep ... | tee log
vim -q log





share|improve this answer












Two things:





  1. Vim has some support for grep.



    If you open Vim, and do :grep keyword ..., Vim populates the quickfix list with the results, and jumps to the first file. You can then jump to the nth quickfix entry with :cc n (and other commands).




  2. You can populate the aforementioned quickfix list using grep's output:



    vim -q <(grep -n keyword ...)


    And then use the quickfix navigation commands mentioned above.




Either is simpler than playing around with grep's output manually.



As an alternative to (2), you can save grep's output to a file and use that file instead, if you think you won't necessarily open Vim after:



grep ... | tee log
vim -q log






share|improve this answer












share|improve this answer



share|improve this answer










answered 2 hours ago









muru

135k19288488




135k19288488












  • Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
    – CIsForCookies
    2 hours ago






  • 2




    @CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
    – muru
    1 hour ago




















  • Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
    – CIsForCookies
    2 hours ago






  • 2




    @CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
    – muru
    1 hour ago


















Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
– CIsForCookies
2 hours ago




Trying to use the same method on git status, to no avail :( - vim -q <(git status | grep modified)
– CIsForCookies
2 hours ago




2




2




@CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
– muru
1 hour ago






@CIsForCookies That won't be in the same format as grep -n (<filename>:<line>: ...). I use the fugitive plugin for Git, and then it's a matter of :Gstatus, move to desired file and press Enter.
– muru
1 hour ago




















draft saved

draft discarded




















































Thanks for contributing an answer to Ask Ubuntu!


  • 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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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%2faskubuntu.com%2fquestions%2f1100032%2fgiven-the-result-of-grep-n-how-can-i-open-vim-in-that-specific-line-using-on%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

What visual should I use to simply compare current year value vs last year in Power BI desktop

How to ignore python UserWarning in pytest?

Alexandru Averescu