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

by on June 14, 2011 · 9 comments· LAST UPDATED July 29, 2013

in , ,

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:

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Requirementsvim
Estimated completion timeLess than a minute

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

Tweet itFacebook itG+ itDownload PDF versionFound an error/typo on this page?

{ 9 comments… read them below or add one }

1 punktyras June 15, 2011 at 9:52 am

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

431 -> 546

Reply

2 punktyras June 15, 2011 at 9:55 am

And maybye there is the way to go to speciffied occurence of search term? Say, to the last? Or to 25th occurence?

Reply

3 Doug Elliott July 13, 2011 at 2:17 pm

If you want to pre-position at the x’th occurrence of “string”, you can use the command
vi +x/string file

Reply

4 Jimmy A. Gunawan July 14, 2011 at 12:57 am

Use cheatsheet code for standard functions help in vi/vim
This will help for jump finding end line, first line, end of file, etc.

Reply

5 lxtips August 26, 2011 at 8:38 pm

thank-you @doug

Reply

6 Aleksander January 5, 2012 at 2:54 pm

Also note that you can use this functionality from within vim as well, e.g.:
:e +50 path_to_file

Reply

7 Faraz February 8, 2012 at 10:05 am

Thanks Aleksander its very easy and helpfull

Reply

8 Yordan Georgiev September 26, 2013 at 8:15 am

# 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”‘

Reply

9 Mohammed AbdelRahman January 27, 2015 at 6:58 pm

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

Reply

Leave a Comment

Tagged as: , , , , ,

Previous Faq:

Next Faq: