VI / VIM: Open File And Go To Specific Function or Line Number

Posted on in Categories , , last updated July 29, 2013

How do I open a text file using VIM or VI and go to specific line? How do I open a file using vim and go to specific function() in my source code?

The vi / vim text editor supports running any : command using the following syntax:


vi +commandHere fileName

OR

vi +LineNumber fileName

OR

vi +/searchTermHere fileName
vi +/LineNumberHere fileName
vim +/LineNumberHere fileName

To open file and go to line number 546, enter:
$ vim +546 functions
Sample outputs:

Vi / Vim open a file at a specific line number
Fig.01: Vi / Vim open a file at a specific line number

To open file and go to function called killproc(), enter:
$ vim +/killproc functions
Sample outputs:
Vi / vim open a file at a specific function / subroutine / procedure / method in source code
Fig.02: Vi / vim open a file at a specific function / subroutine / procedure / method in source code

Demo: Vim text editor open a file at particular line number

Animated gif 01: VIM in action
Animated gif 01: VIM in action

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

12 comment

  1. # search for a regex string from a dir recursively and print the ready vim cmds
    find $dir -name ‘*.pl’ -exec grep -nHP ‘perl_regex_to_search_with’ {} ; | perl -ne ‘m/^(.*):(d{1,10})(.*)/g;print “vim “. “+$2 ” . “$1 n”‘

  2. Unfortunately, when opening multiple files from command line, I cannot pass a command to each one.
    You can open multiple files with VIM in one line:

    $vim file1 file2 file3

    But the following will not work:
    $vim +43 file1 +31 file2 +76 file3

    This should open file1 with line pointer at line#43 and file2 at line 31 and file3 at line 76
    But what happens is only the last command is used, so file3 opens at line 76 and the other two opens at line 0

Leave a Comment