Como fazer [home] ir para o início da linha em vez do início do buffer?

4

Eu sei que há um atalho existente para fazer isso, mas gostaria de ter a chave inicial mapeada para o início de linha em vez de início de buffer.

Eu tentei colocar isso no meu arquivo ~ / .emacs, mas parece que ainda está sendo sobrescrito de alguma forma:

(global-set-key [kp-home]  'beginning-of-line) ; [Home]
(global-set-key [home]     'beginning-of-line) ; [Home]

Na mesma nota, se alguém souber onde os atalhos de teclado padrão são definidos ao usar o emacs no FreeBSD, eu poderei modificar esse arquivo se ele estiver substituindo meus .emacs.

EDIT: Estou usando o FreeBSD 8.2 e acessando-o através do SSH / PuTTY.

Este é o meu arquivo .emacs completo (nada muito louco, como você pode ver):

(keyboard-translate ?\C-h ?\C-?)

(add-to-list 'load-path "/home/sam/programs/go/go/misc/emacs/" t)
(require 'go-mode-load)

(global-set-key [kp-home]  'beginning-of-line) ; [Home]
(global-set-key [home]     'beginning-of-line) ; [Home]
    
por javanix 16.06.2011 / 18:01

3 respostas

3

Experimente:

(global-set-key (kbd "<home>") 'move-beginning-of-line)
    
por 18.06.2011 / 21:51
1

Eu uso:

(define-key global-map [home] 'beginning-of-line)

Seu jeito parece que também deve funcionar. Outra sugestão para ajudar você a depurar o problema. Hit C -h k [home] e deve mostrar-lhe a que casa está vinculado e que também pode dar uma pista do que está definindo.

    
por 17.06.2011 / 20:11
1

Você pode usar a chave inicial inteligente, como em: link

código completo:

(defun my-smart-beginning-of-line ()
  "Move point to beginning-of-line. If repeat command it cycle
position between 'back-to-indentation' and 'beginning-of-line'."
  (interactive "^")
  (if (and (eq last-command 'my-smart-beginning-of-line)
           (= (line-beginning-position) (point)))
      (back-to-indentation)
    (beginning-of-line)))

(global-set-key [home]     'my-smart-beginning-of-line)
    
por 06.09.2014 / 12:14

Tags