Nekkoru
Nekkoru

Reputation: 1165

Emacs shortcut to go to a specific line in a file

I'm learning Emacs after over two years of using Notepad++ as my default editor. I'm still hung up on a few things, but I find myself kind of enjoying working with it.

My question is simple: in Notepad++, when I wanted to go to a specific line of my file, I used CTRL+G. Emacs, for some perplexing reason, requires me to do M-x goto-line [enter] $linenumber [enter].

I can't believe there isn't a shortcut for that. I must be googling wrong, surely?

Upvotes: 58

Views: 98340

Answers (5)

phils
phils

Reputation: 73246

I recommend https://github.com/davep/goto-line-faster.el

Which reduces M-gM-g <number> to simply M-g <number> without messing with any other uses of M-g as a prefix binding.

Being a command that I use fairly frequently, I've found this small optimisation highly agreeable.

Upvotes: 0

push.up.hoyv
push.up.hoyv

Reputation: 25

try M-<, then C-u n C-n, goes to (n+1)th line.

Upvotes: 0

deong
deong

Reputation: 3870

Trey Jackson's answer is correct, but another useful thing to know in emacs is how to discover this sort of thing on your own. In your case, you know the name of the command -- goto-line. If you type 'C-h w' (Control+h and then w), Emacs will as you "Where is command: ". Type goto-line and hit enter, and it will tell you what keystrokes (if any) are bound to that command.

There are a bunch more similar features. 'C-h k' does the inverse -- asks you for a keystroke and then tells you the command it runs; 'C-h b' shows all current keybindings; 'C-h a' will search for a string, so you might type 'C-h a goto' to search for commands with "goto" in the name; 'C-h v' describes variables; 'C-h f' describes functions; etc.

Upvotes: 8

chimeric
chimeric

Reputation: 895

If you're an emacs newbie, this webpage gives a detailed explanation on how to find specific line numbers.

For me (on a mac), it was M-x goto-line (where I get the "M" meta key by pressing and immediately releasing the escape button).

Upvotes: 0

Trey Jackson
Trey Jackson

Reputation: 74430

M-g g or M-g M-g are the default bindings for goto-line.

And, the easiest way to find this is either M-x where-is RET goto-line RET which will list the bindings for the command goto-line, or you can type C-h b which lists all the bindings for the current buffer (and then you can peruse the bindings to see if goto-line is there, or to discover other useful commands & bindings.

Upvotes: 74

Related Questions