vi addresses

Giorgos Keramidas keramida at ceid.upatras.gr
Fri Oct 7 07:35:00 EEST 2005


On 2005-10-06 22:48, Giannis Beredimas <mperedim at ceid.upatras.gr> wrote:
>Stella Korakaki wrote:
>>Καλησπέρα.
>>
>> ξερετε πως μπορώ να εκτελέσω μια εντολη στον vi σε γραμμες που ειναι
>> πολλαπλάσια ενος αριθμού?

Με macros.

(( σχετικά σπαστική εξήγηση ))
: Δεν υπάρχει, απ' όσο ξέρω addressing με 'πράξεις' στο ex(1) και το vi(1)
: με τρόπο ο οποίος να παίζει παντού, πάντα και να είναι 'ευλογημένος' από
: το Single UNIX Specification[1] (SUS).  Οι μόνοι τρόποι για addressing
: γραμμών που ορίζονται από το SUS για το ex(1) και το vi(1) είναι[2]:
:
: 	1. Ο χαρακτήρας '.' αναφέρεται στην τρέχουσα γραμμή
:
: 	2. Ο χαρακτήρας '$' αναφέρεται στην τελευταία γραμμή του buffer
:
: 	3. Ο θετικός αριθμός N αναφέρεται στην N-ιοστή γραμμή του buffer
:
: 	4. Η διεύθυνση 'x αναφέρεται στη γραμμή που είναι μαρκαρισμένη
: 	   με το χαρακτήρα x.
:
: 	5. Μια regular expression σε slashes, /.../ [...]
:
: 	6. Μια regular expression se question marks ?...?
:
: 	7. Ο χαρακτήρας '+' ή '-' ακολουθούμενος από ένα νούμερο
:
: (( αναφορές ))
: [1] http://www.opengroup.org/onlinepubs/009695399/mindex.html
: [2] http://www.opengroup.org/onlinepubs/009695399/utilities/ex.html#tag_04_45_13_02

>> Συγκεκριμένα θέλω στις γραμμες 1,4,7,10 να εκτελέσω j
>
> :map z dd2jz 1Gz

Συνήθως εγώ για τέτοιες δουλειές χρησιμοποιώ προσεκτικά κατασκευασμένα
macros στο vim.  Πατώντας 'q' και μετά ένα άλλο γράμμα, κάνω assign μια
σειρά από actions σε αυτό το macro και το καλώ όσες φορές χρειαστεί,
π.χ. με ``100 @ a''.

> Y.Γ. Και μετά το διαβάζει αυτό το e-mail κανάς Κεραμίδας και λέει "α,
> στον emacs είναι πολύ πιο απλό, <blah blah> ..." :-P

ΧΑ!  Στην έσκασα...




More information about the Linux-greek-users mailing list