[RoLUG] Vim script

Ferdinando Pucci Bam_H1@libero.it
Sab 26 Lug 2003 20:26:54 CEST


Ciao, sto cercando di portare in HTML (valido) il paper dell'Elena. Mi
sono arenato in questo problema: il ciclo while search("</a>\\n") >0 che
ho allegato in vim_script.txt inizia afar crescere all'infinito il file
invece di appendere alla fine le righe che voglio io. Il file su ciu
lavora è opensource_copyright4.html. Sono riuscito a formattarlo in nodo
che ci sia un'ancora al posto di ogni \footnote di LaTeX con un
attributo name diverso; inoltre il contenuto di \footnote, come potete
vedere,  sta una riga dopo (anche per piu righe) inizia col numero
dell'ancora (per farci l'href) e finisce con }. Ho usato il primo ciclo
while in vim_script.txt per avere un file cosi.

Cosa c'è di sbagliato nel secondo while? .*} non dovrebbe essere vorace
visto che lavora solo su una riga... Boh non ci capisco piu nulla, è
tutto il pomeriggio che ci sto dietro *_*
Grazie!

-- 
Abraham Lincoln didn't die in vain.  He died in Washington, D.C.
-------------- parte successiva --------------
let i = 1
while search("\\footnote{") >0
  let line_no = search("\\footnote{")
  let line = getline(line_no)
  let repl = substitute(line, "\\\\footnote{", "<a href='#".i."'><sup>".i."</sup></a>\\\\r".i, "g")
  call setline(line_no, repl)
  let i = i + 1
endwhile

while search("</a>\\n") >0
 let line_no = search("</a>\\n") + 1    "prende il numero della linea
 let line = getline(line_no)    "legge la linea
 while match(line, "}") == -1   "finche non trova }
  let line2 = getline(line_no)
  "echo line2 
  call append("$", line2)        "appende in fondo al file la linea
  call setline(line_no, "")     "cancella la linea
  let line_no = line_no + 1     "aggiorna line_no e line alla riga sotto per il prox ciclo
  let line = getline(line_no)
 endwhile
 let line2 = getline(line_no)   "qui arriva alla riga con }
 let match = matchstr(line2, ".*}")     "piglia tutto fino a }
 "echo match
 call append("$", match)                "lo mette in coda al file
 let repl = substitute(line2, match, "", "")    "toglie match dalla linea
 call setline(line_no, repl)
endwhile
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.linux.it/pipermail/rolug/attachments/20030726/b9beff6e/opensource_copyright4-0001.html


Maggiori informazioni sulla lista RoLUG