2013-02-11 5 views
5

Voglio mappare C-f C-b come andare avanti e indietro di una quantità fissa di righe in un file.Definizione di associazione chiave con argomenti

ho fatto questo:

(global-set-key (kbd "C-f") 'next-line) 
(global-set-key (kbd "C-b") 'previous-line) 

ma non so come specificare un argomento prima del comando next-line. Credo che dovrei usare digit-argument ma non riesco a scrivere il comando in modo corretto.

+0

possibile duplicato di [Errore in Emacs elisp quando vincolanti un lambda a un tasto] (http://stackoverflow.com/questions/1250846/error-in-emacs-elisp-when -binding-a-lambda-to-a-key) –

+0

ok questo (global-set-key (kbd "Cf") ' (lambda() (interactive) (forward-line 5))) funziona. Sebbene non risponda completamente alla mia domanda, come legherei qualcosa come M-5 Cn o più complesse macro senza dover usare lambda, probabilmente mancherò qualcosa di veramente basilare sul funzionamento di elisp ... – igon

risposta

7

Una delle possibili alternative sarebbe definire una nuova funzione:

(defun my-next-line() 
    (interactive) 
    (next-line 5)) 

(global-set-key (kbd "C-f") 'my-next-line) 

In caso contrario, se è solo qualcosa che si può realizzare con la tastiera che si potrebbe desiderare di utilizzare

M-x name-last-kbd-macro 

e risparmiare nel file .emacs

e avere emacs implementare la funzione per voi. Sarà solo ottenere il nome assegnato nella chiamata a nome-last-kbd-macro

+0

Non sapevo riguardo la macro dell'inserto, questo è molto utile. Grazie – igon

+0

Ho provato questo con un argomento stringa, in opere ma non dimenticare (come ho fatto la prima volta) le virgolette. Grazie :) – boclodoa

12

Hai cambiato la tua domanda di essere su come legare direttamente a sequenze di tasti

Questo si lega Cc l a Cu 5 Cn

(global-set-key (kbd "C-c l") (kbd "C-u 5 C-n")) 
+0

Bello, non lo sapevo. Grazie mille per questo suggerimento. – mikyra

+0

Bello, non lo sapevo! – PascalVKooten

+0

Questo è un modo eccellente per aggiungere nuove combinazioni di tasti, quando si è già a conoscenza delle sequenze di tasti e si rimuove il passaggio per la denominazione della macro. – aartist