?

Log in

No account? Create an account
Bonaĵoj de la tekstoredaktilo: vim-7.0 - Ur yezh hepken n’eo ket a-walc’h / Nur unu lingvo ne sufiĉas
novembro 21-a, 2006
09:25 am

[Ligilo]

Previous Entry Share Next Entry
Bonaĵoj de la tekstoredaktilo: vim-7.0
Ekde jam multaj jaroj, vim fariĝis mia plej ŝatata tesktoredaktilo. vim estas plibonigita versio de la malnova tradicia Uniksa tekstoredaktilo vi. Kvankam ĝi unue frustras preskaŭ ĉiujn komencantojn pro sia laŭdire fifama komanda reĝimo, ĝi estas nekredebla potenca ilo, post kiam oni ellernas ĝin.

Laborante kiel programisto, mi uzas, kaj ĝuas ties bonaĵojn por ĉiu-taga programado. Mi ankaŭ uzas ĝin por retpoŝti kune kun la Esperantigita retpoŝtilo mutt, kaj por fakte skribi ion ajn ceteran.

Ĉar ĉi tiu blogo estas en Esperanto, mi supozas, ke iuj legantoj interesiĝas pri iloj, kiuj faciligas la redakton de teksto en Esperanto. Unu el la plej utilaj bonaĵoj de la nova versio vim-7.0, estas la literumilo, kiu emfazas misliterumojn. Kompreneble, funkcias en la Lingvo Internacia. La Esperantaj vortaroj haveblas en Unikoda UTF-8 kodoprezento, kaj en la iso-8859-3 kodpaĝo.



Por uzi ĝin, vi devas unue elŝuti, kaj instali la Esperantan vortaron:
$ cd /usr/local/share/vim/vim70/spell/
$ sudo wget http://ftp.vim.org/pub/vim/runtime/spell/eo.utf-8.spl
$ sudo wget http://ftp.vim.org/pub/vim/runtime/spell/eo.iso-8859-3.spl
Anstataŭigu la dosierujon /usr/local/share/ en la supra komando per la dosierujo, kie troveblas vim.

Poste, vi povas ŝalti la Esperantan literumilon pere de la komando: :setlocal spell spelllang=eo. Por pli da informo pri la uzado de la literumilo, legu (angllingve) «:help spell».

Ĉar mi iafoje skribas tekston ĉu en Esperanto, ĉu la angla, ĉu en la franca, mi aldonis la jenajn komandojn en mia agorda dosiero $HOME/.vimrc por facile kaj oportune baskuli inter la Esperanta, angla kaj franca literumiloj, aŭ por tute malŝalti la literumilon:
" baskulu inter lingvoj de literumilo
let g:myLang = 0
let g:myLangList = [ "nospell", "en_us", "fr", "eo" ]
function! MySpellLang()

let g:myLang = g:myLang + 1
if g:myLang >= len(g:myLangList) | let g:myLang = 0 | endif

if g:myLang == 0 | set nospell                    | endif
if g:myLang == 1 | setlocal spell spelllang=en_us | endif
if g:myLang == 2 | setlocal spell spelllang=fr    | endif
if g:myLang == 3 | setlocal spell spelllang=eo    | endif

echo "language:" g:myLangList[g:myLang]
endf

 map <F7>      :call MySpellLang()<CR>
imap <F7> <C-o>:call MySpellLang()<CR>
Per tiuj agordoj, mi nur bezonas premi la klavon <F7> por tuj baskuli inter la diversaj lingvoj de la literumilo.

Bedaŭrinde, ial la literumilo ne komprenas la ĉapelajn literojn en mia komputilo. Kvankam mi uzas Unikodon (UTF-8), kaj la vortaro estas supozeble ankaŭ Unikoda, la literumilo emfazas ĉiujn vortojn, kiuj enhavas ĉapelajn literojn. Sed tion mi provos ripari.

