Che problema può verificarsi se la funzione goto-line
viene utilizzata in un programma elisp non interattivo? La sua docstring dà un avvertimento dicendo che:Perché "goto-line" in Emacs solo per uso interattivo?
Questa funzione è solitamente la cosa sbagliata da utilizzare in un programma Lisp. Che probabilmente si desidera invece è qualcosa di simile:
(goto-char (point-min)) (forward-line (1- N))
Inoltre, quando cerco di byte-compile-file
mio file di inizializzazione compreso goto-line
, ottengo un avvertimento sgradevole come questo, ancora una volta:
.emacs:170:19:Warning: `goto-line' used from Lisp code
That command is designed for interactive use only
Is usare goto-line
in un programma non interattivo davvero così pericoloso? In correlazione, perché è preferibile la soluzione forward-line
suggerita?
Non sai come goto-line non funzionerebbe in modo interattivo, passa a una riga nel buffer corrente –
@JonLin È possibile trovare un esempio che utilizza in modo non interattivo 'goto-line' in [EmacsWiki: AUCTeX] (http://emacswiki.org/emacs/AUCTeX#toc20):' th-evince-sync'. – dkim
event_jr ha risposto alla domanda come posta, ma ancora * perché * stai cercando di farlo? Potrebbe esserci un modo migliore per realizzare ciò che vuoi veramente. Inoltre, vorrei sottolineare che se il buffer è stato ristretto andando a una certa linea probabilmente non sta andando a fare quello che pensi che sia. – scottfrazer