add a goto-line command to emacs
January 31st, 2006 by Lawrence David
it boggles the mind that emacs – famous for having a bazillion keyboard shortcuts – doesn’t have one for quickly finding a line.
so, here’s how to make one.
go to your home directory in the terminal:
>> cd
and open up the .emacs file that lives there.
add the following line of code to it:
(global-set-key “\C-l” ‘goto-line)
restart emacs and you’ll find that whenever you hit “ctrl-l” (lowercase L), you’ll be presented with a prompt asking which line of the text you’d like to be moved to.
That’s what you get for running Emacs! XEmacs has had M-g for ‘goto-line’ for years.
heh, 7 months later…
in vi or vim, simply type [line number]G when not in insert mode.
hey, it’s a slow day at work today
-Andrew
you vim lovers make me sick
insert mode? it’s a freakin’ text editor – why do you need extra commands just to edit text?!
what about M-x goto-line?
just hit enter and then type the line number.
yea, but M-x goto-line gets really tired really fast.
Try M-G G type the line number and hit enter. The cursor instantly moves to the line. Emacs is so eady…
In fact, Lawrence, if you type M-x goto-line a couple of times, Emacs automatically suggests you M-G G!
Thanks, little tips presented clearly like this are what make googling for help so useful!!
If ever you think an emacs function doesn’t have an associated key chord the following will help. And will keep you from overriding other useful commands like you’ve shown above.
M-x describe-function
OR
C-h f [ENTER]
which would expand to:
C-h f goto-line [ENTER]
This will show you all sorts of information related to the function, including what key combinations are bound to it.
does anyone know how to open a file from command promt with emacs (or better, emacsclient) and directly go to line N? with vim you can open a file like this and the cursor will be set at the beginning of line 127.
% vim somefile +127
any help appreciated
@meepo:
yes, this is a very important feature – open file at line N.
While in vim you type
$ vim somefile +27
in emacs it must be[1]:
$ emacs +27 somefile
(in case of more files it should go BEFORE every filename you want to have opened at a specific line.
[1] (source: man emacs)