Pergunta

Eu posso mover meu ponteiro para cima e para baixo uma linha com minha tecla de flecha muito bem em Emacs, então gostaria de redefinir CN e CP para subir e descer 5 linhas por vez.

Estou apenas começando a aprender a usar o Emacs, e Elisp é muito estranho para mim. Eu tentei usar o GNU Emacs Lisp Reference, mas não consegui encontrar como ligar um pressionamento de tecla a vários comandos.

Aqui está o que tenho até agora (concentrando -se na definição de subida):

(global-set-key "\C-p"  '(loop for i in '(1 2 3 4 5) do ('previous-line))) 

Mas, isso traz uma mensagem de erro quando eu atingi o CP, "argumento do tipo errado".

Alguma sugestão?

Obrigado!

Foi útil?

Solução

Aqueles funções (eu acredito next-line e previous-line) aceitar um argumento opcional com Cu, então eu acho que (next-line 5) faria o que você quer.

Edit: então eu apenas tentei e isso seria

(global-set-key (kbd "C-n")
    (lambda () (interactive) (next-line 5)))

E o mesmo com CP e previous-line.

(Fiew não é simples de escrever código em uma textarea com um teclado de telefone ^^)

Outras dicas

De acordo com o aviso na minha configuração EMACS, e o comentário de Peter Ajtai, proponho a versão que usa forward-line do meu init.el

(global-set-key (kbd "C-n")
    (lambda () (interactive) (forward-line  5)))
(global-set-key (kbd "C-p")
    (lambda () (interactive) (forward-line -5)))

Claro que há também forward-char, funciona da mesma forma, apenas em uma direção diferente.

A única coisa que está faltando é um complex-forward Isso leva um número complexo como argumento e pode ser usado para navegar nas 4 direções: P

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top