Mi ankaŭ ŝatus trovi vortaron por vim, kiu ebligas literumi uzante la x-sistemon anstataŭ Unikodo, ĉar mi iafoje uzas Unikodon, kaj aliafoje uzas la x-sistemon (por retpoŝtoj). Sed tian vortaron mi ne jam trovis.

Ĝisdatigo: leginte la helpan sekcion de vim-7.0 «:help spell-mkspell», kiu priskribas, kiel krei taŭgan vortaron por vim, mi ĵus kreis mian Unikodan vortaron el la Esperanta vortaro de OpenOffice. Nun bonege funkcias kun ĉapelaj literoj. Se iu interesiĝas, jen mia funkcianta vortaro eo.utf-8.spl.

Ĝisdatigo: bertilow aldonis en komento, ke eblas kopii privatan vortaron en la pli taŭga dosierujo ~/.vim/spell/ anstataŭ /usr/local/share/vim/vim70/spell/. Informinte la verkinton de vim pri la fuŝa Esperanta vortaro, mi ricevis retpoŝton de Bram, kiu ĵus ĝisdatigis la defaŭltan Esperantan vortaron de vim.

Tags:

(8 komentoj | Afiŝu novan komenton)

Comments
 
[User Picture]
From:antono
Date:novembro 25-a, 2006 03:59 pm (UTC)
(Link)
dankon! Tre klara estas la dokumento :)
From:bertilow
Date:novembro 26-a, 2006 01:29 pm (UTC)

Ne funkcias

(Link)
Dankon pro la klarigoj, sed ĉe mi tamen ne funkcias. Vim markas ĉiujn Esperantajn vortojn kiel erarajn, kvankam ĝi akceptis vian vortaron, kaj kvankam mi ŝanĝis al tiu vortaro. :( Nek la originaj Esperantaj vortaroj, nek la via funkcias. Mi uzas Vimon 7.0 en Linukso.
[User Picture]
From:dominiko
Date:novembro 26-a, 2006 07:55 pm (UTC)

Re: Ne funkcias

(Link)
Mi ne scias, kial ne funkcias ĉe vi. Ankaŭ mi uzas vim-7.0 per Linukso en terminalo gnome-terminal. Ĉu funkcias almenaŭ per la defaŭlta angla vortaro? (:setlocal spell spelllang=en_us). Jen iuj kontrolindaj aferoj:
$ locale
LANG=eo_XX.UTF-8
LANGUAGE=eo_XX.UTF-8
LC_CTYPE="eo_XX.UTF-8"
LC_NUMERIC="eo_XX.UTF-8"
LC_TIME="eo_XX.UTF-8"
LC_COLLATE="eo_XX.UTF-8"
LC_MONETARY="eo_XX.UTF-8"
LC_MESSAGES="eo_XX.UTF-8"
LC_PAPER="eo_XX.UTF-8"
LC_NAME="eo_XX.UTF-8"
LC_ADDRESS="eo_XX.UTF-8"
LC_TELEPHONE="eo_XX.UTF-8"
LC_MEASUREMENT="eo_XX.UTF-8"
LC_IDENTIFICATION="eo_XX.UTF-8"
LC_ALL=

$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Nov 19 2006 21:30:27)
Included patches: 1-164
Compiled by pel@dplnx
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv -cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
-emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path +find_in_path
+folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist
-keymap -langmap +libcall +linebreak +lispindent +listcmds +localmap +menu
 +mksession +modify_fname +mouse -mouseshape -mouse_dec -mouse_gpm
 -mouse_jsbterm -mouse_netterm +mouse_xterm +multi_byte +multi_lang -mzscheme
 -netbeans_intg -osfiletype +path_extra -perl +postscript +printer -profile
 -python +quickfix +reltime -rightleft -ruby +scrollbind -signs +smartindent
 -sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static
 -tag_any_white -tcl +terminfo +termresponse +textobjects +title -toolbar
 +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
 +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save
    system vimrc file: "$VIM/vimrc"
      user vimrc file: "$HOME/.vimrc"
       user exrc file: "$HOME/.exrc"
   fall-back for $VIM: "/usr/local/share/vim"
