On 2009-11-17, Peng Yu wrote: > $ grep -H -n if /etc/profile>/tmp/grep_output.txt > $ cat /tmp/grep_output.txt > /etc/profile:4:if [ -d /etc/profile.d ]; then > /etc/profile:6: if [ -r $i ]; then > /etc/profile:13:if [ "$PS1" ]; then > /etc/profile:14: if [ "$BASH" ]; then > /etc/profile:16: if [ -f /etc/bash.bashrc ]; then > /etc/profile:20: if [ "`id -u`" -eq 0 ]; then > $ gvim /tmp/grep_output.txt > > > Now, I want to double click a line in 'grep_output.txt' so that gvim > will automatically bring me the corresponding file and line. I'm > wondering how to do so. > > P.S. Similar things can be done when I use ':make', in which cases > gvim can bring me to the error line.
As usual, there are several ways to do this. The easiest is to dispense with the temporary file and invoke your grep command from within vim: :grep if /etc/profile The results go into the quickfix list just as they do when you execute ":make". See :help grep Vim takes care of supplying the right arguments to grep and constructing the command line so that you don't need to supply the -H or -n options yourself. If you already have the temporary file loaded into a buffer in vim, you can move the cursor to the start of any of the lines and type gF to jump to that file and line number. ^WF does the same but opens the file in a new window. See :help gF :help CTRL-W_F A third way, that uses both the temporary file and the quickfix list, is to open your temporary file like this: gvim --cmd 'let &efm=&gfm' -q /tmp/grep_output.txt See :help -q Since the -q option uses the 'errorformat' ('efm') to parse the error file, and since 'errorformat' matches the output of a compiler, not of grep, you need to assign the value of 'grepformat' ('gfm') to 'errorformat' before opening an error file containing the output of a grep command. For other ways to get data into the quickfix list, see :help :cf :help :cb As for jumping to a line by double clicking on the file name and line number, see :help double-click for an example of mapping a double click to the operation of your choice. HTH, Gary --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---