Enhavolisto

Antaŭa temo

mutt kun POP3 kaj IMAP

Sekva temo

Pitono kaj ...

ReVo per Vim

Resumo:kiel uzi Vim kiel redaktilon por artikoloj de ReVo.

Komencaj eksplikoj

ReVo estas libere utiligebla, plurlingva Esperanta vortaro (verko, kiu registras la uzatajn vortojn de la lingvo Esperanto kun ties signifoj) redaktata per aro da redaktantoj.

Vim estas tekstoredaktilo - unu el la du plej konataj, kaj vaste uzataj Uniksaj (kaj Linuksaj) tekstoredaktiloj (la dua estas Emakso). Ĝi estas i.a. agordigebla laŭ ies bezonoj. Esperantlingvaj uzantoj de Vim nepre volos legi rettaglibron de Dominiko.

Noto

Pri uzo de UniRed por redakti la ReVo artikolojn, oni povas legi ĉe vindoza manlibro.

Kvankam ekzistas jam redaktilo kvazaŭ dediĉita por redaktado de ReVo-artikoloj (UniRed) mi tamen volis uzi tiucele Vim. Jen mi volas priskribi kiel agordi ĝin al bezonoj de ReVo.

xml.vim

Ĉar ĝi aldonas plurajn plibonigojn al XML-redaktado, mi rekomendas ke oni instalu [1] xml.vim

[1](1, 2) En Unikso/Linukso oni konservu la dosieron en ~/.vim/ftplugin dosierujon, en Vindozo - en dosierujon %USERPROFILE%\vimfiles\ftplugin.

.vimrc

La plej grava dosiero en kiu oni faras agordojn por Vim estas ~/.vimrc (en Unikso/Linukso) aŭ %USERPROFILE%\_vimrc (en Vindozo). Ĝi enhavas bazajn agordojn kaj vokas ankaŭ aliajn kromprogramojn.

Redaktu vian .vimrc dosieron tiel ke ĝi enhavu almenaŭ devigan parton:

" depende de la dosierotipo, uzu aliajn agorodojn
autocmd FileType xml,xslt,html,xhtml,xsd call SetXMLFile()

function! SetXMLFile()
  " ReVo artikoloj estas XML-aj
  " tial oni uzu bonegan kromprogramon por XML dosieroj

  " oni devas distingi la ne-ReVo (normalajn) XML dosierojn de ReVo-dosieroj
  " ekz. kontrolante ĉu en la unuaj tri linioj de la dosiero estas skribita
  " dokumentotipdifino: vokoxml.dtd
  let n = 1
  while n < 3
    if getline(n) == '<!DOCTYPE vortaro SYSTEM "../dtd/vokoxml.dtd">'
      set filetype=revo
      set syntax=xml
    endif
    let n = n + 1
  endwhile

  set tabstop=2
  set softtabstop=2
  set expandtab
  set textwidth=80
  set shiftwidth=2
  set autoindent
  set fileencoding=ascii  "gravas! ĉar ReVo dosieroj estu nur askiaj

  let g:xml_namespace_transparent=1
  
  "agordu faldmanieron
  let g:xml_syntax_folding=1
  set foldmethod=syntax
endfunction

revo.vim

La dosiero revo.vim (kreita ĉefe per Dominique Pelle) estas la dosiero kiu enhavas ĉiujn skriptojn ebligantajn korektan redaktadon de dosieroj de ReVo artikoloj. Instalu ĝin same kiel la antaŭan [1].

Ĝi tradukas signokodojn al legeblaj literoj por ke la artikolo estu facile redaktebla, kaj reen konvertas ilin dum konservado de la dosiero.

Noto

La dosiero enhavas liston de transkodigoj de utf-8 al ReVo. Ĝi tamen ne estas la plena listo (kiu troviĝas en dosiero vokosgn.dtd) ĉar tiam ĝia funkciado estus tre longedaŭra. Oni povas ĝin ŝanĝi laŭ sia bezono - memoru nur ke la valoroj estu unikaj.

