M-x goto-line
( M-g g
ou M-g M-g
) leva você ao início da linha de destino. Então você pode usar C-u 8 right
para mover para a coluna de destino. Note que isto coloca você na coluna 8, porque o Emacs números colunas de 0, exceto que a opção de linha de comando +LINE:COLUMN
números colunas de 1.
Se você quer um comando do Emacs onde você pode digitar 2:9
, aqui está um código que você pode colar no seu .emacs
, que permite escrevê-lo como um argumento para goto-line
. Note que o código é apenas minimamente testado no Emacs 23.
(defadvice goto-line (around goto-column activate)
"Allow a specification of LINE:COLUMN instead of just COLUMN.
Just :COLUMN moves to the specified column on the current line.
Just LINE: moves to the current column on the specified line.
LINE alone still moves to the beginning of the specified line (like LINE:0)."
(if (symbolp line) (setq line (symbol-name line)))
(let ((column (save-match-data
(if (and (stringp line)
(string-match "\'\([0-9]*\):\([0-9]*\)\'" line))
(prog1
(match-string 2 line)
(setq line (match-string 1 line)))
nil))))
(if (stringp column)
(setq column (if (= (length column) 0)
(current-column)
(string-to-int column))))
(if (stringp line)
(setq line (if (= (length line) 0)
(if buffer
(save-excursion
(set-buffer buffer)
(line-number-at-pos))
nil)
(string-to-int line))))
(if line
ad-do-it)
(if column
(let ((limit (- (save-excursion (forward-line 1) (point))
(point))))
(when (< column limit)
(beginning-of-line)
(forward-char column))))))