Compilation: /usr/bin/gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g
Linking: /usr/bin/gcc   -L/usr/local/lib -o vim -lncurses
Rimarku, ke la opcio +multi_byte por Unikodo estis ŝaltita, kiam mi muntis vim-on (pere de ./configure --enable-multibyte). Eble mi forgesis priskribi iun bezonatan agordan opcion. Ĉiukaze, mi ĵus alŝutis mian tutan agordan dosieron tie: $HOME/.vimrc

Mi esperas, ke helpas, ĉar la literumilo estas tre utila. Ĝi ne nur emfazas misliterumojn, sed interalie:
  • proponas trafajn korektojn (z= komando)
  • eblas aldoni vortojn en privata vortlisto
  • komandoj ']s' kaj '[s' movas la kursoron al sekvanta/antaŭa misliterumo
  • oni povas kontroli, kie uzi aŭ ne uzi la literumilon en dosieroj, kiuj havas tipon kaj sintaksan agordan dosieron. Ekzemple, mi ofte redaktas C-fonttekston (filetype=c), kaj literumilo oportune nur kontrolas tekston en komentoj kaj en literoĉenoj en tiaj dosieroj.
Mi ankaŭ kreis el la vortaro de OpenOffice alternativan vortaron, kiu uzas la x-sistemon anstataŭ Unikodo. Mi afiŝos tiun vortaron baldaŭ.
From:bertilow
Date:novembro 27-a, 2006 01:11 am (UTC)

Re: Ne funkcias

(Link)
Mi kontrolis ĉion, kion vi indikis:

$ locale
LANG=eo_XX.UTF-8
LANGUAGE=eo_XX:eo:en_GB:en
LC_CTYPE="eo_XX.UTF-8"
LC_NUMERIC="eo_XX.UTF-8"
LC_TIME="eo_XX.UTF-8"
LC_COLLATE="eo_XX.UTF-8"
LC_MONETARY="eo_XX.UTF-8"
LC_MESSAGES="eo_XX.UTF-8"
LC_PAPER="eo_XX.UTF-8"
LC_NAME="eo_XX.UTF-8"
LC_ADDRESS="eo_XX.UTF-8"
LC_TELEPHONE="eo_XX.UTF-8"
LC_MEASUREMENT="eo_XX.UTF-8"
LC_IDENTIFICATION="eo_XX.UTF-8"
LC_ALL

$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jul 15 2006 14:22:36)
Compiled by bertilow@bertilo
Big version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+folding -footer +fork() -gettext -hangul_input +iconv +insert_expand +jumplist
 +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu
+mksession +modify_fname +mouse +mouseshape +mouse_dec -mouse_gpm
-mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang -mzscheme
+netbeans_intg -osfiletype +path_extra -perl +postscript +printer -profile
-python +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent
-sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static
-tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar
+user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
+wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact
+xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include     -g -O2
Linking: gcc   -L/usr/local/lib -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lXt -lncurses


Mi provis kaj per Vim kun grafika interfaco ("gvim"), kaj per Vim en konzolo. Nenia diferenco.