Ĉar mi alkutimiĝis al la klavarkombinoj uzatajn en UniRed, mi aldonis ilin al la revo.vim dosiero (certe, mi rekomendas ŝanĝi la lingvokodojn "pl" al la uzatajn de vi):

" kiuj simulas klavkombinojn de UniRed
" (http://www.esperanto.mv.ru/UniRed/UTF8)
if exists("b:did_ftplugin")
  " se funkcias xml.vim, uzu simpligitajn klavkombinojn
  imap <C-d> <trd lng="pl">
  nmap <C-d> i<trd lng="pl">
  imap <C-t> <trd>
  nmap <C-t> i<trd>
  imap <M-g> <trdgrp lng="pl">><trd>
  nmap <M-g> i<trdgrp lng="pl">><trd>
  imap <M-r> <ref tip="" cel="">
  nmap <M-r> i<ref tip="" cel="">
  imap <M-R> <refgrp tip="">><ref cel="">
  nmap <M-R> i<refgrp tip="">><ref cel="">
else
  " se ne funkcias xml.vim, uzu klavkombinojn kun <CR>
  imap <C-d> <trd lng="pl">
  nmap <C-d> i<trd lng="pl">
  imap <C-t> <trd>
  nmap <C-t> i<trd>
  imap <M-g> <trdgrp lng="pl"><CR><trd>
  nmap <M-g> i<trdgrp lng="pl"><CR><trd>
  imap <M-r> <ref tip="" cel="">
  nmap <M-r> i<ref tip="" cel="">
  imap <M-R> <refgrp tip=""><CR><ref cel="">
  nmap <M-R> i<refgrp tip=""><CR><ref cel="">
endif

" aŭtomoataĵoj
augroup revo
  au!
  autocmd BufReadPost   *.xml call revo#revoAlUnikodo()
  autocmd BufWritePre   *.xml call revo#unikodoAlRevo()
  autocmd BufWritePost  *.xml call revo#revoAlUnikodo()
augroup END

Kiel redakti

Kiel redakti la ReVo artikolojn senkonekte, oni povas legi en detala priskribo ĉe vindoza manlibro (certe uzante Vim anstataŭ UniRedon).

Mi faras simile kiel oni priskribis en vindoza manlibro, krom ke mi ne sendas la ŝanĝitajn artikolojn per Blat sed uzas eblecon ĝisdatigi la artikolojn per TTT-paĝo:

  1. mi kopias la enhavon de la ŝanĝita artikolo,
  2. iras al ReVo,
  3. trovas la ĝustan (ŝanĝotan artikolon),
  4. klakas redakti...,
  5. elpoŝigas la artikolon en la ĝustan kampon,
  6. aldonas priskribon pri ŝanĝoj (ekz. +trd pl signifas, ke mi aldonis polan tradukon),
  7. enskribas mian ret-poŝtadreson (registritan ĉe wolfram(ĉe)steloj.de),
  8. klakas Konservu.
  9. se aperas erarmesaĝo (rimarku ke ĝi ankaŭ montras lokon kaj tipon de la eraro), mi reredaktas la artikolon kaj denove ĝin konservas.

Kial mi uzas tiun ĉi manieron? Ĉar ĝi tuj montras erarojn (sendante la artikolon ret-poŝte, oni ricevas raporton, korektas la artikolon, sendas ĝin, kaj denove atendas la raporton kun eblaj eraroj) kaj tie oni povas tuj trovi ĉiujn kaj ilin rapide korekti.

Bedaŭrinde ekzistas ankaŭ malavantaĝo de la ĉi-supra maniero - se iu redaktas multajn artikolojn, oni devas ĉiun enpoŝigi, elpoŝigi, enpoŝigi, elpoŝigi, ... ktp. Ĝi estas enuiga kaj tiam bonvenas skripta sendado de ekz. ĉiuj XML-dosieroj de la difinita dosierujo.

Mi deziras al ĉiuj bonan redaktadon!