Como fazer [home] ir para o começo da linha ao invés do começo do buffer?


4

Eu sei que existe um atalho existente para fazer isso, mas eu gostaria de ter a chave inicial mapeada para 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]

Nessa nota, se alguém souber onde as atalhos de teclado padrão são definidas ao usar o emacs no FreeBSD, talvez eu possa 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]

Isso pode ou não estar relacionado, mas qual sistema operacional você está usando? Você mencionou o FreeBSD, mas está em uma nota lateral, então não está totalmente claro (pelo menos para mim) que é o mesmo que a sua pergunta principal.
Shauna

Seu código parece correto. Você pode tentar um .emacs contendo apenas essas duas linhas?
maxelost

Respostas:


3

Experimente:

(global-set-key (kbd "<home>") 'move-beginning-of-line)

Para o meu sistema FreeBSD 9 "& lt; home & gt;" não funciona, mas "& lt; begin & gt;" faz.
goertzenator

1

Eu uso:

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

Seu caminho parece que deveria funcionar também. Outra sugestão para ajudá-lo a depurar o problema. Hit C -h k [home] e deve mostrar-lhe a que casa está vinculada e que também pode dar uma pista do que está configurando.


1

Você pode usar a chave de casa inteligente como em: https://stackoverflow.com/questions/145291/smart-home-in-emacs/

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)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.