Vim ja akceptas la novan vortaron, donante "eo" kiel eblan elekton, sed kiam oni ĝin elektas, neniuj ajn vortoj (ĉu supersignaj, ĉu sensupersignaj, ĉu Esperantaj, ĉu Anglaj) estas ĝustaj. Se mi ŝanĝas al "en", Anglaj vortoj estas akceptataj. Vim do agas, kvazaŭ la Esperanta vortlisto estas tute malplena. :(

Unu diferenco estas, ke mi uzas KDE-on, dum vi uzas Gnome-on. Sed tio ne devus ion influi.
[User Picture]
From:dominiko
Date:novembro 27-a, 2006 08:35 am (UTC)

Re: Ne funkcias

(Link)
Mi ne plu havas tiom da ideoj pri kial la literumilo ne funkcias.

Mi elŝutis vim-on per subversion. Pro tio, mi vidas, ke mi uzas vim-7.0 kun la flikaĵoj (1-164). Vi ne havas flikaĵojn ajn. Sed provinte vim-on sen flikaĵoj, ankoraŭ bone funkcias ĉi tie. Do manko de flikaĵoj ne estas la kialo.

Kvankam Gnome/KDE ne devus influi, mi tamen provis lanĉi vim-on en la terminalo de KDE (konsole), kaj bone funkcias. Do Gnome aŭ KDE ne estas la kialo.

Mi provis lanĉi vim-on sen ia agordo pere de: «vim -u NONE», kaj la literumilo ankoraŭ funkcias bone, post kiam mi nur tajpas «:setlocal spell spelllang=eo». Provu lanĉi «vim -u NONE», por certigi, ke ne estas io en via nuna agordodosiero, kiu ial fuŝas la literumilon.

Eblas ankaŭ vidigi ĉiujn vortojn en la vortaro per la komando: «:spelldump». Tajpinte «:spelldump», mi vidas 1502069 akcepteblajn vortojn en mia Esperanta vortaro.

Jen la md5 kontrolkodo de mia vortardosiero (278537 bajtoj):
$ md5sum /usr/local/share/vim/vim70/spell/eo.utf-8.spl
2f1c00b284da40acd2be84a4906e3e4e  /usr/local/share/vim/vim70/spell/eo.utf-8.spl
Finfine, se ankoraŭ ne funkcias, vi mem povas krei vortaron taŭgan por vim. Estas facile. Jen kiel mi kreis mian:
$ wget  http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries/eo.zip
$ unzip eo.zip
$ vim -c 'mkspell eo eo_l3'
$ sudo cp eo.utf-8.spl /usr/local/share/vim/vim70/spell/
(Anstataŭigu la dosierujon /usr/local/share/vim/vim70/spell/ per la dosierujo, kie via vim-o estas instalita.)
From:bertilow
Date:novembro 28-a, 2006 06:15 am (UTC)

Nun funkcias!!!

(Link)
"Eblas ankaŭ vidigi ĉiujn vortojn en la vortaro per la komando: «:spelldump»."

A ha! Tio finfine helpis. Tiu komando rezultigis ne nur liston de vortoj, sed ankaŭ mencion de la situo de la vortaro. Ĉe mi uziĝis tute ne tiu Esperanta vortaro, kiun mi instalis laŭ viaj klarigoj, sed alia Esperanta vortardosiero en "~/.vim/spell/". Ĝin mi iam antaŭ longe provis krei mem. Sed ĝi ne funkciis (diablo scias kial...), kaj mi poste forgesis pri ĝi. Ĝi do blokis la uzon de via vortaro. Mi forigis mian malnovan aĉaĵon, kaj instalis la vian en "~/.vim/spell/", kaj nun ĉio funkcias. :)

Eble vi kompletigu viajn klarigojn per mencio de la supozeble pli taŭga instaloloko "~/.vim/spell".
From:bertilow
Date:decembro 4-a, 2006 08:03 am (UTC)

Ligilo ĉi tien

(Link)
Mi ĵus faris grandan ĝisdatigon de miaj TTT-paĝoj pri tiu Esperanto en Linukso. Interalie mi aldonis al la paĝo pri Vimo ligilon al tiu ĉi paĝo (anstataŭ kopii la bonajn klarigojn ĉi tie):

http://bertilow.com/komputo/vim.html

Do, mi petas ne forigi tiun ĉi paĝon sen averti min. :)
[User Picture]
From:dominiko
Date:decembro 5-a, 2006 07:40 am (UTC)

Re: Ligilo ĉi tien

(Link)
Bone. Mi ĝojas, ke la klarigo helpis. Mi ne intencas forigi la paĝon.
Mia TTT-ejo Funkciigita de LiveJournal.com