Emacs info incremental search

Neon Absentius absent at sdf.lonestar.org
Sun Aug 28 17:09:37 EEST 2005


On Sun, Aug 28, 2005 at 01:14:37PM +0300, Αλέξανδρος Διαμαντίδης wrote:
> Καλημέρα!
> 
> Όταν διαβάζω ένα εγχειρίδιο σε μορφή info με τον αυτόνομο info browser
> (info(1)) και κάνω αναζήτηση με C-s, αν δε βρει αυτό που έχω γράψει στην
> τρέχουσα σελίδα (node) συνεχίζει αυτόματα και στις επόμενες.
> 
> Όταν το διαβάζω με το info mode του Emacs, δεν το κάνει αυτό. Μήπως
> υπάρχει τέτοια δυνατότητα και απλώς δεν είναι ενεργοποιημένη; Στις
> οδηγίες δε βρήκα κάτι αλλά είπα να ρωτήσω...


Ο λόγος είναι ότι ο info browser του emacs χρησιμοποιεί την
συνάρτηση "narrow-to-region" για να σου περιορίσει το οπτικό 
πεδίο (αν προσέξεις στο modeline λέει "(Info Narrow)"). Όταν
τo buffer ειναι σε narrowing όλες (σχεδόν) οι εντολές που συνήθως 
εφαρμόζονται σε όλο το buffer τώρα εφαρμόζονται μόνο στο «ορατό»
κομμάτι του. Η συνάρτηση isearch λοιπόν εφαρμόζεται μόνο στο node.
Οι info-nodes σχετικά με το narrowing:

(info "(emacs) Narrowing")  <-- C-x C-e here
(info "(elisp) Narrowing")  <-- C-x C-e here

Φυσικά αν και τo οπτικό σου πεδίο είναι περιορισμένο, όλο το buffer 
είναι ακόμα εκεί και μπορείς να το δείς με την εντολή "M-x widen"
που είναι συνήθως δεσμευμένη στο "C-x n w".  

Οπότε ένα quick hack όταν θέλεις να ψάξεις incrementally across
nodes είναι να δώσεις "C-x n w" μετά να ψάξεις όλο το buffer με το
"C-s" και μόλις βρεις το instance που σε ενδιαφέρει ξαναπεριορίζεις
το οπτικό πεδίο χρησιμοποιώντας τη συνάρτηση "Info-select-node",
αυτή η συνάρτηση δεν είναι interactive οπότε για να την καλέσεις
πρέπει να χρησιμοποιήσεις το "eval-sexp" (M-:). Ίσως είναι καλή ιδέα
αν είναι να χρησιμοποιήσεις το hack να την κάνεις interactive και να
την δεσμεύσεις σε κάπιοιο πλήκτρο, π.χ "C-ci"

(defun Info-select-nοde-inter ()
  "Make Info-select-node interactive, so it can be bound to a key
or called via \`M-x\'."
  (interactive)
  (Info-select-node))

(define-key Info-mode-map "\C-ci" 'Info-select-node-inter)

Θα μπορούσε κανείς να γράψει μια defun που τα κάνει όλα αυτά αυτόματα
αλλά τότε δεν θα είναι πια *quick* hack. 

Ελπίζω να βοήθησα.

> 
> Ευχαριστώ!
> 
> -- 
> Αλέξανδρος Διαμαντίδης * adia at hellug.gr
> 

-- 
And perhaps, too, when the Pythagorean school ran into an impasse in
classifying the diagonal of the square, someone resorted to Eastern
teachings and the inherently contradictory nature of the world, and
proposed a solution: to declare the diagonal a profoundly ambiguous
entity featuring a duality or complementarity between even and odd.
   -- Silvio Russo, "The Forgoten Revolotion"




More information about the Linux-greek-users mailing list