diff options
author | Bram Moolenaar <Bram@vim.org> | 2008-06-24 22:09:24 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2008-06-24 22:09:24 +0000 |
commit | c1a11ed54c7974b74be38f2aef6a200d7cfc878e (patch) | |
tree | cbd3d302d09444426d21d905b56dbfafb6cf2497 /runtime/tutor | |
parent | 446cb837a017fc1c1b144cb5c2a35cb90abfbbcf (diff) | |
download | vim-git-c1a11ed54c7974b74be38f2aef6a200d7cfc878e.tar.gz |
updated for version 7.2a
Diffstat (limited to 'runtime/tutor')
-rw-r--r-- | runtime/tutor/Filelist | 716 | ||||
-rw-r--r-- | runtime/tutor/README_bindos.txt | 19 | ||||
-rw-r--r-- | runtime/tutor/README_lang.txt | 5 | ||||
-rw-r--r-- | runtime/tutor/README_srcdos.txt | 12 | ||||
-rw-r--r-- | runtime/tutor/README_unix.txt | 10 | ||||
-rw-r--r-- | runtime/tutor/runtime/filetype.vim | 2412 | ||||
-rw-r--r-- | runtime/tutor/runtime/ftoff.vim | 11 | ||||
-rw-r--r-- | runtime/tutor/runtime/vim32x32.png | bin | 0 -> 347 bytes | |||
-rw-r--r-- | runtime/tutor/runtime/vimlogo.xpm | 75 | ||||
-rw-r--r-- | runtime/tutor/runtime/vimrc_example.vim | 94 | ||||
-rw-r--r-- | runtime/tutor/tutor | 6 | ||||
-rw-r--r-- | runtime/tutor/tutor.fr.utf-8 | 809 | ||||
-rw-r--r-- | runtime/tutor/tutor.hr.cp1250 | 972 | ||||
-rw-r--r-- | runtime/tutor/tutor.it.utf-8 | 967 |
14 files changed, 6105 insertions, 3 deletions
diff --git a/runtime/tutor/Filelist b/runtime/tutor/Filelist new file mode 100644 index 000000000..aa423d998 --- /dev/null +++ b/runtime/tutor/Filelist @@ -0,0 +1,716 @@ +# List of distributed Vim files. +# Used by Makefile and upload.aap. + +# source files for all source archives +SRC_ALL = \ + src/README.txt \ + src/arabic.c \ + src/arabic.h \ + src/ascii.h \ + src/buffer.c \ + src/charset.c \ + src/diff.c \ + src/digraph.c \ + src/edit.c \ + src/eval.c \ + src/ex_cmds.c \ + src/ex_cmds.h \ + src/ex_cmds2.c \ + src/ex_docmd.c \ + src/ex_eval.c \ + src/ex_getln.c \ + src/farsi.c \ + src/farsi.h \ + src/feature.h \ + src/fileio.c \ + src/fold.c \ + src/getchar.c \ + src/globals.h \ + src/gui.c \ + src/gui.h \ + src/gui_beval.c \ + src/gui_beval.h \ + src/hardcopy.c \ + src/hashtab.c \ + src/keymap.h \ + src/macros.h \ + src/main.c \ + src/mark.c \ + src/mbyte.c \ + src/memfile.c \ + src/memline.c \ + src/menu.c \ + src/message.c \ + src/misc1.c \ + src/misc2.c \ + src/move.c \ + src/mysign \ + src/nbdebug.c \ + src/nbdebug.h \ + src/netbeans.c \ + src/normal.c \ + src/ops.c \ + src/option.c \ + src/option.h \ + src/popupmnu.c \ + src/quickfix.c \ + src/regexp.c \ + src/regexp.h \ + src/screen.c \ + src/search.c \ + src/structs.h \ + src/spell.c \ + src/syntax.c \ + src/tag.c \ + src/term.c \ + src/term.h \ + src/termlib.c \ + src/ui.c \ + src/undo.c \ + src/version.c \ + src/version.h \ + src/vim.h \ + src/window.c \ + src/xxd/xxd.c \ + src/main.aap \ + src/testdir/main.aap \ + src/testdir/*.in \ + src/testdir/test[0-9]*.ok \ + src/testdir/test49.vim \ + src/testdir/test60.vim \ + src/proto.h \ + src/proto/buffer.pro \ + src/proto/charset.pro \ + src/proto/diff.pro \ + src/proto/digraph.pro \ + src/proto/edit.pro \ + src/proto/eval.pro \ + src/proto/ex_cmds.pro \ + src/proto/ex_cmds2.pro \ + src/proto/ex_docmd.pro \ + src/proto/ex_eval.pro \ + src/proto/ex_getln.pro \ + src/proto/fileio.pro \ + src/proto/fold.pro \ + src/proto/getchar.pro \ + src/proto/gui.pro \ + src/proto/gui_beval.pro \ + src/proto/hardcopy.pro \ + src/proto/hashtab.pro \ + src/proto/main.pro \ + src/proto/mark.pro \ + src/proto/mbyte.pro \ + src/proto/memfile.pro \ + src/proto/memline.pro \ + src/proto/menu.pro \ + src/proto/message.pro \ + src/proto/misc1.pro \ + src/proto/misc2.pro \ + src/proto/move.pro \ + src/proto/netbeans.pro \ + src/proto/normal.pro \ + src/proto/ops.pro \ + src/proto/option.pro \ + src/proto/popupmnu.pro \ + src/proto/quickfix.pro \ + src/proto/regexp.pro \ + src/proto/screen.pro \ + src/proto/search.pro \ + src/proto/spell.pro \ + src/proto/syntax.pro \ + src/proto/tag.pro \ + src/proto/term.pro \ + src/proto/termlib.pro \ + src/proto/ui.pro \ + src/proto/undo.pro \ + src/proto/version.pro \ + src/proto/window.pro \ + + +# source files for Unix only +SRC_UNIX = \ + Makefile \ + Filelist \ + README_src.txt \ + configure \ + pixmaps/*.xpm \ + pixmaps/gen-inline-pixbufs.sh \ + pixmaps/stock_icons.h \ + src/INSTALL \ + src/INSTALLx.txt \ + src/Makefile \ + src/auto/configure \ + src/config.aap.in \ + src/config.h.in \ + src/config.mk.dist \ + src/config.mk.in \ + src/configure \ + src/configure.in \ + src/gui_at_fs.c \ + src/gui_at_sb.c \ + src/gui_at_sb.h \ + src/gui_athena.c \ + src/gui_gtk.c \ + src/gui_gtk_f.c \ + src/gui_gtk_f.h \ + src/gui_gtk_x11.c \ + src/gui_motif.c \ + src/gui_xmdlg.c \ + src/gui_xmebw.c \ + src/gui_xmebw.h \ + src/gui_xmebwp.h \ + src/gui_x11.c \ + src/gui_x11_pm.h \ + src/hangulin.c \ + src/if_xcmdsrv.c \ + src/integration.c \ + src/integration.h \ + src/link.sh \ + src/installman.sh \ + src/installml.sh \ + src/mkinstalldirs \ + src/os_unix.c \ + src/os_unix.h \ + src/os_unixx.h \ + src/osdef.sh \ + src/osdef1.h.in \ + src/osdef2.h.in \ + src/pathdef.sh \ + src/proto/gui_athena.pro \ + src/proto/gui_gtk.pro \ + src/proto/gui_gtk_x11.pro \ + src/proto/gui_motif.pro \ + src/proto/gui_xmdlg.pro \ + src/proto/gui_x11.pro \ + src/proto/hangulin.pro \ + src/proto/if_xcmdsrv.pro \ + src/proto/os_unix.pro \ + src/proto/pty.pro \ + src/proto/workshop.pro \ + src/pty.c \ + src/testdir/Makefile \ + src/testdir/unix.vim \ + src/toolcheck \ + src/vim_icon.xbm \ + src/vim_mask.xbm \ + src/vimtutor \ + src/gvimtutor \ + src/which.sh \ + src/workshop.c \ + src/workshop.h \ + src/wsdebug.c \ + src/wsdebug.h \ + src/xxd/Makefile \ + +# source files for both DOS and Unix +SRC_DOS_UNIX = \ + src/if_cscope.c \ + src/if_cscope.h \ + src/if_mzsch.c \ + src/if_mzsch.h \ + src/if_perl.xs \ + src/if_perlsfio.c \ + src/if_python.c \ + src/if_ruby.c \ + src/if_sniff.h \ + src/if_tcl.c \ + src/proto/if_cscope.pro \ + src/proto/if_mzsch.pro \ + src/proto/if_perl.pro \ + src/proto/if_perlsfio.pro \ + src/proto/if_python.pro \ + src/proto/if_ruby.pro \ + src/proto/if_tcl.pro \ + src/typemap \ + +# source files for DOS (also in the extra archive) +SRC_DOS = \ + src/GvimExt/*.mak \ + src/GvimExt/GvimExt.reg \ + src/GvimExt/Makefile \ + src/GvimExt/README.txt \ + src/GvimExt/gvimext.cpp \ + src/GvimExt/gvimext.def \ + src/GvimExt/gvimext.h \ + src/GvimExt/gvimext.inf \ + src/GvimExt/gvimext.rc \ + src/GvimExt/gvimext_ming.def \ + src/GvimExt/gvimext_ming.rc \ + src/GvimExt/resource.h \ + src/GvimExt/uninst.bat \ + README_srcdos.txt \ + src/INSTALLpc.txt \ + src/Make_bc3.mak \ + src/Make_bc5.mak \ + src/Make_cyg.mak \ + src/Make_djg.mak \ + src/Make_ivc.mak \ + src/Make_dvc.mak \ + src/Make_ming.mak \ + src/Make_mvc.mak \ + src/Make_w16.mak \ + src/bigvim.bat \ + src/msvcsetup.bat \ + src/msvc2008.bat \ + src/dimm.idl \ + src/dlldata.c \ + src/dosinst.c \ + src/dosinst.h \ + src/glbl_ime.cpp \ + src/glbl_ime.h \ + src/gui_w16.c \ + src/gui_w32.c \ + src/gui_w48.c \ + src/guiw16rc.h \ + src/gui_w32_rc.h \ + src/if_ole.cpp \ + src/if_ole.h \ + src/if_ole.idl \ + src/iid_ole.c \ + src/os_dos.h \ + src/os_msdos.c \ + src/os_msdos.h \ + src/os_w32dll.c \ + src/os_w32exe.c \ + src/os_win16.c \ + src/os_win32.c \ + src/os_mswin.c \ + src/os_win16.h \ + src/os_win32.h \ + src/proto/gui_w16.pro \ + src/proto/gui_w32.pro \ + src/proto/if_ole.pro \ + src/proto/os_msdos.pro \ + src/proto/os_win16.pro \ + src/proto/os_win32.pro \ + src/proto/os_mswin.pro \ + src/testdir/Make_dos.mak \ + src/testdir/dos.vim \ + src/uninstal.c \ + src/vim.def \ + src/vim.rc \ + src/vimio.h \ + src/gvim.exe.mnf \ + src/vim16.def \ + src/vim16.rc \ + src/vimrun.c \ + src/vimtbar.h \ + src/xpm_w32.c \ + src/xpm_w32.h \ + src/xxd/Make_bc3.mak \ + src/xxd/Make_bc5.mak \ + src/xxd/Make_cyg.mak \ + src/xxd/Make_djg.mak \ + src/xxd/Make_mvc.mak \ + nsis/gvim.nsi \ + nsis/README.txt \ + uninstal.txt \ + src/VisVim/Commands.cpp \ + src/VisVim/Commands.h \ + src/VisVim/DSAddIn.cpp \ + src/VisVim/DSAddIn.h \ + src/VisVim/OleAut.cpp \ + src/VisVim/OleAut.h \ + src/VisVim/README_VisVim.txt \ + src/VisVim/Reg.cpp \ + src/VisVim/Register.bat \ + src/VisVim/Resource.h \ + src/VisVim/StdAfx.cpp \ + src/VisVim/StdAfx.h \ + src/VisVim/UnRegist.bat \ + src/VisVim/VisVim.cpp \ + src/VisVim/VisVim.def \ + src/VisVim/VisVim.mak \ + src/VisVim/VisVim.h \ + src/VisVim/VisVim.odl \ + src/VisVim/VisVim.rc \ + src/VisVim/VsReadMe.txt \ + +# source files for DOS without CR/LF translation (also in the extra archive) +SRC_DOS_BIN = \ + src/VisVim/Res/*.bmp \ + src/tearoff.bmp \ + src/tools.bmp \ + src/tools16.bmp \ + src/vim*.ico \ + src/vim.tlb \ + src/vimtbar.lib \ + src/vimtbar.dll \ + nsis/icons/*.bmp \ + nsis/icons/*.ico \ + +# source files for Amiga, DOS, etc. (also in the extra archive) +SRC_AMI_DOS = \ + +# source files for Amiga (also in the extra archive) +SRC_AMI = \ + README_amisrc.txt \ + README_amisrc.txt.info \ + src.info \ + src/INSTALLami.txt \ + src/Make_dice.mak \ + src/Make_manx.mak \ + src/Make_morph.mak \ + src/Make_sas.mak \ + src/os_amiga.c \ + src/os_amiga.h \ + src/proto/os_amiga.pro \ + src/testdir/Make_amiga.mak \ + src/testdir/amiga.vim \ + src/xxd/Make_amiga.mak \ + +# source files for the Mac (also in the extra archive) +SRC_MAC = \ + src/INSTALLmac.txt \ + src/dehqx.py \ + src/gui_mac.c \ + src/os_mac_rsrc/*.icns \ + src/os_mac.h \ + src/os_mac.rsr.hqx \ + src/os_mac_conv.c \ + src/os_macosx.c \ + src/proto/gui_mac.pro \ + src/proto/os_mac_conv.pro \ + +# source files for VMS (in the extra archive) +SRC_VMS = \ + src/INSTALLvms.txt \ + src/Make_vms.mms \ + src/gui_gtk_vms.h \ + src/os_vms.c \ + src/os_vms_conf.h \ + src/os_vms_mms.c \ + src/proto/os_vms.pro \ + src/testdir/Make_vms.mms \ + src/testdir/vms.vim \ + src/xxd/Make_vms.mms \ + vimtutor.com \ + +# source files for OS/2 (in the extra archive) +SRC_OS2 = \ + src/Make_os2.mak \ + src/os_os2_cfg.h \ + src/testdir/Make_os2.mak \ + src/testdir/todos.vim \ + src/testdir/os2.vim \ + src/xxd/Make_os2.mak \ + +# source files for QNX (in the extra archive) +SRC_QNX = \ + src/os_qnx.c \ + src/os_qnx.h \ + src/gui_photon.c \ + src/proto/gui_photon.pro \ + src/proto/os_qnx.pro \ + + +# source files for the extra archive (all sources that are not for Unix) +SRC_EXTRA = \ + $(SRC_AMI) \ + $(SRC_AMI_DOS) \ + $(SRC_DOS) \ + $(SRC_DOS_BIN) \ + $(SRC_MAC) \ + $(SRC_OS2) \ + $(SRC_QNX) \ + $(SRC_VMS) \ + README_os390.txt \ + src/Make_mint.mak \ + src/Make_ro.mak \ + src/gui_riscos.c \ + src/gui_riscos.h \ + src/if_sniff.c \ + src/infplist.xml \ + src/link.390 \ + src/os_beos.c \ + src/os_beos.h \ + src/os_beos.rsrc \ + src/os_mint.h \ + src/os_riscos.c \ + src/os_riscos.h \ + src/proto/gui_riscos.pro \ + src/proto/os_riscos.pro \ + src/os_vms_fix.com \ + src/toolbar.phi \ + +# runtime files for all distributions +RT_ALL = \ + README.txt \ + runtime/bugreport.vim \ + runtime/doc/*.awk \ + runtime/doc/*.pl \ + runtime/doc/*.txt \ + runtime/doc/Makefile \ + runtime/doc/doctags.c \ + runtime/doc/vim.1 \ + runtime/doc/evim.1 \ + runtime/doc/vimdiff.1 \ + runtime/doc/vimtutor.1 \ + runtime/doc/xxd.1 \ + runtime/ftoff.vim \ + runtime/gvimrc_example.vim \ + runtime/macros/README.txt \ + runtime/macros/dvorak \ + runtime/macros/editexisting.vim \ + runtime/macros/hanoi/click.me \ + runtime/macros/hanoi/hanoi.vim \ + runtime/macros/hanoi/poster \ + runtime/macros/justify.vim \ + runtime/macros/less.sh \ + runtime/macros/less.vim \ + runtime/macros/life/click.me \ + runtime/macros/life/life.vim \ + runtime/macros/matchit.vim \ + runtime/macros/matchit.txt \ + runtime/macros/maze/README.txt \ + runtime/macros/maze/[mM]akefile \ + runtime/macros/maze/main.aap \ + runtime/macros/maze/maze.c \ + runtime/macros/maze/maze_5.78 \ + runtime/macros/maze/maze_mac \ + runtime/macros/maze/mazeansi.c \ + runtime/macros/maze/mazeclean.c \ + runtime/macros/maze/poster \ + runtime/macros/shellmenu.vim \ + runtime/macros/swapmous.vim \ + runtime/macros/urm/README.txt \ + runtime/macros/urm/examples \ + runtime/macros/urm/urm \ + runtime/macros/urm/urm.vim \ + runtime/mswin.vim \ + runtime/evim.vim \ + runtime/optwin.vim \ + runtime/ftplugin.vim \ + runtime/ftplugof.vim \ + runtime/indent.vim \ + runtime/indoff.vim \ + runtime/termcap \ + runtime/tools/README.txt \ + runtime/tools/[a-z]*[a-z0-9] \ + runtime/tutor/README.txt \ + runtime/tutor/tutor \ + runtime/tutor/tutor.vim \ + runtime/vimrc_example.vim \ + +# runtime files for all distributions without CR-NL translation +RT_ALL_BIN = \ + runtime/doc/tags \ + runtime/print/*.ps \ + +# runtime script files +RT_SCRIPTS = \ + runtime/filetype.vim \ + runtime/scripts.vim \ + runtime/menu.vim \ + runtime/macmap.vim \ + runtime/delmenu.vim \ + runtime/synmenu.vim \ + runtime/makemenu.vim \ + runtime/autoload/*.vim \ + runtime/autoload/README.txt \ + runtime/autoload/xml/*.vim \ + runtime/colors/*.vim \ + runtime/colors/README.txt \ + runtime/compiler/*.vim \ + runtime/compiler/README.txt \ + runtime/indent/*.vim \ + runtime/indent/README.txt \ + runtime/ftplugin/*.vim \ + runtime/ftplugin/README.txt \ + runtime/plugin/*.vim \ + runtime/plugin/README.txt \ + runtime/syntax/*.vim \ + runtime/syntax/README.txt \ + +# Unix runtime +RT_UNIX = \ + README_unix.txt \ + runtime/hi16-action-make.png \ + runtime/hi22-action-make.png \ + runtime/vim16x16.png \ + runtime/vim16x16.xpm \ + runtime/vim32x32.png \ + runtime/vim32x32.xpm \ + runtime/vim48x48.png \ + runtime/vim48x48.xpm \ + +# Unix and DOS runtime without CR-LF translation +RT_UNIX_DOS_BIN = \ + runtime/vim16x16.gif \ + runtime/vim32x32.gif \ + runtime/vim48x48.gif \ + +# runtime not for unix or extra +RT_NO_UNIX = \ + +# runtime for Amiga (also in the extra archive) +RT_AMI_DOS = \ + runtime/doc/vim.man \ + runtime/doc/vimdiff.man \ + runtime/doc/vimtutor.man \ + runtime/doc/xxd.man \ + +# DOS runtime (also in the extra archive) +RT_DOS = \ + README_dos.txt \ + runtime/rgb.txt \ + vimtutor.bat \ + +# DOS runtime without CR-LF translation (also in the extra archive) +RT_DOS_BIN = \ + runtime/vimlogo.cdr \ + runtime/vimlogo.eps \ + runtime/vimlogo.gif \ + runtime/vimlogo.pdf \ + +# Amiga runtime (also in the extra archive) +RT_AMI = \ + README.txt.info \ + README_ami.txt \ + README_ami.txt.info \ + libs/arp.library \ + runtime/doc.info \ + runtime/doc/*.info \ + runtime/icons/README.txt \ + runtime/icons/*.info \ + runtime/icons.info \ + runtime/macros.info \ + runtime/macros/*.info \ + runtime/macros/hanoi/*.info \ + runtime/macros/life/*.info \ + runtime/macros/maze/*.info \ + runtime/macros/urm/*.info \ + runtime/tools.info \ + runtime/tutor.info \ + runtime/tutor/*.info \ + +# runtime files in extra archive +RT_EXTRA = \ + $(RT_AMI) \ + $(RT_AMI_DOS) \ + $(RT_DOS) \ + $(RT_DOS_BIN) \ + README_mac.txt \ + +# included in all Amiga archives +ROOT_AMI = \ + Contents \ + Contents.info \ + runtime.info \ + vimdir.info \ + +# root files for the extra archive +ROOT_EXTRA = \ + $(ROOT_AMI) \ + +# files for Amiga small binary (also in extra archive) +BIN_AMI = \ + README_amibin.txt \ + README_amibin.txt.info \ + Vim.info \ + Xxd.info \ + +# files for DOS binary (also in extra archive) +BIN_DOS = \ + README_bindos.txt \ + uninstal.txt \ + +# files for Win32 OLE binary (also in extra archive) +BIN_OLE = \ + README_ole.txt \ + +# files for Win32s binary (also in extra archive) +BIN_W32S = \ + README_w32s.txt \ + +# files for VMS binary (also in extra archive) +BIN_VMS = \ + README_vms.txt \ + +# files for OS/2 binary (also in extra archive) +BIN_OS2 = \ + README_os2.txt \ + +# binary files for extra archive +BIN_EXTRA = \ + $(BIN_AMI) \ + $(BIN_DOS) \ + $(BIN_OLE) \ + $(BIN_W32S) \ + $(BIN_VMS) \ + $(BIN_OS2) \ + +# all files for extra archive +EXTRA = \ + $(BIN_EXTRA) \ + $(ROOT_EXTRA) \ + $(RT_EXTRA) \ + $(SRC_EXTRA) \ + README_extra.txt \ + src/VisVim/VisVim.dll \ + farsi/README.txt \ + farsi/fonts/*/far-* \ + runtime/vimlogo.xpm \ + src/swis.s \ + src/tee/Makefile* \ + src/tee/tee.c \ + csdpmi4b.zip \ + +# generic language files +LANG_GEN = \ + README_lang.txt \ + runtime/doc/*-fr.1 \ + runtime/doc/*-fr.UTF-8.1 \ + runtime/doc/*-it.1 \ + runtime/doc/*-it.UTF-8.1 \ + runtime/doc/*-pl.1 \ + runtime/doc/*-pl.UTF-8.1 \ + runtime/doc/*-ru.1 \ + runtime/doc/*-ru.UTF-8.1 \ + runtime/lang/README.txt \ + runtime/lang/menu_*.vim \ + runtime/keymap/README.txt \ + runtime/keymap/*.vim \ + runtime/tutor/README.*.txt \ + runtime/tutor/Makefile \ + runtime/tutor/tutor.utf-8 \ + runtime/tutor/tutor.?? \ + runtime/tutor/tutor.??.* \ + runtime/spell/README.txt \ + runtime/spell/??/*.diff \ + runtime/spell/??/main.aap \ + runtime/spell/yi/README.txt \ + runtime/spell/main.aap \ + runtime/spell/cleanadd.vim \ + runtime/spell/*.vim \ + runtime/spell/fixdup \ + +# generic language files, binary +LANG_GEN_BIN = \ + runtime/spell/README_en.txt \ + runtime/spell/en.ascii.spl \ + runtime/spell/en.latin1.spl \ + runtime/spell/en.utf-8.spl \ + runtime/spell/en.ascii.sug \ + runtime/spell/en.latin1.sug \ + runtime/spell/en.utf-8.sug \ + +# all files for lang archive +LANG_SRC = \ + src/po/README.txt \ + src/po/README_mingw.txt \ + src/po/README_mvc.txt \ + src/po/check.vim \ + src/po/cleanup.vim \ + src/po/Makefile \ + src/po/Make_cyg.mak \ + src/po/Make_ming.mak \ + src/po/Make_mvc.mak \ + src/po/sjiscorr.c \ + src/po/*.po \ + +# the language files for the Win32 lang archive +LANG_DOS = \ + src/po/*.mo \ + +# vim: set ft=make: diff --git a/runtime/tutor/README_bindos.txt b/runtime/tutor/README_bindos.txt new file mode 100644 index 000000000..593a92554 --- /dev/null +++ b/runtime/tutor/README_bindos.txt @@ -0,0 +1,19 @@ +README_bindos.txt for version 7.2a of Vim: Vi IMproved. + +See "README.txt" for general information about Vim. +See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. +These files are in the runtime archive (vim70rt.zip). + + +There are several binary distributions of Vim for the PC. You would normally +pick only one of them, but it's also possible to install several. +These ones are available (the version number may differ): + vim70d16.zip 16 bit DOS version + vim70d32.zip 32 bit DOS version + vim70w32.zip Windows 95/98/NT/etc. console version + gvim70.zip Windows 95/98/NT/etc. GUI version + gvim70ole.zip Windows 95/98/NT/etc. GUI version with OLE + gvim70_s.zip Windows 3.1 GUI version + +You MUST also get the runtime archive (vim70rt.zip). +The sources are also available (vim70src.zip). diff --git a/runtime/tutor/README_lang.txt b/runtime/tutor/README_lang.txt new file mode 100644 index 000000000..9df9f7609 --- /dev/null +++ b/runtime/tutor/README_lang.txt @@ -0,0 +1,5 @@ +README_lang.txt for version 7.2a of Vim: Vi IMproved. + +This file contains files for non-English languages: +- Translated messages. +- Translated menus. diff --git a/runtime/tutor/README_srcdos.txt b/runtime/tutor/README_srcdos.txt new file mode 100644 index 000000000..ef78029c6 --- /dev/null +++ b/runtime/tutor/README_srcdos.txt @@ -0,0 +1,12 @@ +README_srcdos.txt for version 7.2a of Vim: Vi IMproved. + +See "README.txt" for general information about Vim. +See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. +These files are in the runtime archive (vim70rt.zip). + + +The DOS source archive contains the files needed to compile Vim on MS-DOS or +MS-Windows. It is packed for DOS systems, with CR-LF. It also includes the +VisVim sources. + +See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC. diff --git a/runtime/tutor/README_unix.txt b/runtime/tutor/README_unix.txt new file mode 100644 index 000000000..5338cb16e --- /dev/null +++ b/runtime/tutor/README_unix.txt @@ -0,0 +1,10 @@ +README_unix.txt for version 7.2a of Vim: Vi IMproved. + +This file explains the installation of Vim on Unix systems. +See "README.txt" for general information about Vim. + + +When you use the source distribution, "make install" is used to install Vim. +See the "INSTALL" file in the "src" directory. + +If you use a compiled package, follow the instructions for the package. diff --git a/runtime/tutor/runtime/filetype.vim b/runtime/tutor/runtime/filetype.vim new file mode 100644 index 000000000..89af04cce --- /dev/null +++ b/runtime/tutor/runtime/filetype.vim @@ -0,0 +1,2412 @@ +" Vim support file to detect file types +" +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2008 Jun 20 + +" Listen very carefully, I will say this only once +if exists("did_load_filetypes") + finish +endif +let did_load_filetypes = 1 + +" Line continuation is used here, remove 'C' from 'cpoptions' +let s:cpo_save = &cpo +set cpo&vim + +augroup filetypedetect + +" Ignored extensions +if exists("*fnameescape") +au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.rpmsave,?\+.rpmnew + \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) +au BufNewFile,BufRead *~ + \ let s:name = expand("<afile>") | + \ let s:short = substitute(s:name, '\~$', '', '') | + \ if s:name != s:short && s:short != "" | + \ exe "doau filetypedetect BufRead " . fnameescape(s:short) | + \ endif | + \ unlet s:name s:short +au BufNewFile,BufRead ?\+.in + \ if expand("<afile>:t") != "configure.in" | + \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) | + \ endif +elseif &verbose > 0 + echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()" +endif + +" Pattern used to match file names which should not be inspected. +" Currently finds compressed files. +if !exists("g:ft_ignore_pat") + let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' +endif + +" Function used for patterns that end in a star: don't set the filetype if the +" file name matches ft_ignore_pat. +func! s:StarSetf(ft) + if expand("<amatch>") !~ g:ft_ignore_pat + exe 'setf ' . a:ft + endif +endfunc + +" Abaqus or Trasys +au BufNewFile,BufRead *.inp call s:Check_inp() + +func! s:Check_inp() + if getline(1) =~ '^\*' + setf abaqus + else + let n = 1 + if line("$") > 500 + let nmax = 500 + else + let nmax = line("$") + endif + while n <= nmax + if getline(n) =~? "^header surface data" + setf trasys + break + endif + let n = n + 1 + endwhile + endif +endfunc + +" A-A-P recipe +au BufNewFile,BufRead *.aap setf aap + +" A2ps printing utility +au BufNewFile,BufRead etc/a2ps.cfg,etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps + +" ABAB/4 +au BufNewFile,BufRead *.abap setf abap + +" ABC music notation +au BufNewFile,BufRead *.abc setf abc + +" ABEL +au BufNewFile,BufRead *.abl setf abel + +" AceDB +au BufNewFile,BufRead *.wrm setf acedb + +" Ada (83, 9X, 95) +au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada +if has("vms") + au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada +else + au BufNewFile,BufRead *.gpr setf ada +endif + +" AHDL +au BufNewFile,BufRead *.tdf setf ahdl + +" AMPL +au BufNewFile,BufRead *.run setf ampl + +" Ant +au BufNewFile,BufRead build.xml setf ant + +" Apache style config file +au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') + +" Apache config file +au BufNewFile,BufRead .htaccess setf apache +au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,/etc/apache2/*.conf* call s:StarSetf('apache') + +" XA65 MOS6510 cross assembler +au BufNewFile,BufRead *.a65 setf a65 + +" Applix ELF +au BufNewFile,BufRead *.am + \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif + +" ALSA configuration +au BufNewFile,BufRead ~/.asoundrc,/usr/share/alsa/alsa.conf,/etc/asound.conf setf alsaconf + +" Arc Macro Language +au BufNewFile,BufRead *.aml setf aml + +" Arch Inventory file +au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch + +" ART*Enterprise (formerly ART-IM) +au BufNewFile,BufRead *.art setf art + +" ASN.1 +au BufNewFile,BufRead *.asn,*.asn1 setf asn + +" Active Server Pages (with Visual Basic Script) +au BufNewFile,BufRead *.asa + \ if exists("g:filetype_asa") | + \ exe "setf " . g:filetype_asa | + \ else | + \ setf aspvbs | + \ endif + +" Active Server Pages (with Perl or Visual Basic Script) +au BufNewFile,BufRead *.asp + \ if exists("g:filetype_asp") | + \ exe "setf " . g:filetype_asp | + \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" | + \ setf aspperl | + \ else | + \ setf aspvbs | + \ endif + +" Grub (must be before catch *.lst) +au BufNewFile,BufRead /boot/grub/menu.lst,/boot/grub/grub.conf,/etc/grub.conf setf grub + +" Assembly (all kinds) +" *.lst is not pure assembly, it has two extra columns (address, byte codes) +au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call s:FTasm() + +" This function checks for the kind of assembly that is wanted by the user, or +" can be detected from the first five lines of the file. +func! s:FTasm() + " make sure b:asmsyntax exists + if !exists("b:asmsyntax") + let b:asmsyntax = "" + endif + + if b:asmsyntax == "" + call s:FTasmsyntax() + endif + + " if b:asmsyntax still isn't set, default to asmsyntax or GNU + if b:asmsyntax == "" + if exists("g:asmsyntax") + let b:asmsyntax = g:asmsyntax + else + let b:asmsyntax = "asm" + endif + endif + + exe "setf " . b:asmsyntax +endfunc + +func! s:FTasmsyntax() + " see if file contains any asmsyntax=foo overrides. If so, change + " b:asmsyntax appropriately + let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4). + \" ".getline(5)." " + if head =~ '\sasmsyntax=\S\+\s' + let b:asmsyntax = substitute(head, '.*\sasmsyntax=\([a-zA-Z0-9]\+\)\s.*','\1', "") + elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library')) + let b:asmsyntax = "vmasm" + endif +endfunc + +" Macro (VAX) +au BufNewFile,BufRead *.mar setf vmasm + +" Atlas +au BufNewFile,BufRead *.atl,*.as setf atlas + +" Autoit v3 +au BufNewFile,BufRead *.au3 setf autoit + +" Autohotkey +au BufNewFile,BufRead *.ahk setf autohotkey + +" Automake +au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake + +" Autotest .at files are actually m4 +au BufNewFile,BufRead *.at setf m4 + +" Avenue +au BufNewFile,BufRead *.ave setf ave + +" Awk +au BufNewFile,BufRead *.awk setf awk + +" B +au BufNewFile,BufRead *.mch,*.ref,*.imp setf b + +" BASIC or Visual Basic +au BufNewFile,BufRead *.bas call s:FTVB("basic") + +" Check if one of the first five lines contains "VB_Name". In that case it is +" probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype. +func! s:FTVB(alt) + if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)' + setf vb + else + exe "setf " . a:alt + endif +endfunc + +" Visual Basic Script (close to Visual Basic) +au BufNewFile,BufRead *.vbs,*.dsm,*.ctl setf vb + +" IBasic file (similar to QBasic) +au BufNewFile,BufRead *.iba,*.ibi setf ibasic + +" FreeBasic file (similar to QBasic) +au BufNewFile,BufRead *.fb,*.bi setf freebasic + +" Batch file for MSDOS. +au BufNewFile,BufRead *.bat,*.sys setf dosbatch +" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. +au BufNewFile,BufRead *.cmd + \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif + +" Batch file for 4DOS +au BufNewFile,BufRead *.btm call s:FTbtm() +func! s:FTbtm() + if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm + setf dosbatch + else + setf btm + endif +endfunc + +" BC calculator +au BufNewFile,BufRead *.bc setf bc + +" BDF font +au BufNewFile,BufRead *.bdf setf bdf + +" BibTeX bibliography database file +au BufNewFile,BufRead *.bib setf bib + +" BibTeX Bibliography Style +au BufNewFile,BufRead *.bst setf bst + +" BIND configuration +au BufNewFile,BufRead named.conf,rndc.conf setf named + +" BIND zone +au BufNewFile,BufRead named.root setf bindzone +au BufNewFile,BufRead *.db call s:BindzoneCheck('') + +func! s:BindzoneCheck(default) + if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA' + setf bindzone + elseif a:default != '' + exe 'setf ' . a:default + endif +endfunc + +" Blank +au BufNewFile,BufRead *.bl setf blank + +" C or lpc +au BufNewFile,BufRead *.c call s:FTlpc() + +func! s:FTlpc() + if exists("g:lpc_syntax_for_c") + let lnum = 1 + while lnum <= 12 + if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)' + setf lpc + return + endif + let lnum = lnum + 1 + endwhile + endif + setf c +endfunc + +" Calendar +au BufNewFile,BufRead calendar setf calendar +au BufNewFile,BufRead */.calendar/*, + \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* + \ call s:StarSetf('calendar') + +" C# +au BufNewFile,BufRead *.cs setf cs + +" Cdrdao TOC +au BufNewFile,BufRead *.toc setf cdrtoc + +" Cdrdao config +au BufNewFile,BufRead etc/cdrdao.conf,etc/defaults/cdrdao,etc/default/cdrdao,~/.cdrdao setf cdrdaoconf + +" Cfengine +au BufNewFile,BufRead cfengine.conf setf cfengine + +" Comshare Dimension Definition Language +au BufNewFile,BufRead *.cdl setf cdl + +" Conary Recipe +au BufNewFile,BufRead *.recipe setf conaryrecipe + +" Controllable Regex Mutilator +au BufNewFile,BufRead *.crm setf crm + +" Cyn++ +au BufNewFile,BufRead *.cyn setf cynpp + +" Cynlib +" .cc and .cpp files can be C++ or Cynlib. +au BufNewFile,BufRead *.cc + \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif +au BufNewFile,BufRead *.cpp + \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif + +" C++ +if has("fname_case") + au BufNewFile,BufRead *.cxx,*.c++,*.C,*.H,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp +else + au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp +endif + +" .h files can be C, Ch C++, ObjC or ObjC++. +" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is +" detected automatically. +au BufNewFile,BufRead *.h call s:FTheader() + +func! s:FTheader() + if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1 + setf objc + elseif exists("c_syntax_for_h") + setf c + elseif exists("ch_syntax_for_h") + setf ch + else + setf cpp + endif +endfunc + +" Ch (CHscript) +au BufNewFile,BufRead *.chf setf ch + +" TLH files are C++ headers generated by Visual C++'s #import from typelibs +au BufNewFile,BufRead *.tlh setf cpp + +" Cascading Style Sheets +au BufNewFile,BufRead *.css setf css + +" Century Term Command Scripts (*.cmd too) +au BufNewFile,BufRead *.con setf cterm + +" Changelog +au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch + \ setf debchangelog + +au BufNewFile,BufRead [cC]hange[lL]og + \ if getline(1) =~ '; urgency=' + \| setf debchangelog + \| else + \| setf changelog + \| endif + +au BufNewFile,BufRead NEWS + \ if getline(1) =~ '; urgency=' + \| setf debchangelog + \| endif + +" CHILL +au BufNewFile,BufRead *..ch setf chill + +" Changes for WEB and CWEB or CHILL +au BufNewFile,BufRead *.ch call s:FTchange() + +" This function checks if one of the first ten lines start with a '@'. In +" that case it is probably a change file. +" If the first line starts with # or ! it's probably a ch file. +" If a line has "main", "include", "//" ir "/*" it's probably ch. +" Otherwise CHILL is assumed. +func! s:FTchange() + let lnum = 1 + while lnum <= 10 + if getline(lnum)[0] == '@' + setf change + return + endif + if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!') + setf ch + return + endif + if getline(lnum) =~ "MODULE" + setf chill + return + endif + if getline(lnum) =~ 'main\s*(\|#\s*include\|//' + setf ch + return + endif + let lnum = lnum + 1 + endwhile + setf chill +endfunc + +" ChordPro +au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro + +" Clean +au BufNewFile,BufRead *.dcl,*.icl setf clean + +" Clever +au BufNewFile,BufRead *.eni setf cl + +" Clever or dtd +au BufNewFile,BufRead *.ent call s:FTent() + +func! s:FTent() + " This function checks for valid cl syntax in the first five lines. + " Look for either an opening comment, '#', or a block start, '{". + " If not found, assume SGML. + let lnum = 1 + while lnum < 6 + let line = getline(lnum) + if line =~ '^\s*[#{]' + setf cl + return + elseif line !~ '^\s*$' + " Not a blank line, not a comment, and not a block start, + " so doesn't look like valid cl code. + break + endif + let lnum = lnum + 1 + endw + setf dtd +endfunc + +" Clipper (or FoxPro; could also be eviews) +au BufNewFile,BufRead *.prg + \ if exists("g:filetype_prg") | + \ exe "setf " . g:filetype_prg | + \ else | + \ setf clipper | + \ endif + +" Cmake +au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake + +" Cmusrc +au BufNewFile,BufRead ~/.cmus/{autosave,rc,command-history,*.theme} setf cmusrc +au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc + +" Cobol +au BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol +" cobol or zope form controller python script? (heuristic) +au BufNewFile,BufRead *.cpy + \ if getline(1) =~ '^##' | + \ setf python | + \ else | + \ setf cobol | + \ endif + +" Coco/R +au BufNewFile,BufRead *.atg setf coco + +" Cold Fusion +au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf + +" Configure scripts +au BufNewFile,BufRead configure.in,configure.ac setf config + +" CUDA Cumpute Unified Device Architecture +au BufNewFile,BufRead *.cu setf cuda + +" WildPackets EtherPeek Decoder +au BufNewFile,BufRead *.dcd setf dcd + +" Enlightenment configuration files +au BufNewFile,BufRead *enlightenment/*.cfg setf c + +" Eterm +au BufNewFile,BufRead *Eterm/*.cfg setf eterm + +" Lynx config files +au BufNewFile,BufRead lynx.cfg setf lynx + +" Quake +au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake +au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake + +" Quake C +au BufNewFile,BufRead *.qc setf c + +" Configure files +au BufNewFile,BufRead *.cfg setf cfg + +" Communicating Sequential Processes +au BufNewFile,BufRead *.csp,*.fdr setf csp + +" CUPL logic description and simulation +au BufNewFile,BufRead *.pld setf cupl +au BufNewFile,BufRead *.si setf cuplsim + +" Debian Control +au BufNewFile,BufRead */debian/control setf debcontrol +au BufNewFile,BufRead control + \ if getline(1) =~ '^Source:' + \| setf debcontrol + \| endif + +" Debian Sources.list +au BufNewFile,BufRead /etc/apt/sources.list setf debsources + +" Deny hosts +au BufNewFile,BufRead denyhosts.conf setf denyhosts + +" ROCKLinux package description +au BufNewFile,BufRead *.desc setf desc + +" the D language or dtrace +au BufNewFile,BufRead *.d call s:DtraceCheck() + +func! s:DtraceCheck() + let lines = getline(1, min([line("$"), 100])) + if match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1 + setf dtrace + else + setf d + endif +endfunc + +" Desktop files +au BufNewFile,BufRead *.desktop,.directory setf desktop + +" Dict config +au BufNewFile,BufRead dict.conf,.dictrc setf dictconf + +" Dictd config +au BufNewFile,BufRead dictd.conf setf dictdconf + +" Diff files +au BufNewFile,BufRead *.diff,*.rej,*.patch setf diff + +" Dircolors +au BufNewFile,BufRead .dir_colors,/etc/DIR_COLORS setf dircolors + +" Diva (with Skill) or InstallShield +au BufNewFile,BufRead *.rul + \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' | + \ setf ishd | + \ else | + \ setf diva | + \ endif + +" DCL (Digital Command Language - vms) or DNS zone file +au BufNewFile,BufRead *.com call s:BindzoneCheck('dcl') + +" DOT +au BufNewFile,BufRead *.dot setf dot + +" Dylan - lid files +au BufNewFile,BufRead *.lid setf dylanlid + +" Dylan - intr files (melange) +au BufNewFile,BufRead *.intr setf dylanintr + +" Dylan +au BufNewFile,BufRead *.dylan setf dylan + +" Microsoft Module Definition +au BufNewFile,BufRead *.def setf def + +" Dracula +au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula + +" dsl +au BufNewFile,BufRead *.dsl setf dsl + +" DTD (Document Type Definition for XML) +au BufNewFile,BufRead *.dtd setf dtd + +" EDIF (*.edf,*.edif,*.edn,*.edo) +au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif + +" Embedix Component Description +au BufNewFile,BufRead *.ecd setf ecd + +" Eiffel or Specman +au BufNewFile,BufRead *.e,*.E call s:FTe() + +" Elinks configuration +au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks + +func! s:FTe() + let n = 1 + while n < 100 && n < line("$") + if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$" + setf specman + return + endif + let n = n + 1 + endwhile + setf eiffel +endfunc + +" ERicsson LANGuage; Yaws is erlang too +au BufNewFile,BufRead *.erl,*.yaws setf erlang + +" Elm Filter Rules file +au BufNewFile,BufRead filter-rules setf elmfilt + +" ESMTP rc file +au BufNewFile,BufRead *esmtprc setf esmtprc + +" ESQL-C +au BufNewFile,BufRead *.ec,*.EC setf esqlc + +" Esterel +au BufNewFile,BufRead *.strl setf esterel + +" Essbase script +au BufNewFile,BufRead *.csc setf csc + +" Exim +au BufNewFile,BufRead exim.conf setf exim + +" Expect +au BufNewFile,BufRead *.exp setf expect + +" Exports +au BufNewFile,BufRead exports setf exports + +" Factor +au BufNewFile,BufRead *.factor setf factor + +" Fetchmail RC file +au BufNewFile,BufRead .fetchmailrc setf fetchmail + +" FlexWiki +au BufNewFile,BufRead *.wiki setf flexwiki + +" Focus Executable +au BufNewFile,BufRead *.fex,*.focexec setf focexec + +" Focus Master file (but not for auto.master) +au BufNewFile,BufRead auto.master setf conf +au BufNewFile,BufRead *.mas,*.master setf master + +" Forth +au BufNewFile,BufRead *.fs,*.ft setf forth + +" Reva Forth +au BufNewFile,BufRead *.frt setf reva + +" Fortran +if has("fname_case") + au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95 setf fortran +endif +au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95 setf fortran + +" FStab +au BufNewFile,BufRead fstab,mtab setf fstab + +" GDB command files +au BufNewFile,BufRead .gdbinit setf gdb + +" GDMO +au BufNewFile,BufRead *.mo,*.gdmo setf gdmo + +" Gedcom +au BufNewFile,BufRead *.ged setf gedcom + +" Git +autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit +autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig +autocmd BufNewFile,BufRead git-rebase-todo setf gitrebase +autocmd BufNewFile,BufRead .msg.[0-9]* + \ if getline(1) =~ '^From.*# This line is ignored.$' | + \ setf gitsendemail | + \ endif +autocmd BufNewFile,BufRead *.git/** + \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' | + \ setf git | + \ endif + +" Gkrellmrc +au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc + +" GP scripts (2.0 and onward) +au BufNewFile,BufRead *.gp,.gprc setf gp + +" GPG +au BufNewFile,BufRead */.gnupg/options setf gpg +au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg +au BufNewFile,BufRead /usr/**/gnupg/options.skel setf gpg + +" Gnuplot scripts +au BufNewFile,BufRead *.gpi setf gnuplot + +" GrADS scripts +au BufNewFile,BufRead *.gs setf grads + +" Gretl +au BufNewFile,BufRead *.gretl setf gretl + +" Groovy +au BufNewFile,BufRead *.groovy setf groovy + +" GNU Server Pages +au BufNewFile,BufRead *.gsp setf gsp + +" Group file +au BufNewFile,BufRead /etc/group setf group + +" GTK RC +au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc + +" Hamster Classic | Playground files +au BufNewFile,BufRead *.hsc,*.hsm setf hamster + +" Haskell +au BufNewFile,BufRead *.hs setf haskell +au BufNewFile,BufRead *.lhs setf lhaskell +au BufNewFile,BufRead *.chs setf chaskell + +" Haste +au BufNewFile,BufRead *.ht setf haste + +" Hercules +au BufNewFile,BufRead *.vc,*.ev,*.rs,*.sum,*.errsum setf hercules + +" HEX (Intel) +au BufNewFile,BufRead *.hex,*.h32 setf hex + +" Tilde (must be before HTML) +au BufNewFile,BufRead *.t.html setf tilde + +" HTML (.shtml and .stm for server side) +au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call s:FThtml() + +" Distinguish between HTML, XHTML and Django +func! s:FThtml() + let n = 1 + while n < 10 && n < line("$") + if getline(n) =~ '\<DTD\s\+XHTML\s' + setf xhtml + return + endif + if getline(n) =~ '{%\s*\(extends\|block\)\>' + setf htmldjango + return + endif + let n = n + 1 + endwhile + setf html +endfunc + +" HTML with Ruby - eRuby +au BufNewFile,BufRead *.erb,*.rhtml setf eruby + +" HTML with M4 +au BufNewFile,BufRead *.html.m4 setf htmlm4 + +" HTML Cheetah template +au BufNewFile,BufRead *.tmpl setf htmlcheetah + +" Host config +au BufNewFile,BufRead /etc/host.conf setf hostconf + +" Hyper Builder +au BufNewFile,BufRead *.hb setf hb + +" Icon +au BufNewFile,BufRead *.icn setf icon + +" IDL (Interface Description Language) +au BufNewFile,BufRead *.idl call s:FTidl() + +" Distinguish between standard IDL and MS-IDL +func! s:FTidl() + let n = 1 + while n < 50 && n < line("$") + if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"' + setf msidl + return + endif + let n = n + 1 + endwhile + setf idl +endfunc + +" Microsoft IDL (Interface Description Language) Also *.idl +" MOF = WMI (Windows Management Instrumentation) Managed Object Format +au BufNewFile,BufRead *.odl,*.mof setf msidl + +" Icewm menu +au BufNewFile,BufRead */.icewm/menu setf icemenu + +" Indent profile (must come before IDL *.pro!) +au BufNewFile,BufRead .indent.pro setf indent +au BufNewFile,BufRead indent.pro call s:ProtoCheck('indent') + +" IDL (Interactive Data Language) +au BufNewFile,BufRead *.pro call s:ProtoCheck('idlang') + +" Distinguish between "default" and Cproto prototype file. */ +func! s:ProtoCheck(default) + " Cproto files have a comment in the first line and a function prototype in + " the second line, it always ends in ";". Indent files may also have + " comments, thus we can't match comments to see the difference. + if getline(2) =~ ';$' + setf cpp + else + exe 'setf ' . a:default + endif +endfunc + + +" Indent RC +au BufNewFile,BufRead indentrc setf indentrc + +" Inform +au BufNewFile,BufRead *.inf,*.INF setf inform + +" Initng +au BufNewFile,BufRead /etc/initng/**/*.i,*.ii setf initng + +" Ipfilter +au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter + +" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.) +au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl + +" .INI file for MSDOS +au BufNewFile,BufRead *.ini setf dosini + +" SysV Inittab +au BufNewFile,BufRead inittab setf inittab + +" Inno Setup +au BufNewFile,BufRead *.iss setf iss + +" JAL +au BufNewFile,BufRead *.jal,*.JAL setf jal + +" Jam +au BufNewFile,BufRead *.jpl,*.jpr setf jam + +" Java +au BufNewFile,BufRead *.java,*.jav setf java + +" JavaCC +au BufNewFile,BufRead *.jj,*.jjt setf javacc + +" JavaScript, ECMAScript +au BufNewFile,BufRead *.js,*.javascript,*.es setf javascript + +" Java Server Pages +au BufNewFile,BufRead *.jsp setf jsp + +" Java Properties resource file (note: doesn't catch font.properties.pl) +au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties +au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') + +" Jess +au BufNewFile,BufRead *.clp setf jess + +" Jgraph +au BufNewFile,BufRead *.jgr setf jgraph + +" Kixtart +au BufNewFile,BufRead *.kix setf kix + +" Kimwitu[++] +au BufNewFile,BufRead *.k setf kwt + +" KDE script +au BufNewFile,BufRead *.ks setf kscript + +" Kconfig +au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig + +" Lace (ISE) +au BufNewFile,BufRead *.ace,*.ACE setf lace + +" Latte +au BufNewFile,BufRead *.latte,*.lte setf latte + +" Limits +au BufNewFile,BufRead /etc/limits setf limits + +" LambdaProlog (*.mod too, see Modsim) +au BufNewFile,BufRead *.sig setf lprolog + +" LDAP LDIF +au BufNewFile,BufRead *.ldif setf ldif + +" Ld loader +au BufNewFile,BufRead *.ld setf ld + +" Lex +au BufNewFile,BufRead *.lex,*.l setf lex + +" Libao +au BufNewFile,BufRead /etc/libao.conf,*/.libao setf libao + +" Libsensors +au BufNewFile,BufRead /etc/sensors.conf setf sensors + +" LFTP +au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp + +" Lifelines (or Lex for C++!) +au BufNewFile,BufRead *.ll setf lifelines + +" Lilo: Linux loader +au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') + +" Lisp (*.el = ELisp, *.cl = Common Lisp, *.jl = librep Lisp) +if has("fname_case") + au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,*.L,.emacs,.sawfishrc setf lisp +else + au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,.emacs,.sawfishrc setf lisp +endif + +" SBCL implementation of Common Lisp +au BufNewFile,BufRead sbclrc,.sbclrc setf lisp + +" Lite +au BufNewFile,BufRead *.lite,*.lt setf lite + +" LiteStep RC files +au BufNewFile,BufRead */LiteStep/*/*.rc setf litestep + +" Login access +au BufNewFile,BufRead /etc/login.access setf loginaccess + +" Login defs +au BufNewFile,BufRead /etc/login.defs setf logindefs + +" Logtalk +au BufNewFile,BufRead *.lgt setf logtalk + +" LOTOS +au BufNewFile,BufRead *.lot,*.lotos setf lotos + +" Lout (also: *.lt) +au BufNewFile,BufRead *.lou,*.lout setf lout + +" Lua +au BufNewFile,BufRead *.lua setf lua + +" Linden Scripting Language (Second Life) +au BufNewFile,BufRead *.lsl setf lsl + +" Lynx style file (or LotusScript!) +au BufNewFile,BufRead *.lss setf lss + +" M4 +au BufNewFile,BufRead *.m4 + \ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif + +" MaGic Point +au BufNewFile,BufRead *.mgp setf mgp + +" Mail (for Elm, trn, mutt, muttng, rn, slrn) +au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail + +" Mail aliases +au BufNewFile,BufRead /etc/mail/aliases,/etc/aliases setf mailaliases + +" Mailcap configuration file +au BufNewFile,BufRead .mailcap,mailcap setf mailcap + +" Makefile +au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make + +" MakeIndex +au BufNewFile,BufRead *.ist,*.mst setf ist + +" Manpage +au BufNewFile,BufRead *.man setf man + +" Man config +au BufNewFile,BufRead /etc/man.conf,man.config setf manconf + +" Maple V +au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple + +" Mason +au BufNewFile,BufRead *.mason,*.mhtml setf mason + +" Matlab or Objective C +au BufNewFile,BufRead *.m call s:FTm() + +func! s:FTm() + let n = 1 + while n < 10 + let line = getline(n) + if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)' + setf objc + return + endif + if line =~ '^\s*%' + setf matlab + return + endif + if line =~ '^\s*(\*' + setf mma + return + endif + let n = n + 1 + endwhile + if exists("g:filetype_m") + exe "setf " . g:filetype_m + else + setf matlab + endif +endfunc + +" Mathematica notebook +au BufNewFile,BufRead *.nb setf mma + +" Maya Extension Language +au BufNewFile,BufRead *.mel setf mel + +" Messages +au BufNewFile,BufRead /var/log/messages,/var/log/messages.*[0-9] setf messages + +" Metafont +au BufNewFile,BufRead *.mf setf mf + +" MetaPost +au BufNewFile,BufRead *.mp setf mp + +" MGL +au BufNewFile,BufRead *.mgl setf mgl + +" MMIX or VMS makefile +au BufNewFile,BufRead *.mms call s:FTmms() + +" Symbian meta-makefile definition (MMP) +au BufNewFile,BufRead *.mmp setf mmp + +func! s:FTmms() + let n = 1 + while n < 10 + let line = getline(n) + if line =~ '^\s*\(%\|//\)' || line =~ '^\*' + setf mmix + return + endif + if line =~ '^\s*#' + setf make + return + endif + let n = n + 1 + endwhile + setf mmix +endfunc + + +" Modsim III (or LambdaProlog) +au BufNewFile,BufRead *.mod + \ if getline(1) =~ '\<module\>' | + \ setf lprolog | + \ else | + \ setf modsim3 | + \ endif + +" Modula 2 +au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2 + +" Modula 3 (.m3, .i3, .mg, .ig) +au BufNewFile,BufRead *.[mi][3g] setf modula3 + +" Monk +au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk + +" MOO +au BufNewFile,BufRead *.moo setf moo + +" Modconf +au BufNewFile,BufRead /etc/modules.conf,/etc/conf.modules setf modconf +au BufNewFile,BufRead /etc/modutils/* + \ if executable(expand("<afile>")) != 1 + \| call s:StarSetf('modconf') + \|endif + +" Mplayer config +au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf + +" Moterola S record +au BufNewFile,BufRead *.s19,*.s28,*.s37 setf srec + +" Mrxvtrc +au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc + +" Msql +au BufNewFile,BufRead *.msql setf msql + +" Mysql +au BufNewFile,BufRead *.mysql setf mysql + +" M$ Resource files +au BufNewFile,BufRead *.rc setf rc + +" MuPAD source +au BufRead,BufNewFile *.mu setf mupad + +" Mush +au BufNewFile,BufRead *.mush setf mush + +" Mutt setup file (also for Muttng) +au BufNewFile,BufRead Mutt{ng,}rc setf muttrc + +" Nano +au BufNewFile,BufRead /etc/nanorc,.nanorc setf nanorc + +" Nastran input/DMAP +"au BufNewFile,BufRead *.dat setf nastran + +" Natural +au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural + +" Netrc +au BufNewFile,BufRead .netrc setf netrc + +" Novell netware batch files +au BufNewFile,BufRead *.ncf setf ncf + +" Nroff/Troff (*.ms and *.t are checked below) +au BufNewFile,BufRead *.me + \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" | + \ setf nroff | + \ endif +au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff +au BufNewFile,BufRead *.[1-9] call s:FTnroff() + +" This function checks if one of the first five lines start with a dot. In +" that case it is probably an nroff file: 'filetype' is set and 1 is returned. +func! s:FTnroff() + if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.' + setf nroff + return 1 + endif + return 0 +endfunc + +" Nroff or Objective C++ +au BufNewFile,BufRead *.mm call s:FTmm() + +func! s:FTmm() + let n = 1 + while n < 10 + let line = getline(n) + if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)' + setf objcpp + return + endif + let n = n + 1 + endwhile + setf nroff +endfunc + +" Not Quite C +au BufNewFile,BufRead *.nqc setf nqc + +" NSIS +au BufNewFile,BufRead *.nsi setf nsis + +" OCAML +au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly setf ocaml + +" Occam +au BufNewFile,BufRead *.occ setf occam + +" Omnimark +au BufNewFile,BufRead *.xom,*.xin setf omnimark + +" OpenROAD +au BufNewFile,BufRead *.or setf openroad + +" OPL +au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl + +" Oracle config file +au BufNewFile,BufRead *.ora setf ora + +" Packet filter conf +au BufNewFile,BufRead pf.conf setf pf + +" Pam conf +au BufNewFile,BufRead /etc/pam.conf setf pamconf + +" PApp +au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp + +" Password file +au BufNewFile,BufRead /etc/passwd,/etc/shadow,/etc/shadow- setf passwd + +" Pascal (also *.p) +au BufNewFile,BufRead *.pas setf pascal + +" Delphi project file +au BufNewFile,BufRead *.dpr setf pascal + +" PDF +au BufNewFile,BufRead *.pdf setf pdf + +" Perl +if has("fname_case") + au BufNewFile,BufRead *.pl,*.PL call s:FTpl() +else + au BufNewFile,BufRead *.pl call s:FTpl() +endif +au BufNewFile,BufRead *.plx setf perl + +func! s:FTpl() + if exists("g:filetype_pl") + exe "setf " . g:filetype_pl + else + " recognize Prolog by specific text in the first non-empty line + " require a blank after the '%' because Perl uses "%list" and "%translate" + let l = getline(nextnonblank(1)) + if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-' + setf prolog + else + setf perl + endif + endif +endfunc + +" Perl, XPM or XPM2 +au BufNewFile,BufRead *.pm + \ if getline(1) =~ "XPM2" | + \ setf xpm2 | + \ elseif getline(1) =~ "XPM" | + \ setf xpm | + \ else | + \ setf perl | + \ endif + +" Perl POD +au BufNewFile,BufRead *.pod setf pod + +" Php, php3, php4, etc. +" Also Phtml (was used for PHP 2 in the past) +" Also .ctp for Cake template file +au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php + +" Pike +au BufNewFile,BufRead *.pike,*.lpc,*.ulpc,*.pmod setf pike + +" Pinfo config +au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo + +" Palm Resource compiler +au BufNewFile,BufRead *.rcp setf pilrc + +" Pine config +au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine + +" PL/M (also: *.inp) +au BufNewFile,BufRead *.plm,*.p36,*.pac setf plm + +" PL/SQL +au BufNewFile,BufRead *.pls,*.plsql setf plsql + +" PLP +au BufNewFile,BufRead *.plp setf plp + +" PO and PO template (GNU gettext) +au BufNewFile,BufRead *.po,*.pot setf po + +" Postfix main config +au BufNewFile,BufRead main.cf setf pfmain + +" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator) +au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr + +" PostScript Printer Description +au BufNewFile,BufRead *.ppd setf ppd + +" Povray +au BufNewFile,BufRead *.pov setf pov + +" Povray configuration +au BufNewFile,BufRead .povrayrc setf povini + +" Povray, PHP or assembly +au BufNewFile,BufRead *.inc call s:FTinc() + +func! s:FTinc() + if exists("g:filetype_inc") + exe "setf " . g:filetype_inc + else + let lines = getline(1).getline(2).getline(3) + if lines =~? "perlscript" + setf aspperl + elseif lines =~ "<%" + setf aspvbs + elseif lines =~ "<?" + setf php + else + call s:FTasmsyntax() + if exists("b:asmsyntax") + exe "setf " . b:asmsyntax + else + setf pov + endif + endif + endif +endfunc + +" Printcap and Termcap +au BufNewFile,BufRead *printcap + \ let b:ptcap_type = "print" | setf ptcap +au BufNewFile,BufRead *termcap + \ let b:ptcap_type = "term" | setf ptcap + +" PCCTS / ANTRL +"au BufNewFile,BufRead *.g setf antrl +au BufNewFile,BufRead *.g setf pccts + +" PPWizard +au BufNewFile,BufRead *.it,*.ih setf ppwiz + +" Oracle Pro*C/C++ +au BufNewFile,BufRead *.pc setf proc + +" Privoxy actions file +au BufNewFile,BufRead *.action setf privoxy + +" Procmail +au BufNewFile,BufRead .procmail,.procmailrc setf procmail + +" Progress or CWEB +au BufNewFile,BufRead *.w call s:FTprogress_cweb() + +func! s:FTprogress_cweb() + if exists("g:filetype_w") + exe "setf " . g:filetype_w + return + endif + if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE' + setf progress + else + setf cweb + endif +endfunc + +" Progress or assembly +au BufNewFile,BufRead *.i call s:FTprogress_asm() + +func! s:FTprogress_asm() + if exists("g:filetype_i") + exe "setf " . g:filetype_i + return + endif + " This function checks for an assembly comment the first ten lines. + " If not found, assume Progress. + let lnum = 1 + while lnum <= 10 && lnum < line('$') + let line = getline(lnum) + if line =~ '^\s*;' || line =~ '^\*' + call s:FTasm() + return + elseif line !~ '^\s*$' || line =~ '^/\*' + " Not an empty line: Doesn't look like valid assembly code. + " Or it looks like a Progress /* comment + break + endif + let lnum = lnum + 1 + endw + setf progress +endfunc + +" Progress or Pascal +au BufNewFile,BufRead *.p call s:FTprogress_pascal() + +func! s:FTprogress_pascal() + if exists("g:filetype_p") + exe "setf " . g:filetype_p + return + endif + " This function checks for valid Pascal syntax in the first ten lines. + " Look for either an opening comment or a program start. + " If not found, assume Progress. + let lnum = 1 + while lnum <= 10 && lnum < line('$') + let line = getline(lnum) + if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>' + \ || line =~ '^\s*{' || line =~ '^\s*(\*' + setf pascal + return + elseif line !~ '^\s*$' || line =~ '^/\*' + " Not an empty line: Doesn't look like valid Pascal code. + " Or it looks like a Progress /* comment + break + endif + let lnum = lnum + 1 + endw + setf progress +endfunc + + +" Software Distributor Product Specification File (POSIX 1387.2-1995) +au BufNewFile,BufRead *.psf setf psf +au BufNewFile,BufRead INDEX,INFO + \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' | + \ setf psf | + \ endif + +" Prolog +au BufNewFile,BufRead *.pdb setf prolog + +" Promela +au BufNewFile,BufRead *.pml setf promela + +" Protocols +au BufNewFile,BufRead /etc/protocols setf protocols + +" Pyrex +au BufNewFile,BufRead *.pyx,*.pxd setf pyrex + +" Python +au BufNewFile,BufRead *.py,*.pyw setf python + +" Radiance +au BufNewFile,BufRead *.rad,*.mat setf radiance + +" Ratpoison config/command files +au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison + +" RCS file +au BufNewFile,BufRead *\,v setf rcs + +" Readline +au BufNewFile,BufRead .inputrc,inputrc setf readline + +" Registry for MS-Windows +au BufNewFile,BufRead *.reg + \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif + +" Renderman Interface Bytestream +au BufNewFile,BufRead *.rib setf rib + +" Rexx +au BufNewFile,BufRead *.rexx,*.rex,*.jrexx,*.rxj,*.orx setf rexx + +" R (Splus) +if has("fname_case") + au BufNewFile,BufRead *.s,*.S setf r +else + au BufNewFile,BufRead *.s setf r +endif + +" R Help file +if has("fname_case") + au BufNewFile,BufRead *.rd,*.Rd setf rhelp +else + au BufNewFile,BufRead *.rd setf rhelp +endif + +" R noweb file +if has("fname_case") + au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb +else + au BufNewFile,BufRead *.rnw,*.snw setf rnoweb +endif + +" Rexx, Rebol or R +au BufNewFile,BufRead *.r,*.R call s:FTr() + +func! s:FTr() + let max = line("$") > 50 ? 50 : line("$") + + for n in range(1, max) + " Rebol is easy to recognize, check for that first + if getline(n) =~? '\<REBOL\>' + setf rebol + return + endif + endfor + + for n in range(1, max) + " R has # comments + if getline(n) =~ '^\s*#' + setf r + return + endif + " Rexx has /* comments */ + if getline(n) =~ '^\s*/\*' + setf rexx + return + endif + endfor + + " Nothing recognized, assume Rexx + setf rexx +endfunc + +" Remind +au BufNewFile,BufRead .reminders* call s:StarSetf('remind') + +" Resolv.conf +au BufNewFile,BufRead resolv.conf setf resolv + +" Relax NG Compact +au BufNewFile,BufRead *.rnc setf rnc + +" RPL/2 +au BufNewFile,BufRead *.rpl setf rpl + +" Robots.txt +au BufNewFile,BufRead robots.txt setf robots + +" Rpcgen +au BufNewFile,BufRead *.x setf rpcgen + +" reStructuredText Documentation Format +au BufNewFile,BufRead *.rst setf rst + +" RTF +au BufNewFile,BufRead *.rtf setf rtf + +" Ruby +au BufNewFile,BufRead *.rb,*.rbw,*.gem,*.gemspec setf ruby + +" Ruby on Rails +au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby + +" Rantfile and Rakefile is like Ruby +au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby + +" S-lang (or shader language!) +au BufNewFile,BufRead *.sl setf slang + +" Samba config +au BufNewFile,BufRead smb.conf setf samba + +" SAS script +au BufNewFile,BufRead *.sas setf sas + +" Sather +au BufNewFile,BufRead *.sa setf sather + +" Scilab +au BufNewFile,BufRead *.sci,*.sce setf scilab + +" SD: Streaming Descriptors +au BufNewFile,BufRead *.sd setf sd + +" SDL +au BufNewFile,BufRead *.sdl,*.pr setf sdl + +" sed +au BufNewFile,BufRead *.sed setf sed + +" Sieve (RFC 3028) +au BufNewFile,BufRead *.siv setf sieve + +" Sendmail +au BufNewFile,BufRead sendmail.cf setf sm + +" Sendmail .mc files are actually m4. Could also be MS Message text file. +au BufNewFile,BufRead *.mc call s:McSetf() + +func! s:McSetf() + " Rely on the file to start with a comment. + " MS message text files use ';', Sendmail files use '#' or 'dnl' + for lnum in range(1, min([line("$"), 20])) + let line = getline(lnum) + if line =~ '^\s*\(#\|dnl\)' + setf m4 " Sendmail .mc file + return + elseif line =~ '^\s*;' + setf msmessages " MS Message text file + return + endif + endfor + setf m4 " Default: Sendmail .mc file +endfunc + +" Services +au BufNewFile,BufRead /etc/services setf services + +" Service Location config +au BufNewFile,BufRead /etc/slp.conf setf slpconf + +" Service Location registration +au BufNewFile,BufRead /etc/slp.reg setf slpreg + +" Service Location SPI +au BufNewFile,BufRead /etc/slp.spi setf slpspi + +" Setserial config +au BufNewFile,BufRead /etc/serial.conf setf setserial + +" SGML +au BufNewFile,BufRead *.sgm,*.sgml + \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' | + \ setf sgmllnx | + \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' | + \ let b:docbk_type="sgml" | + \ setf docbk | + \ else | + \ setf sgml | + \ endif + +" SGMLDECL +au BufNewFile,BufRead *.decl,*.dcl,*.dec + \ if getline(1).getline(2).getline(3) =~? '^<!SGML' | + \ setf sgmldecl | + \ endif + +" SGML catalog file +au BufNewFile,BufRead catalog setf catalog +au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') + +" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. +" Gentoo ebuilds are actually bash scripts +au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash") +au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh") +au BufNewFile,BufRead /etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1)) + +" Also called from scripts.vim. +func! SetFileTypeSH(name) + if expand("<amatch>") =~ g:ft_ignore_pat + return + endif + if a:name =~ '\<ksh\>' + let b:is_kornshell = 1 + if exists("b:is_bash") + unlet b:is_bash + endif + if exists("b:is_sh") + unlet b:is_sh + endif + elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~ '\<bash2\>' + let b:is_bash = 1 + if exists("b:is_kornshell") + unlet b:is_kornshell + endif + if exists("b:is_sh") + unlet b:is_sh + endif + elseif a:name =~ '\<sh\>' + let b:is_sh = 1 + if exists("b:is_kornshell") + unlet b:is_kornshell + endif + if exists("b:is_bash") + unlet b:is_bash + endif + endif + call SetFileTypeShell("sh") +endfunc + +" For shell-like file types, check for an "exec" command hidden in a comment, +" as used for Tcl. +" Also called from scripts.vim, thus can't be local to this script. +func! SetFileTypeShell(name) + if expand("<amatch>") =~ g:ft_ignore_pat + return + endif + let l = 2 + while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)' + " Skip empty and comment lines. + let l = l + 1 + endwhile + if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$' + " Found an "exec" line after a comment with continuation + let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '') + if n =~ '\<tclsh\|\<wish' + setf tcl + return + endif + endif + exe "setf " . a:name +endfunc + +" tcsh scripts +au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call SetFileTypeShell("tcsh") + +" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) +au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call s:CSH() + +func! s:CSH() + if exists("g:filetype_csh") + call SetFileTypeShell(g:filetype_csh) + elseif &shell =~ "tcsh" + call SetFileTypeShell("tcsh") + else + call SetFileTypeShell("csh") + endif +endfunc + +" Z-Shell script +au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks setf zsh +au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') + +" Scheme +au BufNewFile,BufRead *.scm,*.ss setf scheme + +" Screen RC +au BufNewFile,BufRead .screenrc,screenrc setf screen + +" Simula +au BufNewFile,BufRead *.sim setf simula + +" SINDA +au BufNewFile,BufRead *.sin,*.s85 setf sinda + +" SiSU +au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu +au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu + +" SKILL +au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill + +" SLRN +au BufNewFile,BufRead .slrnrc setf slrnrc +au BufNewFile,BufRead *.score setf slrnsc + +" Smalltalk (and TeX) +au BufNewFile,BufRead *.st setf st +au BufNewFile,BufRead *.cls + \ if getline(1) =~ '^%' | + \ setf tex | + \ else | + \ setf st | + \ endif + +" Smarty templates +au BufNewFile,BufRead *.tpl setf smarty + +" SMIL or XML +au BufNewFile,BufRead *.smil + \ if getline(1) =~ '<?\s*xml.*?>' | + \ setf xml | + \ else | + \ setf smil | + \ endif + +" SMIL or SNMP MIB file +au BufNewFile,BufRead *.smi + \ if getline(1) =~ '\<smil\>' | + \ setf smil | + \ else | + \ setf mib | + \ endif + +" SMITH +au BufNewFile,BufRead *.smt,*.smith setf smith + +" Snobol4 and spitbol +au BufNewFile,BufRead *.sno,*.spt setf snobol4 + +" SNMP MIB files +au BufNewFile,BufRead *.mib,*.my setf mib + +" Snort Configuration +au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog +au BufNewFile,BufRead *.rules call s:FTRules() + +let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*' +func! s:FTRules() + if expand('<amatch>:p') =~ '^/etc/udev/rules\.d/.*\.rules$' + setf udevrules + return + endif + try + let config_lines = readfile('/etc/udev/udev.conf') + catch /^Vim\%((\a\+)\)\=:E484/ + setf hog + return + endtry + let dir = expand('<amatch>:p:h') + for line in config_lines + if line =~ s:ft_rules_udev_rules_pattern + let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "") + if dir == udev_rules + setf udevrules + endif + break + endif + endfor + setf hog +endfunc + + +" Spec (Linux RPM) +au BufNewFile,BufRead *.spec setf spec + +" Speedup (AspenTech plant simulator) +au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup + +" Slice +au BufNewFile,BufRead *.ice setf slice + +" Spice +au BufNewFile,BufRead *.sp,*.spice setf spice + +" Spyce +au BufNewFile,BufRead *.spy,*.spi setf spyce + +" Squid +au BufNewFile,BufRead squid.conf setf squid + +" SQL for Oracle Designer +au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql + +" SQL +au BufNewFile,BufRead *.sql call s:SQL() + +func! s:SQL() + if exists("g:filetype_sql") + exe "setf " . g:filetype_sql + else + setf sql + endif +endfunc + +" SQLJ +au BufNewFile,BufRead *.sqlj setf sqlj + +" SQR +au BufNewFile,BufRead *.sqr,*.sqi setf sqr + +" OpenSSH configuration +au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig + +" OpenSSH server configuration +au BufNewFile,BufRead sshd_config setf sshdconfig + +" Stata +au BufNewFile,BufRead *.ado,*.class,*.do,*.imata,*.mata setf stata + +" SMCL +au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl + +" Stored Procedures +au BufNewFile,BufRead *.stp setf stp + +" Standard ML +au BufNewFile,BufRead *.sml setf sml + +" Sratus VOS command macro +au BufNewFile,BufRead *.cm setf voscm + +" Sysctl +au BufNewFile,BufRead /etc/sysctl.conf setf sysctl + +" Sudoers +au BufNewFile,BufRead /etc/sudoers,sudoers.tmp setf sudoers + +" If the file has an extension of 't' and is in a directory 't' then it is +" almost certainly a Perl test file. +" If the first line starts with '#' and contains 'perl' it's probably a Perl +" file. +" (Slow test) If a file contains a 'use' statement then it is almost certainly +" a Perl file. +func! s:FTperl() + if expand("%:e") == 't' && expand("%:p:h:t") == 't' + setf perl + return 1 + endif + if getline(1)[0] == '#' && getline(1) =~ 'perl' + setf perl + return 1 + endif + if search('^use\s\s*\k', 'nc', 30) + setf perl + return 1 + endif + return 0 +endfunc + +" Tads (or Nroff or Perl test file) +au BufNewFile,BufRead *.t + \ if !s:FTnroff() && !s:FTperl() | setf tads | endif + +" Tags +au BufNewFile,BufRead tags setf tags + +" TAK +au BufNewFile,BufRead *.tak setf tak + +" Tcl (JACL too) +au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl + +" TealInfo +au BufNewFile,BufRead *.tli setf tli + +" Telix Salt +au BufNewFile,BufRead *.slt setf tsalt + +" Terminfo +au BufNewFile,BufRead *.ti setf terminfo + +" TeX +au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex +au BufNewFile,BufRead *.tex call s:FTtex() + +" Choose context, plaintex, or tex (LaTeX) based on these rules: +" 1. Check the first line of the file for "%&<format>". +" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords. +" 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc. +func! s:FTtex() + let firstline = getline(1) + if firstline =~ '^%&\s*\a\+' + let format = tolower(matchstr(firstline, '\a\+')) + let format = substitute(format, 'pdf', '', '') + if format == 'tex' + let format = 'plain' + endif + else + " Default value, may be changed later: + let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain' + " Save position, go to the top of the file, find first non-comment line. + let save_cursor = getpos('.') + call cursor(1,1) + let firstNC = search('^\s*[^[:space:]%]', 'c', 1000) + if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword. + let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>' + let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>' + let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)', + \ 'cnp', firstNC + 1000) + if kwline == 1 " lpat matched + let format = 'latex' + elseif kwline == 2 " cpat matched + let format = 'context' + endif " If neither matched, keep default set above. + " let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000) + " let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000) + " if cline > 0 + " let format = 'context' + " endif + " if lline > 0 && (cline == 0 || cline > lline) + " let format = 'tex' + " endif + endif " firstNC + call setpos('.', save_cursor) + endif " firstline =~ '^%&\s*\a\+' + + " Translation from formats to file types. TODO: add AMSTeX, RevTex, others? + if format == 'plain' + setf plaintex + elseif format == 'context' + setf context + else " probably LaTeX + setf tex + endif + return +endfunc + +" ConTeXt +au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv setf context + +" Texinfo +au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo + +" TeX configuration +au BufNewFile,BufRead texmf.cnf setf texmf + +" Tidy config +au BufNewFile,BufRead .tidyrc,tidyrc setf tidy + +" TF mud client +au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf + +" TPP - Text Presentation Program +au BufNewFile,BufReadPost *.tpp setf tpp + +" Trustees +au BufNewFile,BufRead trustees.conf setf trustees + +" TSS - Geometry +au BufNewFile,BufReadPost *.tssgm setf tssgm + +" TSS - Optics +au BufNewFile,BufReadPost *.tssop setf tssop + +" TSS - Command Line (temporary) +au BufNewFile,BufReadPost *.tsscl setf tsscl + +" Motif UIT/UIL files +au BufNewFile,BufRead *.uit,*.uil setf uil + +" Udev conf +au BufNewFile,BufRead /etc/udev/udev.conf setf udevconf + +" Udev permissions +au BufNewFile,BufRead /etc/udev/permissions.d/*.permissions setf udevperm +" +" Udev symlinks config +au BufNewFile,BufRead /etc/udev/cdsymlinks.conf setf sh + +" UnrealScript +au BufNewFile,BufRead *.uc setf uc + +" Updatedb +au BufNewFile,BufRead /etc/updatedb.conf setf updatedb + +" Vera +au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera + +" Verilog HDL +au BufNewFile,BufRead *.v setf verilog + +" Verilog-AMS HDL +au BufNewFile,BufRead *.va,*.vams setf verilogams + +" VHDL +au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl +au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') + +" Vim script +au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim + +" Viminfo file +au BufNewFile,BufRead .viminfo,_viminfo setf viminfo + +" Virata Config Script File +au BufRead,BufNewFile *.hw,*.module,*.pkg setf virata + +" Visual Basic (also uses *.bas) or FORM +au BufNewFile,BufRead *.frm call s:FTVB("form") + +" SaxBasic is close to Visual Basic +au BufNewFile,BufRead *.sba setf vb + +" Vgrindefs file +au BufNewFile,BufRead vgrindefs setf vgrindefs + +" VRML V1.0c +au BufNewFile,BufRead *.wrl setf vrml + +" Webmacro +au BufNewFile,BufRead *.wm setf webmacro + +" Wget config +au BufNewFile,BufRead .wgetrc,wgetrc setf wget + +" Website MetaLanguage +au BufNewFile,BufRead *.wml setf wml + +" Winbatch +au BufNewFile,BufRead *.wbt setf winbatch + +" WSML +au BufNewFile,BufRead *.wsml setf wsml + +" WvDial +au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial + +" CVS RC file +au BufNewFile,BufRead .cvsrc setf cvsrc + +" CVS commit file +au BufNewFile,BufRead cvs\d\+ setf cvs + +" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment +" lines in a WEB file). +au BufNewFile,BufRead *.web + \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | + \ setf web | + \ else | + \ setf winbatch | + \ endif + +" Windows Scripting Host and Windows Script Component +au BufNewFile,BufRead *.ws[fc] setf wsh + +" XHTML +au BufNewFile,BufRead *.xhtml,*.xht setf xhtml + +" X Pixmap (dynamically sets colors, use BufEnter to make it work better) +au BufEnter *.xpm + \ if getline(1) =~ "XPM2" | + \ setf xpm2 | + \ else | + \ setf xpm | + \ endif +au BufEnter *.xpm2 setf xpm2 + +" XFree86 config +au BufNewFile,BufRead XF86Config + \ if getline(1) =~ '\<XConfigurator\>' | + \ let b:xf86c_xfree86_version = 3 | + \ endif | + \ setf xf86conf + +" Xorg config +au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86c_xfree86_version = 4 | setf xf86conf + +" Xinetd conf +au BufNewFile,BufRead /etc/xinetd.conf setf xinetd + +" XS Perl extension interface language +au BufNewFile,BufRead *.xs setf xs + +" X resources file +au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults + +" Xmath +au BufNewFile,BufRead *.msc,*.msf setf xmath +au BufNewFile,BufRead *.ms + \ if !s:FTnroff() | setf xmath | endif + +" XML specific variants: docbk and xbl +au BufNewFile,BufRead *.xml call s:FTxml() + +func! s:FTxml() + let n = 1 + while n < 100 && n < line("$") + let line = getline(n) + if line =~ '<!DOCTYPE.*DocBook' + let b:docbk_type = "xml" + setf docbk + return + endif + if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"' + setf xbl + return + endif + let n += 1 + endwhile + setf xml +endfunc + +" XMI (holding UML models) is also XML +au BufNewFile,BufRead *.xmi setf xml + +" CSPROJ files are Visual Studio.NET's XML-based project config files +au BufNewFile,BufRead *.csproj,*.csproj.user setf xml + +" Qt Linguist translation source and Qt User Interface Files are XML +au BufNewFile,BufRead *.ts,*.ui setf xml + +" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) +au BufNewFile,BufRead *.tpm setf xml + +" Xdg menus +au BufNewFile,BufRead /etc/xdg/menus/*.menu setf xml + +" ATI graphics driver configuration +au BufNewFile,BufRead fglrxrc setf xml + +" XLIFF (XML Localisation Interchange File Format) is also XML +au BufNewFile,BufRead *.xlf setf xml +au BufNewFile,BufRead *.xliff setf xml + +" X11 xmodmap (also see below) +au BufNewFile,BufRead *Xmodmap setf xmodmap + +" Xquery +au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery + +" XSD +au BufNewFile,BufRead *.xsd setf xsd + +" Xslt +au BufNewFile,BufRead *.xsl,*.xslt setf xslt + +" Yacc +au BufNewFile,BufRead *.yy setf yacc + +" Yacc or racc +au BufNewFile,BufRead *.y call s:FTy() + +func! s:FTy() + let n = 1 + while n < 100 && n < line("$") + let line = getline(n) + if line =~ '^\s*%' + setf yacc + return + endif + if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include' + setf racc + return + endif + let n = n + 1 + endwhile + setf yacc +endfunc + + +" Yaml +au BufNewFile,BufRead *.yaml,*.yml setf yaml + +" Zope +" dtml (zope dynamic template markup language), pt (zope page template), +" cpt (zope form controller page template) +au BufNewFile,BufRead *.dtml,*.pt,*.cpt call s:FThtml() +" zsql (zope sql method) +au BufNewFile,BufRead *.zsql call s:SQL() + +" Z80 assembler asz80 +au BufNewFile,BufRead *.z8a setf z8a + +augroup END + + +" Source the user-specified filetype file, for backwards compatibility with +" Vim 5.x. +if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) + execute "source " . myfiletypefile +endif + + +" Check for "*" after loading myfiletypefile, so that scripts.vim is only used +" when there are no matching file name extensions. +" Don't do this for compressed files. +augroup filetypedetect +au BufNewFile,BufRead * + \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat + \ | runtime! scripts.vim | endif +au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif + + +" Extra checks for when no filetype has been detected now. Mostly used for +" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim +" script file. +" Most of these should call s:StarSetf() to avoid names ending in .gz and the +" like are used. + +" Asterisk config file +au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') +au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') + +" Bazaar version control +au BufNewFile,BufRead bzr_log.* setf bzr + +" BIND zone +au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') + +" Changelog +au BufNewFile,BufRead [cC]hange[lL]og* + \ if getline(1) =~ '; urgency=' + \| call s:StarSetf('debchangelog') + \|else + \| call s:StarSetf('changelog') + \|endif + +" Crontab +au BufNewFile,BufRead crontab,crontab.* call s:StarSetf('crontab') + +" Debian Sources.list +au BufNewFile,BufRead /etc/apt/sources.list.d/* call s:StarSetf('debsources') + +" Dracula +au BufNewFile,BufRead drac.* call s:StarSetf('dracula') + +" Fvwm +au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') +au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook + \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') +au BufNewFile,BufRead *fvwm2rc* + \ if expand("<afile>:e") == "m4" + \| call s:StarSetf('fvwm2m4') + \|else + \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') + \|endif + +" GTK RC +au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') + +" Jam +au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') + +" Jargon +au! BufNewFile,BufRead *jarg* + \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' + \| call s:StarSetf('jargon') + \|endif + +" Kconfig +au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') + +" Makefile +au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') + +" Ruby Makefile +au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') + +" Mail (also matches muttrc.vim, so this is below the other checks) +au BufNewFile,BufRead mutt[[:alnum:]._-]\{6\} setf mail + +" Modconf +au BufNewFile,BufRead /etc/modprobe.* call s:StarSetf('modconf') + +" Mutt setup file +au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') +au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') + +" Nroff macros +au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') + +" Pam conf +au BufNewFile,BufRead /etc/pam.d/* call s:StarSetf('pamconf') + +" Printcap and Termcap +au BufNewFile,BufRead *printcap* + \ if !did_filetype() + \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') + \|endif +au BufNewFile,BufRead *termcap* + \ if !did_filetype() + \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') + \|endif + +" Vim script +au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') + +" Subversion commit file +au BufNewFile,BufRead svn-commit*.tmp setf svn + +" X resources file +au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') + +" XFree86 config +au BufNewFile,BufRead XF86Config-4* + \ let b:xf86c_xfree86_version = 4 | call s:StarSetf('xf86conf') +au BufNewFile,BufRead XF86Config* + \ if getline(1) =~ '\<XConfigurator\>' + \| let b:xf86c_xfree86_version = 3 + \|endif + \|call s:StarSetf('xf86conf') + +" X11 xmodmap +au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') + +" Xinetd conf +au BufNewFile,BufRead /etc/xinetd.d/* call s:StarSetf('xinetd') + +" Z-Shell script +au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') + + +" Generic configuration file (check this last, it's just guessing!) +au BufNewFile,BufRead,StdinReadPost * + \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat + \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' + \ || getline(4) =~ '^#' || getline(5) =~ '^#') | + \ setf conf | + \ endif + +" Use the plugin-filetype checks last, they may overrule any of the previously +" detected filetypes. +runtime! ftdetect/*.vim + +augroup END + + +" If the GUI is already running, may still need to install the Syntax menu. +" Don't do it when the 'M' flag is included in 'guioptions'. +if has("menu") && has("gui_running") + \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" + source <sfile>:p:h/menu.vim +endif + +" Function called for testing all functions defined here. These are +" script-local, thus need to be executed here. +" Returns a string with error messages (hopefully empty). +func! TestFiletypeFuncs(testlist) + let output = '' + for f in a:testlist + try + exe f + catch + let output = output . "\n" . f . ": " . v:exception + endtry + endfor + return output +endfunc + +" Restore 'cpoptions' +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/tutor/runtime/ftoff.vim b/runtime/tutor/runtime/ftoff.vim new file mode 100644 index 000000000..377c6ef82 --- /dev/null +++ b/runtime/tutor/runtime/ftoff.vim @@ -0,0 +1,11 @@ +" Vim support file to switch off detection of file types +" +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last change: 2001 Jun 11 + +if exists("did_load_filetypes") + unlet did_load_filetypes +endif + +" Remove all autocommands in the filetypedetect group +silent! au! filetypedetect * diff --git a/runtime/tutor/runtime/vim32x32.png b/runtime/tutor/runtime/vim32x32.png Binary files differnew file mode 100644 index 000000000..c6e04fab2 --- /dev/null +++ b/runtime/tutor/runtime/vim32x32.png diff --git a/runtime/tutor/runtime/vimlogo.xpm b/runtime/tutor/runtime/vimlogo.xpm new file mode 100644 index 000000000..63e0d54b5 --- /dev/null +++ b/runtime/tutor/runtime/vimlogo.xpm @@ -0,0 +1,75 @@ +/* XPM */ +static char *vimlogo[] = { +/* width height num_colors chars_per_pixel */ +" 125 60 8 1", +/* colors */ +". c #000000", +"# c #00007f", +"a c #007f00", +"b c #7f7f7f", +"c c #00ff00", +"d c #bfbfbf", +"e c #ffffff", +"f c None", +/* pixels */ +"fffffffffffffffffffffffffffee..eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffffffffffffffffffffee.cc.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fffffffffffffffffffffffffee.cccc.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffeeeeeeeeeeeeeeeeeeee.ccaacc.eeffeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fffffee....................caaaacc.eeee...................eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffee.deeeeeeeeeeeeeeeeeeb.aaaaacc.ee.deeeeeeeeeeeeeeeeeb.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffe.dedddddddddddddddddddb.aaaaacc..dedddddddddddddddddd.beffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffe.eddddddddddddddddddddb.aaaaaacc.edddddddddddddddddddb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffe.eddddddddddddddddddddb.aaaaaaac.edddddddddddddddddddb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffe.edddddddddddddddddddbb.aaaaaaaa.eddddddddddddddddddbb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffe.bbdddddddddddddddddbbb.aaaaaaaa.bbddddddddddddddddbb.befffffffffffffffffffffffffffeeeeeffffffffffffffffffffffffffffffff", +"ffffee.bbbbddddddddddddbbbb.aaaaaaaaaa.bbbbddddddddddddbbb.eefffffffffffffffeeeeeeeeeeeee...effffffffffffffffffffffffffffffff", +"fffffee..beddddddddddddbbb.aaaaaaaaaaaa..dedddddddddddbbb.eeffffffffffffffffe..........ee...effffffffffffffffffffffffffffffff", +"ffffffeee.eddddddddddddbb.aaaaaaaaaaaaa.eedddddddddddbbb.eefffffffffffffffffe..........eee..eeeeeefffeeeeeeefffffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaaaaaaa.eedddddddddddbbb.eeffffffffffffffffffe..ee..ee..efe..e....eefee.....eeffffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaaaaaa.eedddddddddddbbb.eefffffffffffffffffffe..ee..ee..efe........eee.......eefffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaaaaa.eedddddddddddbbb.eeffffffffffffffffffffe..ee..ee..efe...eee..ee..eeeee..efffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaaaa.eedddddddddddbbb.eefffffffffffffffffffffeeeee..eeeeefe..eefe..ee.........efffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaaa.eedddddddddddbbb.eeffffffffffffffffffffffffffe..efffffe..effe..ee.........efffffffffffffff", +"ffffffffe.eddddddddddddbb.aaaaaaa.eedddddddddddbbb.eefffffffffffffffffffffffffffe..efffffe..effe..ee..eeeeeeeefffffffffffffff", +"fffffffee.eddddddddddddbb.aaaaaa.eedddddddddddbbb.eeffffffffffffffffffffffffffeee..eeeffee..eeee..ee...eeee..efffffffffffffff", +"ffffffee..eddddddddddddbb.aaaaa.eedddddddddddbbb.c.eefffffffffffffffffffffffffe......effe....ee....ee........efffffffffffffff", +"fffffee.c.eddddddddddddbb.aaaa.eedddddddddddbbb.acc.eeffffffffffffffffffffffffe......effe....ee....eee......eefffffffffffffff", +"ffffee.cc.eddddddddddddbb.aaa.eedddddddddddbbb.aaacc.eefffffffffffffffffffffffeeeeeeeeffeeeeeeeeeeeefeeeeeeeeffffffffffffffff", +"fffee.cca.eddddddddddddbb.aa.eedddddddddddbbb.aaaaacc.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffee.ccaa.eddddddddddddbb.a.eedddddddddddbbb.aaaaaaacc.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fee.ccaaa.eddddddddddddbb..eedddddddddddbbb.aaaaaaaaacc.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ee.ccaaaa.eddddddddddddbb.eedddddddddddbbb.aaaaaaaaaaacc.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"e.ccaaaaa.eddddddddddddbbeedddddddddddbbb.aaaaaaaaaaaaacc.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"...aaaaaa.eddddddddddddbdedddddddddddbbb.aaaaaaaaaaaaaaacc.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"e.##aaaaa.eddddddddddddbedddddddddddbbb.aaaaaaaaaaaaaaaaa...effffffffffffffffeeeeeffffeeeefffffeeeeffffffffffffffffffffffffff", +"ee.##aaaa.eddddddddddddddddddddddddbbb.aaaaaaaaaaaaaaaaa##.eeffffffffffffffffe...effffe..efffffe..effffffffffffffffffffffffff", +"fee.##aaa.edddddddddddddddddddddddbbb.aaaaaaaaaaaaaaaaa##.eefffffffffffffffffe...effffe..efffffe..effffffffffffffffffffffffff", +"ffee.##aa.eddddddddddddddddddddddbbb.aaaaaaaaaaaaaaaaa##.eefffeeeeeeeffffeeeeee..efeeeeeeefffeee..eeeeefffeeeeeeeffeeeeeeeeee", +"fffee.##a.edddddddddddddddddddddbbb.aaaaaaaaaaaaaaaaa##.eefffee.....eeffee....e..efe.....efffe........effee.....eefe....e...e", +"ffffee.##.edddddddddddddddddddd....aaaaaaaaaaaaaaaaa##.eefffee.......eeee........efe.....efffe........efee.......eee.........", +"fffffee.#.eddddddddddddddddddd.dbb.aaaaaaaaaaaaaaaa##.eeffffe..eeeee..ee...eee...efeeee..efffeee..eeeeefe...eee...eeee...ee..", +"ffffffee..eddddddddddddddddddd.ddb.aaaaaaaaaaaaaaa##.eefffffe.........ee..eefee..effffe..efffffe..efffffe..eefee..effe..eeeee", +"fffffffee.eddddddddddddddddddb.bbb.aaaaaaaaaaaaaa##.eeffffffe.........ee..efffe..effffe..efffffe..efffffe..efffe..effe..effff", +"ffffffffe.edddddddddddddddddbbb...aaaaaaaaaaaaaa##.eeeeeeeffe..eeeeeeeee..eefee..effffe..efffffe..efeeeee..eefee..effe..effff", +"ffffffffe.eddddddddddddddddbb......aa.....aa.....#......beefe...eeee..ee...eee...eeeeee..eeeeffe..eee..ee...eee...eeee..eeeee", +"ffffffffe.edddddddddddddddbbb.dbbb.aa.dbbb..dbbbb..dbbbb.befee........eee.........ee........effe.......eee.......eee........e", +"ffffffffe.eddddddddddddddbbb..bdd.aaa.bdddbbdddddbbdddddb.effee......eefee....e...ee........effee....eeefee.....eefe........e", +"ffffffffe.edddddddddddddbbb.a.ddb.aaa.ddddddddddddddddddb.efffeeeeeeeefffeeeeeeeeeeeeeeeeeeeefffeeeeeeffffeeeeeeeffeeeeeeeeee", +"ffffffffe.eddddddddddddbbb.a.bddb.aa.bdddbbbbddddbbbbdddb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.edddddddddddbbb.aa.bdd.aaa.bddb....bddb....bdd.beffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.eddddddddddbbb.aaa.ddb.aaa.ddb.##b.ddb.eeb.ddb.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.edddddddddbbb..aa.bddb.aa.bddb.#e.bddb.ee.bddb.efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.eddddddddbbb..aaa.bdd.aaa.bdd.#ee.bdd.bee.bdd.befffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.edddddddbbb.aaaaa.ddb.aaa.ddb.eeb.ddb.eeb.ddb.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.eddddddbbb.##aaa.bddb.aa.bddb.ee.bddb.ee.bddb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.edddddbbb.e.##aa.bdd.aaa.bdd.bee.bdd.bee.bdd.beffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffe.bddddbbb.eee.##a.ddb.aaa.ddb.eeb.ddb.eeb.ddb.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffee..bbbb..eefee.#.bbbbb.a.bbbbb.e.bbbbb.e.bbbbb.effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fffffffffeeb....beefffee........a.......e.......e.......effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffffeeeeeeeefffffee.##aaaa##.eeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffffffffffffffffffee.##aa##.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fffffffffffffffffffffffffee.####.eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"ffffffffffffffffffffffffffee.##.eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", +"fffffffffffffffffffffffffffee..eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" +}; diff --git a/runtime/tutor/runtime/vimrc_example.vim b/runtime/tutor/runtime/vimrc_example.vim new file mode 100644 index 000000000..a2a891c16 --- /dev/null +++ b/runtime/tutor/runtime/vimrc_example.vim @@ -0,0 +1,94 @@ +" An example for a vimrc file. +" +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last change: 2008 Jun 16 +" +" To use it, copy it to +" for Unix and OS/2: ~/.vimrc +" for Amiga: s:.vimrc +" for MS-DOS and Win32: $VIM\_vimrc +" for OpenVMS: sys$login:.vimrc + +" When started as "evim", evim.vim will already have done these settings. +if v:progname =~? "evim" + finish +endif + +" Use Vim settings, rather then Vi settings (much better!). +" This must be first, because it changes other options as a side effect. +set nocompatible + +" allow backspacing over everything in insert mode +set backspace=indent,eol,start + +if has("vms") + set nobackup " do not keep a backup file, use versions instead +else + set backup " keep a backup file +endif +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time +set showcmd " display incomplete commands +set incsearch " do incremental searching + +" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries +" let &guioptions = substitute(&guioptions, "t", "", "g") + +" Don't use Ex mode, use Q for formatting +map Q gq + +" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, +" so that you can undo CTRL-U after inserting a line break. +inoremap <C-U> <C-G>u<C-U> + +" In many terminal emulators the mouse works just fine, thus enable it. +set mouse=a + +" Switch syntax highlighting on, when the terminal has colors +" Also switch on highlighting the last used search pattern. +if &t_Co > 2 || has("gui_running") + syntax on + set hlsearch +endif + +" Only do this part when compiled with support for autocommands. +if has("autocmd") + + " Enable file type detection. + " Use the default filetype settings, so that mail gets 'tw' set to 72, + " 'cindent' is on in C files, etc. + " Also load indent files, to automatically do language-dependent indenting. + filetype plugin indent on + + " Put these in an autocmd group, so that we can delete them easily. + augroup vimrcEx + au! + + " For all text files set 'textwidth' to 78 characters. + autocmd FileType text setlocal textwidth=78 + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid or when inside an event handler + " (happens when dropping a file on gvim). + " Also don't do it when the mark is in the first line, that is the default + " position when opening a file. + autocmd BufReadPost * + \ if line("'\"") > 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + + augroup END + +else + + set autoindent " always set autoindenting on + +endif " has("autocmd") + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis + \ | wincmd p | diffthis +endif diff --git a/runtime/tutor/tutor b/runtime/tutor/tutor index 32aef9445..31ba71072 100644 --- a/runtime/tutor/tutor +++ b/runtime/tutor/tutor @@ -139,12 +139,12 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 1.6: EDITING A FILE - ** Use :wq to save a file and exit. ** !! NOTE: Before executing any of the steps below, read this entire lesson!! 1. Exit this tutor as you did in lesson 1.2: :q! + Or, if you have access to another terminal, do the following there. 2. At the shell prompt type this command: vim tutor <ENTER> 'vim' is the command to start the Vim editor, 'tutor' is the name of the @@ -154,10 +154,10 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage. 4. Save the file with changes and exit Vim with: :wq <ENTER> - 5. Restart the vimtutor and move down to the following summary. + 5. If you have quit vimtutor in step 1 restart the vimtutor and move down to + the following summary. 6. After reading the above steps and understanding them: do it. - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 1 SUMMARY diff --git a/runtime/tutor/tutor.fr.utf-8 b/runtime/tutor/tutor.fr.utf-8 new file mode 100644 index 000000000..5ab14cdb0 --- /dev/null +++ b/runtime/tutor/tutor.fr.utf-8 @@ -0,0 +1,809 @@ +=============================================================================== += B i e n v e n u e dans le T u t o r i e l de V I M - Version 1.5.fr.2 = +=============================================================================== + + Vim est un éditeur très puissant qui a trop de commandes pour pouvoir + toutes les expliquer dans un cours comme celui-ci, qui est conçu pour en + décrire suffisamment afin de vous permettre d'utiliser simplement Vim. + + Le temps requis pour suivre ce cours est d'environ 25 à 30 minutes, selon + le temps que vous passerez à expérimenter. Les commandes utilisées dans + les leçons modifieront le texte. Faites une copie de ce fichier afin de + vous entraîner dessus (si vous avez lancé "vimtutor" ceci est déjà une + copie). + + Il est important de garder en tête que ce cours est conçu pour apprendre + par la pratique. Cela signifie que vous devez exécuter les commandes + pour les apprendre correctement. Si vous vous contentez de lire le + texte, vous oublierez les commandes ! + + Maintenant, vérifiez que votre clavier n'est PAS verouillé en majuscules, + et appuyez la touche j le nombre de fois suffisant pour que la leçon + 1.1 remplisse complètement l'écran. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 1.1 : DÉPLACEMENT DU CURSEUR + + + ** Pour déplacer le curseur, appuyez les touches h,j,k,l comme indiqué. ** + ^ + k Astuce: La touche h est à gauche et déplace à gauche. + < h l > La touche l est à droite et déplace à droite. + j La touche j ressemble à une flèche vers le bas. + v + 1. Déplacez le curseur sur l'écran jusqu'à vous sentir à l'aise. + + 2. Maintenez la touche Bas (j) enfoncée jusqu'à ce qu'elle se répète. +---> Maintenant vous êtes capable de vous déplacer jusqu'à la leçon suivante. + + 3. En utilisant la touche Bas, allez à la Leçon 1.2. + +Note: Si jamais vous doutez de ce que vous venez de taper, appuyez <Échap> + pour revenir en mode Normal. Puis retapez la commande que vous vouliez. + +Note: Les touches fléchées devraient également fonctionner. Mais en utilisant + hjkl vous pourrez vous déplacer beaucoup plus rapidement, une fois que + vous aurez pris l'habitude. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 1.2 : ENTRÉE ET SORTIE DE VIM + + + !! NOTE: Avant d'effectuer les étapes ci-dessous, lisez toute cette leçon !! + + 1. Appuyez la touche <Échap> (pour être sûr d'être en mode Normal). + + 2. Tapez: :q! <Entrée> + +---> Ceci quitte l'éditeur SANS sauver les changements que vous avez faits. + Si vous voulez enregistrer les changements et sortir, tapez: + :wq <Entrée> + + 3. Lorsque l'invite du 'shell' vous sera présentée, tapez la commande qui + vous a amené dans ce tutoriel. Cela pourrait être: vimtutor <Entrée> + Normalement, vous utiliseriez: vim tutor <Entrée> + +---> 'vim' lance l'éditeur, 'tutor' est le fichier que vous souhaitez éditer. + + 4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes + 1 à 3 pour sortir puis rentrer dans l'éditeur. Déplacez ensuite le + curseur jusqu'à la Leçon 1.3. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 1.3 : ÉDITION DE TEXTE - EFFACEMENT + + + ** En mode Normal, appuyez x pour effacer le caractère sous le curseur. ** + + 1. Déplacez le curseur sur la ligne marquée ---> ci-dessous. + + 2. Pour corriger les erreurs, déplacez le curseur jusqu'à ce qu'il soit + sur un caractère à effacer. + + 3. Appuyez la touche x pour effacer le caractère redondant. + + 4. Répétez les étapes 2 à 4 jusqu'à ce que la phrase soit correcte. + +---> La vvache à sautéé au-ddessus dde la luune. + + 5. Maintenant que la ligne est correcte, passez à la leçon 1.4. + +NOTE: En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par + la pratique. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 1.4 : ÉDITION DE TEXTE - INSERTION + + + ** En mode Normal, appuyez i pour insérer du texte. ** + + 1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous. + + 2. Pour rendre la première ligne identique à la seconde, mettez le curseur + sur le premier caractère APRÈS l'endroit où insérer le texte. + + 3. Appuyez i et tapez les caractères qui manquent. + + 4. Une fois qu'une erreur est corrigée, appuyez <Échap> pour revenir en mode + Normal. Répétez les étapes 2 à 4 pour corriger la phrase. + +---> Il mnqe caractères cette . +---> Il manque des caractères dans cette ligne. + + 5. Une fois que vous êtes à l'aise avec l'insertion de texte, allez au + résumé ci-dessous. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 1 + + 1. Le curseur se déplace avec les touches fléchées ou les touches hjkl. + h (gauche) j (bas) k (haut) l (droite) + + 2. Pour entrer dans Vim (à l'invite %) tapez: vim FICHIER <Entrée> + + 3. Pour quitter Vim tapez: <Échap> :q! <Entrée> pour perdre tous les + changements. + OU tapez: <Échap> :wq <Entrée> pour enregistrer les + changements. + + 4. Pour effacer un caractère sous le curseur en mode Normal tapez: x + + 5. Pour insérer du texte au niveau du curseur en mode Normal tapez: + i tapez le texte <Échap> + +NOTE: Appuyer <Échap> vous place en mode Normal ou annule une commande + partiellement tapée dont vous ne voudriez plus. + +Passez maintenant à la Leçon 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 2.1 : EFFACEMENTS + + + ** Tapez dw pour effacer jusqu'à la fin d'un mot. ** + + 1. Appuyez <Échap> pour être sûr d'être en mode Normal. + + 2. Déplacez le curseur sur la ligne marquée ---> ci-dessous. + + 3. Placez le curseur sur le début d'un mot qui a besoin d'être effacé. + + 4. Tapez dw pour faire disparaître ce mot. + +NOTE: Les lettres dw apparaîtront sur la dernière ligne de l'écran lors de + votre frappe. Si vous avez mal tapé quelque chose, appuyez <Échap> et + recommencez. + +---> Il y a quelques drôle mots qui n'ont rien à faire papier sur cette ligne. + + 5. Répétez les étapes 3 et 4 jusqu'à ce que la phrase soit correcte et allez + à la Leçon 2.2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 2.2 : PLUS D'EFFACEMENTS + + + ** Tapez d$ pour effacer jusqu'à la fin de la ligne. ** + + 1. Appuyez <Échap> pour être sûr d'être en mode Normal. + + 2. Déplacez le curseur sur la ligne marquée ---> ci-dessous. + + 3. Déplacez le curseur jusqu'à la fin correcte de la ligne + (APRÈS le premier . ). + + 4. Tapez d$ pour effacer jusqu'à la fin de la ligne. + +---> Quelqu'un a tapé la fin de cette ligne deux fois. cette ligne deux fois. + + 5. Allez à la Leçon 2.3 pour comprendre ce qui se passe. + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 2.3 : DES COMMANDES ET DES OBJETS + + + Le format de la commande d'effacement d est le suivant: + + [nombre] d objet OU d [nombre] objet + où: + nombre - est combien de fois exécuter la commande (optionnel, défaut: 1). + d - est la commande d'effacement. + objet - est ce sur quoi la commande va opérer (liste ci-dessous). + + Une courte liste d'objets: + w - du curseur jusqu'à la fin du mot, y compris l'espace qui suit. + e - du curseur jusqu'à la fin du mot, SANS l'espace qui suit. + $ - du curseur jusqu'à la fin de la ligne. + +NOTE: Pour les aventureux, le seul appui d' objet en mode Normal, sans + commande, déplace le curseur comme indiqué dans la liste des objets. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 2.4 : UNE EXCEPTION À 'COMMANDE-OBJET' + + ** Tapez dd pour effacer une ligne complète. ** + + Vu le nombre de fois où l'on efface des lignes complètes, les concepteurs + de Vi ont décidé qu'il serait plus facile de taper simplement deux d à la + suite pour effacer une ligne. + + 1. Placez le curseur sur la seconde ligne de la phrase ci-dessous. + 2. Tapez dd pour effacer la ligne. + 3. Maintenant allez à la quatrième ligne. + 4. Tapez 2dd (rappelez-vous, nombre-commande-objet) pour effacer les + deux lignes. + + 1) Les roses sont rouges, + 2) La boue c'est drôle, + 3) Les violettes sont bleues, + 4) J'ai une voiture, + 5) Les horloges donnent l'heure, + 6) Le sucre est doux + 7) Tout comme vous. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 2.5 : L'ANNULATION + + ** Tapez u pour annuler les dernières commandes. ** + ** Tapez U pour récupérer toute une ligne. ** + + 1. Déplacez le curseur sur la ligne marquée ---> ci-dessous et placez-le sur + la première erreur. + 2. Tapez x pour effacer le premier caractère redondant. + 3. Puis tapez u pour annuler la dernière commande exécutée. + 4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande x . + 5. Puis tapez un U majuscule pour remettre la ligne dans son état initial. + 6. Puis tapez u deux-trois fois pour annuler le U et les commandes + précédentes. + 7. Maintenant tapez Ctrl-R (maintenez la touche Ctrl enfoncée pendant que + vous appuyez sur R) deux-trois fois pour refaire les commandes (annuler + les annulations). + +---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'. + + 8. Ce sont des commandes très utiles. Maintenant, allez au résumé de la + Leçon 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 2 + + + 1. Pour effacer du curseur jusqu'à la fin d'un mot tapez: dw + + 2. Pour effacer du curseur jusqu'à la fin d'une ligne tapez: d$ + + 3. Pour effacer toute une ligne tapez: dd + + 4. Le format d'une commande en mode Normal est: + + [nombre] commande objet OU commande [nombre] objet + où: + nombre - est combien de fois répéter la commande + commande - est ce qu'il faut faire, par exemple d pour effacer + objet - est ce sur quoi la commande devrait agir, par exemple w (mot), + $ (jusqu'à la fin de la ligne), etc. + + 5. Pour annuler des actions précédentes, tapez: u (u minuscule) + Pour annuler tous les changements sur une ligne tapez: U (U majuscule) + Pour annuler l'annulation tapez: Ctrl-R + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 3.1 : LE COLLAGE + + + ** Tapez p pour placer après le curseur ce qui vient d'être effacé. ** + + 1. Placez le curseur sur la première ligne du "poème" ci-dessous. + + 2. Tapez dd pour effacer la ligne et la placer dans le tampon de Vim. + + 3. Déplacez le curseur sur la ligne qui PRÉCÈDE l'endroit où vous voulez + remettre la ligne effacée. + + 4. En mode Normal, tapez p pour remettre la ligne. + + 5. Répétez les étapes 2 à 4 pour mettre toutes les lignes dans le bon ordre. + + d) Et vous, qu'apprenez-vous ? + b) Les violettes sont bleues, + c) L'intelligence s'apprend, + a) Les roses sont rouges, + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 3.2 : LE REMPLACEMENT + + + ** Tapez r et un caractère pour remplacer le caractère sous le curseur. ** + + 1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous. + + 2. Placez le curseur de manière à ce qu'il surplombe la première erreur. + + 3. Tapez r suivi du caractère qui doit corriger l'erreur. + + 4. Répétez les étapes 2 et 3 jusqu'à ce que la première ligne soit correcte. + +---> Quand cette ligne a été sauvie, quelqu'un a lait des faunes de frappe ! +---> Quand cette ligne a été saisie, quelqu'un a fait des fautes de frappe ! + + 5. Maintenant, allez à la Leçon 3.3. + +NOTE: N'oubliez pas que vous devriez apprendre par la pratique, pas par + mémorisation. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 3.3 : LE CHANGEMENT + + + ** Pour changer tout ou partie d'un mot, tapez cw .** + + 1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous. + + 2. Placez le curseur sur le u de luhko. + + 3. Tapez cw et corrigez le mot (dans notre cas, tapez 'igne'.) + + 4. Appuyez <Échap> et placez-vous sur l'erreur suivante (le premier + caractère qui doit être changé). + + 5. Répétez les étapes 3 et 4 jusqu'à ce que la première phrase soit + identique à la seconde. + +---> Cette luhko contient quelques myqa qui ont ricne d'être chantufip. +---> Cette ligne contient quelques mots qui ont besoin d'être changés. + +Notez que cw efface le mot et vous place ensuite en mode Insertion. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 3.4 : PLUS DE CHANGEMENTS AVEC c + + + ** Le changement fonctionne avec les mêmes objets que l'effacement. ** + + 1. Le changement fonctionne de la même manière que l'effacement. + Le format est: + + [nombre] c objet OU c [nombre] objet + + 2. Les objets sont également les mêmes: w (mot), $ (fin de ligne), etc. + + 3. Déplacez-vous à la première ligne marquée ---> ci-dessous. + + 4. Placez le curseur sur la première erreur. + + 5. Tapez c$ pour changer la fin de la ligne, rendez-là identique à la + seconde ligne, puis tapez <Échap>. + +---> La fin de cette ligne doit être rendue identique à la seconde. +---> La fin de cette ligne doit être corrigée avec la commande c$ . + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 3 + + + 1. Pour remettre du texte qui vient d'être effacé, tapez p . Cela Place le + texte effacé APRÈS le curseur (si une ligne complète a été effacée, elle + sera placée sous la ligne du curseur). + + 2. Pour remplacer le caractère sous le curseur, tapez r suivi du caractère + qui remplacera l'original. + + 3. Le changement vous permet de changer l'objet spécifié, du curseur jusqu'à + la fin de l'objet. Par exemple, tapez cw pour changer du curseur + jusqu'à la fin du mot, c$ pour changer jusqu'à la fin d'une ligne. + + 4. Le format pour le changement est: + + [nombre] c objet OU c [nombre] objet + +Passez maintenant à la leçon suivante. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 4.1 : POSITION ET ÉTAT DU FICHIER + + + ** Tapez Ctrl-G pour afficher votre position dans le fichier et son état. + Utilisez Maj-G pour vous rendre à une ligne donnée du fichier. ** + + Note: Lisez toute cette leçon avant d'effectuer l'une des étapes ! + + 1. Maintenez enfoncée la touche Ctrl et appuyez sur G . Une ligne d'état + va apparaître en bas de l'écran avec le nom du fichier et le numéro de la + ligne où vous êtes. Notez ce numéro, il servira lors de l'étape 3. + + 2. Tapez G majuscule (Maj-G) pour vous rendre à la fin du fichier. + + 3. Tapez le numéro de la ligne où vous étiez suivi de Maj-G. Cela vous + ramènera à la ligne où vous étiez au départ. + (Lorsque vous tapez les chiffres, ils n'apparaissent PAS à l'écran). + + 4. Si vous vous sentez prêt à faire ceci, effectuez les étapes 1 à 3. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 4.2 : LA RECHERCHE + + + ** Tapez / suivi d'un texte pour rechercher ce texte. ** + + 1. Tapez le caractère / en mode Normal. Notez que celui-ci et le curseur + apparaissent en bas de l'écran, comme lorsque l'on utilise : . + + 2. Puis tapez 'errreuur' <Entrée>. C'est le mot que vous voulez rechercher. + + 3. Pour rechercher à nouveau le même texte, tapez simplement n . + Pour rechercher le même texte dans la direction opposée, tapez Maj-N . + + 4. Si vous voulez rechercher un texte vers le haut du fichier, utilisez ? + à la place de / . + +---> erreur ne s'écrit pas "errreuur"; errreuur est une erreur. + +Note: Quand la recherche atteint la fin du fichier, elle reprend au début. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 4.3 : RECHERCHE DES PARENTHÈSES CORRESPONDANTES + + + ** Tapez % pour trouver des ), ] ou } correspondants. ** + + 1. Placez le curseur sur l'un des (, [ ou { de la ligne marquée ---> + ci-dessous. + + 2. Puis tapez le caractère % . + + 3. Le curseur devrait se placer sur la parenthèse correspondante. + + 4. Tapez % pour replacer le curseur sur l'autre parenthèse. + +---> Voici ( une ligne de test contenant des (, des [ ] et des { } )). + +Note: Cette fonctionnalité est très utile lors du débogage d'un programme qui + contient des parenthèses déséquilibrées ! + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 4.4 : UNE MANIÈRE DE CORRIGER LES ERREURS + + + ** Tapez :s/ancien/nouveau/g pour remplacer 'ancien' par 'nouveau'. ** + + 1. Déplacez le curseur sur la ligne marquée ---> ci-dessous. + + 2. Tapez :s/lee/le <Entrée> . Notez que cette commande change seulement la + première occurence sur la ligne. + + 3. Puis tapez :s/lee/le/g qui ordonne de faire une substitution globale + sur la ligne. Cela change toutes les occurences sur la ligne + +---> lee meilleur moment pour regarder lees fleurs est pendant lee Printemps. + + 4. Pour changer toutes les occurences d'un texte, entre deux lignes, + tapez :#,#s/ancien/nouveau/g où #,# sont les numéros des deux lignes. + Tapez :%s/ancien/nouveau/g pour changer chaque occurence dans tout + le fichier. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 4 + + + 1. Ctrl-G affiche votre position dans le fichier et l'état de celui-ci. + Maj-G vous place à la fin du fichier. Un numéro de ligne suivi de Maj-G + vous place à cette ligne. + + 2. Taper / suivi d'un texte recherche ce texte vers l'AVANT. + Taper ? suivi d'un texte recherche ce texte vers l'ARRIÈRE. + Après une recherche tapez n pour trouver l'occurence suivante dans la + même direction ou Maj-N pour rechercher dans la direction opposée. + + 3. Taper % lorsque le curseur est sur (, ), [, ], { ou } déplace + celui-ci sur le caractère correspondant. + + 4. Pour remplacer le premier aa par bb sur une ligne tapez :s/aa/bb + Pour remplacer tous les aa par bb sur une ligne tapez :s/aa/bb/g + Pour remplacer du texte entre deux numéros de ligne tapez :#,#s/aa/bb/g + Pour remplacer toutes les occurences dans le fichier tapez :%s/aa/bb/g + Pour demander une confirmation à chaque fois ajoutez 'c' :%s/aa/bb/gc + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 5.1 : COMMENT EXÉCUTER UNE COMMANDE EXTERNE + + + ** Tapez :! suivi d'une commande externe pour exécuter cette commande. ** + + 1. Tapez le : familier pour mettre le curseur en bas de l'écran. Cela vous + permet de saisir une commande. + + 2. Puis tapez un ! (point d'exclamation). Cela vous permet d'exécuter + n'importe quelle commande valide pour votre interpréteur (shell). + + 3. Par exemple, tapez ls après le ! et appuyez <Entrée>. Ceci affichera + la liste des fichiers du dossier courant, comme si vous aviez tapé la + commande à l'invite du shell. Utilisez :!dir si :!ls ne marche pas. + +Note: Il est possible d'exécuter n'importe quelle commande externe de cette + manière. + +Note: Toutes les commandes : doivent finir par la frappe de <Entrée>. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 5.2 : PLUS DE DÉTAILS SUR L'ENREGISTREMENT DE FICHIERS + + + ** Pour enregistrer les changements faits au fichier, tapez :w FICHIER . ** + + 1. Tapez :!dir ou :!ls pour avoir la liste des fichiers du dossier + courant. Vous savez déjà qu'il faut appuyer <Entrée> après cela. + + 2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST. + + 3. Puis tapez :w TEST (où TEST est le nom que vous avez choisi). + + 4. Cela sauvegarde tout le fichier (Tutoriel Vim) sous le nom TEST. + Pour le vérifier, tapez :!dir pour revisualiser le contenu du dossier. + +Notez que si vous quittez Vim et y retournez avec le fichier TEST, celui-ci +sera une copie exacte du cours au moment où vous l'avez sauvé. + + 5. Maintenant, effacez le fichier en tapant (MS-DOS): :!del TEST + ou (Unix): :!rm TEST + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 5.3 : UN ENREGISTREMENT SÉLECTIF + + + ** Pour enregistrer une portion de fichier, tapez :#,#w FICHIER ** + + 1. Tapez à nouveau :!dir ou :!ls pour visualiser le contenu du dossier + courant et choisissez un nom de fichier, tel que TEST. + + 2. Déplacez le curseur jusqu'en haut de cette page et tapez Ctrl-G pour + connaître le numéro de cette ligne. NOTEZ CE NUMÉRO ! + + 3. Puis rendez-vous au bas de cette page et tapez à nouveau Ctrl-G . + NOTEZ ÉGALEMENT CE NUMÉRO ! + + 4. Pour enregistrer SEULEMENT une portion d'un fichier, tapez :#,#w TEST + où #,# sont les deux numéros que vous avez notés (haut,bas) et TEST est + le nom du fichier. + + 5. Une fois encore, vérifiez la présence du fichier avec :!dir mais NE + L'EFFACEZ PAS. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 5.4 : RÉCUPÉRATION ET FUSION DE FICHIERS + + + ** Pour insérer le contenu d'un fichier, tapez :r FICHIER ** + + 1. Tapez :!dir pour vérifier que votre fichier TEST est encore là . + + 2. Placez le curseur en haut de cette page. + +NOTE: Après avoir suivi l'étape 3 vous verrez à l'écran la Leçon 5.3. + Déplacez-vous vers le bas jusqu'à revenir à cette leçon. + + 3. Maintenant récupérez votre fichier TEST en utilisant la commande :r TEST + où TEST est le nom de votre fichier. + +NOTE: Le fichier que vous récupérez est placé là où se trouve le curseur. + + 4. Pour vérifier que le fichier a bien été inséré, remontez et vérifiez + qu'il y a maintenant deux copies de la Leçon 5.3, l'originale et celle + contenue dans le fichier. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 5 + + + 1. :!commande exécute une commande externe. + + Quelques exemples pratiques: + (MS-DOS) (Unix) + :!dir :!ls affiche le contenu du dossier courant. + :!del FICHIER :!rm FICHIER efface FICHIER. + + 2. :w FICHIER enregistre le fichier Vim courant sur le disque avec pour + nom FICHIER. + + 3. :#,#w FICHIER enregistre les lignes # à # dans le fichier FICHIER. + + 4. :r FICHIER récupère le fichier FICHIER et l'insère dans le fichier + courant à partir de la position du curseur. + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 6.1 : L'OUVERTURE + + +** Tapez o pour ouvrir une ligne sous le curseur et y aller en Insertion. ** + + 1. Déplacez le curseur sur la ligne marquée ---> ci-dessous. + + 2. Tapez o (minuscule) pour ouvrir une ligne SOUS le curseur et vous y + placer en mode Insertion. + + 3. Puis recopiez la ligne marquée ---> et appuyez sur <Échap> pour quitter + le mode Insertion. + +---> En tapant o le curseur se met sur la ligne ouverte, en mode Insertion. + + 4. Pour ouvrir une ligne au DESSUS du curseur, tapez simplement un O + majuscule, plutôt qu'un o minuscule. Faites un essai sur la ligne + ci-dessous. +Ouvrez une ligne ci-dessus en tapant MAJ-O lorsque le curseur est ici. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 6.2 : L'AJOUT + + + ** Tapez a pour insérer du texte APRÈS le curseur. ** + + 1. Placez le curseur à la fin de la première ligne marquée ---> ci-dessous + en tapant $ en mode Normal. + + 2. Tapez un a (minuscule) pour ajouter du texte APRÈS le caractère situé + sous le curseur. ( A majuscule ajoute du texte à la fin de la ligne). + +Note: Ceci évite de taper i , le dernier caractère, le texte à insérer, + <Échap>, curseur-à -droite, et finalement x , juste pour ajouter du + texte à la fin d'une ligne ! + + 3. Maintenant, complétez la première ligne. Notez également que l'ajout est + identique au mode Insertion, hormis la position où le texte est inséré. + +---> Cette ligne vous permet de pratiquer +---> Cette ligne vous permet de pratiquer l'ajout de texte en fin de ligne. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 6.3 : UNE AUTRE VERSION DU REMPLACEMENT + + + ** Tapez un R majuscule pour remplacer plus d'un caractère. ** + + 1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous. + + 2. Placez le curseur au début du premier mot qui diffère de la seconde ligne + marquée ---> (le mot 'celle'). + + 3. Puis tapez R et remplacez le reste du texte de la première ligne en + tapant par dessus celui-ci, de manière à rendre la première ligne + identique à la seconde. + +---> Pour rendre cette ligne identique à celle du dessous utilisez le clavier. +---> Pour rendre cette ligne identique à la seconde, tapez R et la correction. + + 4. Notez que lorsque vous appuyez <Échap>, le texte qui n'a pas encore été + remplacé reste. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 6.4 : RÉGLAGE DES OPTIONS + + + ** Réglons une option afin que la recherche et la substitution ignorent la + casse des caractères. ** + + 1. Recherchez 'ignore' en tapant /ignore . + Répétez ceci plusieurs fois en utilisant la touche n . + + 2. Activez l'option 'ic' (Ignorer casse) en tapant :set ic . + + 3. Puis poursuivez votre recherche en utilisant n . + Répétez cette recherche plusieurs fois avec la touche n . + + 4. Activez les options 'hlsearch' et 'incsearch' avec :set hls is . + + 5. Puis recommencez une recherche, et faites bien attention à ce qui se + produit: /ignore . + + 6. Pour interrompre la mise en surbrillance des résultats, tapez: + :nohlsearch + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RÉSUMÉ DE LA LEÇON 6 + + + 1. Taper o ouvre une ligne SOUS le curseur et y place celui-ci en mode + Insertion. Taper un O majuscule ouvre une ligne au DESSUS de la ligne + où se trouve le curseur. + + 2. Tapez un a pour insérer du texte APRÈS le caractère où se trouve le + curseur. Taper un A majuscule ajoute du texte automatiquement à la fin + de la ligne. + + 3. Taper un R majuscule active le mode Remplacement jusqu'à ce que la + touche <Échap> soit appuyée pour en sortir. + + 4. Taper :set xxx active l'option 'xxx'. + + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 7 : ACCÉDER À L'AIDE EN LIGNE + + ** Utiliser le système d'aide en ligne. ** + + Vim a un système complet d'aide en ligne. Pour y accéder, essayez l'une de + ces trois méthodes: + - appuyez la touche <Help> (si vous en avez une) + - appuyez la touche <F1> (si vous en avez une) + - tapez :help <Entrée> + + Tapez :q <Entrée> pour fermer la fenêtre d'aide. + + Vous pouvez accéder à l'aide sur à peu près n'importe quel sujet en donnant + des arguments à la commande :help . Essayez par exemple (n'oubliez pas + d'appuyer sur <Entrée>): + + :help w + :help c_<T + :help insert-index + :help user-manual + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leçon 8 : CRÉER UN SCRIPT DE DÉMARRAGE + + ** Activer les fonctionnalités de Vim. ** + + Vim a beaucoup plus de fonctionnalités que Vi, mais la plupart de celles-ci + sont désactivées par défaut. Pour commencer à les utiliser, vous devez + créer un fichier "vimrc". + + 1. Commencez à éditer le fichier "vimrc". Ceci dépend de votre système: + :edit ~/.vimrc pour Unix + :edit $VIM/_vimrc pour MS-Windows + + 2. Intégrez maintenant le texte du fichier "vimrc" d'exemple: + :read $VIMRUNTIME/vimrc_example.vim + + 3. Enregistrez le fichier avec: + :write + + La prochaine fois que vous démarrerez Vim, le surlignage syntactique sera + activé. Vous pouvez ajouter tous vos réglages préférés dans ce fichier. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de + l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur + relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup + beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en + anglais: :help user-manual . + + Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en + français. Il parle plus de Vi que de Vim, mais pourra vous être utile. + L'éditeur Vi - Collection Précis et concis - par Arnold Robbins + Éditeur: O'Reilly France + ISBN: 2-84177-102-4 + + Deux livres en anglais sont également mentionnés dans la version originale + de ce tutoriel, dont un qui traite spécifiquement de Vim. Merci de vous y + référer si vous êtes intéressé. + + Ce tutoriel a été écrit par Michael C. Pierce et Robert K. Ware de l'École + des Mines du Colorado et reprend des idées fournies par Charles Smith, + Universté d'État du Colorado. E-mail: bware@mines.colorado.edu. + + Modifié pour Vim par Bram Moolenar. + + Traduit en Français par Adrien Beau, en avril 2001. + E-mail: version.francaise@free.fr + Last Change: 2003 May 29 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/runtime/tutor/tutor.hr.cp1250 b/runtime/tutor/tutor.hr.cp1250 new file mode 100644 index 000000000..92771ab22 --- /dev/null +++ b/runtime/tutor/tutor.hr.cp1250 @@ -0,0 +1,972 @@ +=============================================================================== += D o b r o d o š l i u VIM p r i r u è n i k - Verzija 1.7 = +=============================================================================== + + Vim je vrlo moæan editor koji ima mnogo naredbi, previše da bi ih + se svih ovdje spomenulo. Namjena priruènika je objasniti dovoljno + naredbi kako bi poèetnici znatno lakše koristili ovaj svestran editor. + + Približno vrijeme potrebno za uspješan završetak priruènika je oko + 30 minuta a ovisi o tome koliko æe te vremena odvojiti za vježbanje. + + UPOZORENJE: + Naredbe u ovom priruèniku æe promijeniti ovaj tekst. + Napravite kopiju ove datoteke kako bi ste na istoj vježbali + (ako ste pokrenuli "vimtutor" ovo je veæ kopija). + + Vrlo je važno primijetiti da je ovaj priruènik namijenjen za vježbanje. + Preciznije, morate izvršiti naredbe u Vim-u kako bi ste iste nauèili + pravilno koristiti. Ako samo èitate tekst, zaboraviti æe te naredbe! + + Ako je CapsLock ukljuèen ISKLJUÈITE ga. Pritiskajte tipku j kako + bi pomakli kursor sve dok Lekcija 1.1 ne ispuni ekran. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.1: POMICANJE KURSORA + + + ** Za pomicanje kursora, pritisnite h,j,k,l tipke kako je prikazano ** + ^ + k Savjet: h tipka je lijevo i pomièe kursor lijevo. + < h l > l tipka je desno i pomièe kursor desno. + j j izgleda kao strelica usmjerena dolje. + v + 1. Pomièite kursor po ekranu dok se ne naviknete na korištenje. + + 2. Držite tipku (j) pritisnutom. + Sada znate kako doæi do sljedeæe lekcije. + + 3. Koristeæi tipku j prijeðite na sljedeæu lekciju 1.2. + +NAPOMENA: Ako niste sigurni što ste zapravo pritisnuli uvijek koristite + tipku <ESC> kako bi prešli u Normal mod i onda pokušajte ponovno. + +NAPOMENA: Kursorske tipke rade isto. Korištenje hjkl tipaka je znatno + brže, nakon što se jednom naviknete na njihovo korištenje. Stvarno! + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.2: IZLAZ IZ VIM-a + + + !! UPOZORENJE: Prije izvoðenja bilo kojeg koraka, + proèitajte cijelu lekciju!! + + 1. Pritisnite <ESC> tipku (Vim je sada u Normal modu). + + 2. Otipkajte: :q! <ENTER>. + Izlaz iz editora, GUBE se sve napravljene promjene. + + 3. Kada se pojavi ljuska, utipkajte naredbu koja je pokrenula + ovaj priruènik: vimtutor <ENTER> + + 4. Ako ste upamtili ove korake, izvršite ih redom od 1 do 3 + kako bi ponovno pokrenuli editor. + +NAPOMENA: :q! <ENTER> poništava sve promjene koje ste napravili. + U sljedeæim lekcijama nauèit æe te kako promjene saèuvati. + + 5. Pomaknite kursor na Lekciju 1.3. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.3: PROMJENA TEKSTA - BRISANJE + + + ** Pritisnite x za brisanje znaka pod kursorom. ** + + 1. Pomaknite kursor na liniju oznaèenu s --->. + + 2. Kako bi ste ispravili pogreške, pomièite kursor dok se + ne bude nalazio na slovu kojeg trebate izbrisati. + + 3. Pritisnite tipku x kako bi uklonili neželjeno slovo. + + 4. Ponovite korake od 2 do 4 dok ne ispravite sve pogreške. + +---> KKKravaa jee presskoèila mmjeseccc. + + 5. Nakon što ispravite liniju, prijeðite na lekciju 1.4. + +NAPOMENA: Koristeæi ovaj priruènik ne pokušavajte pamtiti + veæ uèite primjenom. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.4: PROMJENA TEKSTA - UBACIVANJE + + + ** Pritisnite i za ubacivanje teksta ispred kursora. ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + + 2. Kako bi napravili prvu liniju istovjetnoj drugoj, pomaknite + kursor na prvi znak POSLIJE kojeg æe te utipkati potreban tekst. + + 3. Pritisnite i te utipkajte potrebne nadopune. + + 4. Nakon što ispravite pogrešku pritisnite <ESC> kako bi vratili Vim + u Normal mod. Ponovite korake od 2 do 4 kako bi ispravili sve pogreške. + +---> Nedje no teka od v lin. +---> Nedostaje nešto teksta od ove linije. + + 5. Prijeðite na sljedeæu lekciju. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.5: PROMJENA TEKSTA - DODAVANJE + + + ** Pritisnite A za dodavanje teksta. ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + Nije važno na kojem se slovu nalazi kursor na toj liniji. + + 2. Pritisnite A i napravite potrebne promjene. + + 3. Nakon što ste dodali tekst, pritisnite <ESC> + za povratak u Normal mod. + + 4. Pomaknite kursor na drugu liniju oznaèenu s ---> + i ponovite korake 2 i 3 dok ne popravite tekst. + +---> Ima nešto teksta koji nedostaje n + Ima nešto teksta koji nedostaje na ovoj liniji. +---> Ima nešto teksta koji ne + Ima nešto teksta koji nedostaje baš ovdje. + + 5. Prijeðite na lekciju 1.6. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1.6: PROMJENA DATOTEKE + + + ** Koristite :wq za spremanje teksta i napuštanje Vim-a. ** + + !! UPOZORENJE: Prije izvršavanja bilo kojeg koraka, proèitajte lekciju!! + + 1. Izaðite iz programa kao sto ste napravili u lekciji 1.2: :q! + + 2. Iz ljuske utipkajte sljedeæu naredbu: vim tutor <ENTER> + 'vim' je naredba pokretanja Vim editora, 'tutor' je ime datoteke koju + želite ureðivati. Koristite datoteku koju imate ovlasti mijenjati. + + 3. Ubacite i izbrišite tekst kao što ste to napravili u lekcijama prije. + + 4. Saèuvajte promjenjeni tekst i izaðite iz Vim-a: :wq <ENTER> + + 5. Ponovno pokrenite vimtutor i nastavite èitati sažetak koji sljedi. + + 6. Nakon sto proèitate gornje korake i u potpunosti ih razumijete: + izvršite ih. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 1 SAŽETAK + + + 1. Kursor se pomièe strelicama ili pomoæu hjkl tipaka. + h (lijevo) j (dolje) k (gore) l (desno) + + 2. Pokretanje Vim-a iz ljuske: vim IME_DATOTEKE <ENTER> + + 3. Izlaz: <ESC> :q! <ENTER> sve promjene su izgubljene. + ILI: <ESC> :wq <ENTER> promjene su saèuvane. + + 4. Brisanje znaka na kojem se nalazi kursor: x + + 5. Ubacivanja ili dodavanje teksta: + i utipkajte tekst <ESC> unos ispred kursora + A utipkajte tekst <ESC> dodavanje na kraju linije + +NAPOMENA: Tipkanjem tipke <ESC> prebacuje Vim u Normal mod i + prekida neželjenu ili djelomièno završenu naredbu. + +Nastavite èitati Lekciju 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.1: NAREDBE BRISANJA + + + ** Tipkajte dw za brisanje rijeèi. ** + + 1. Pritisnite <ESC> kako bi bili sigurni da je Vim u Normal modu. + + 2. Pomaknite kursor na liniju oznaèenu s --->. + + 3. Pomaknite kursor na poèetak rijeèi koju treba izbrisati. + + 4. Otipkajte dw kako bi uklonili rijeè. + +NAPOMENA: Vim æe prikazati slovo d na zadnjoj liniji kad ga otipkate. + Vim èeka da otipkate w . Ako je prikazano neko drugo slovo, + krivo ste otipkali; pritisnite <ESC> i pokušajte ponovno. + +---> Neke rijeèi smiješno ne pripadaju na papir ovoj reèenici. + + 5. Ponovite korake 3 i 4 dok ne ispravite reèenicu; + prijeðite na Lekciju 2.2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.2: JOŠ BRISANJA + + + ** Otipkajte d$ za brisanje znakova do kraja linije. ** + + 1. Pritisnite <ESC> kako bi bili + sigurni da je Vim u Normal modu. + + 2. Pomaknite kursor na liniju oznaèenu s --->. + + 3. Pomaknite kursor do kraja ispravne reèenice + (POSLJE prve . ). + + 4. Otipkajte d$ + kako bi izbrisali sve znakove do kraja linije. + +---> Netko je utipkao kraj ove linije dvaput. kraj ove linije dvaput. + + 5. Prijeðite na Lekciju 2.3 za bolje objašnjenje. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.3: UKRATKO O OPERATORIMA I POKRETIMA + + + Mnogo naredbi koje mijenjaju tekst se sastoje od operatora i pokreta. + Oblik naredbe brisanja sa d operatorom je sljedeæi: + + d pokret + + Pri èemu je: + d - operator brisanja. + pokret - ono na èemu æe se operacija izvršavati (navedeno u nastavku). + + Kratka lista pokreta: + w - sve do poèetka sljedeæe rijeèi, NE UKLJUÈUJUÆI prvo slovo. + e - sve do kraja trenutaène rijeèi, UKLJUÈUJUÆI zadnje slovo. + $ - sve do kraje linije, UKLJUÈUJUÆI zadnje slovo. + + Tipkanjem de æe se brisati od kursora do kraja rijeèi. + +NAPOMENA: Pritiskajuæi samo pokrete dok ste u Normal modu bez operatora æe + pomicati kursor kao što je navedeno. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.4: KORIŠTENJE BROJANJA ZA POKRETE + + + ** Tipkanjem nekog broja prije pokreta, pokret se izvršava toliko puta. ** + + 1. Pomaknite kursor na liniju oznaèenu s --->. + + 2. Otipkajte 2w da pomaknete kursor dvije rijeèi naprijed. + + 3. Otipkajte 3e da pomaknete kursor na kraj treæe rijeèi naprijed. + + 4. Otipkajte 0 (nulu) da pomaknete kursor na poèetak linije. + + 5. Ponovite korake 2 i 3 s nekim drugim brojevima. + +---> Reèenica sa rijeèima po kojoj možete pomicati kursor. + + 6. Prijeðite na Lekciju 2.5. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.5: KORIŠTENJE BROJANJA ZA VEÆE BRISANJE + + + ** Tipkanje broja N s operatorom ponavlja ga N-puta. ** + + U kombinaciji operatora brisanja i pokreta spomenutih iznad + ubacujete broj prije pokreta kako bi izbrisali više znakova: + + d broj pokret + + 1. Pomaknite kursor na prvo slovo u rijeèi sa VELIKIM SLOVIMA + oznaèenu s --->. + + 2. Otipkajte 2dw da izbrišete dvije rijeèi sa VELIKIM SLOVIMA + + 3. Ponovite korake 1 i 2 sa razlièitim brojevima da izbrišete + uzastopne rijeèi sa VELIKIM SLOVIMA sa samo jednom naredbom. + +---> ova ABCÈÆ DÐE linija FGHI JK LMN OP rijeèi je RSŠ TUVZŽ popravljena. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.6: OPERIRANJE NAD LINIJAMA + + + ** Otipkajte dd za brisanje cijele linije. ** + + Zbog uèestalosti brisanja cijelih linija, dizajneri Vi-a su odluèili da + je lakše brisati linije tipkanjem d dvaput. + + 1. Pomaknite kursor na drugu liniju u donjoj kitici. + 2. Otipkajte dd kako bi izbrisali liniju. + 3. Pomaknite kursor na èetvrtu liniju. + 4. Otipkajte 2dd kako bi izbrisali dvije linije. + +---> 1) Ruže su crvene, +---> 2) Plaža je super, +---> 3) Ljubice su plave, +---> 4) Imam auto, +---> 5) Satovi ukazuju vrijeme, +---> 6) Šeæer je sladak +---> 7) Kao i ti. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2.7: NAREDBA PONIŠTENJA + + + ** Pritisnite u za poništenje zadnje naredbe, U za cijelu liniju. ** + + 1. Pomaknite kursor na liniju oznaèenu s ---> i postavite kursor na prvu + pogrešku. + 2. Otipkajte x kako bi izbrisali prvi neželjeni znak. + 3. Otipkajte u kako bi poništili zadnju izvršenu naredbu. + 4. Ovaj put ispravite sve pogreške na liniji koristeæi x naredbu. + 5. Sada utipkajte veliko U kako bi poništili sve promjene + na liniji, vraæajuæi je u prijašnje stanje. + 6. Sada utipkajte u nekoliko puta kako bi poništili U + i prijašnje naredbe. + 7. Sada utipkajte CTRL-R (držeæi CTRL tipku pritisnutom dok + ne pritisnete R) nekoliko puta kako bi vratili promjene + (poništili poništenja). + +---> Poopravite pogreške nna ovvoj liniji ii pooništiteee ih. + + 8. Vrlo korisne naredbe. Prijeðite na sažetak Lekcije 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 2 SAŽETAK + + + 1. Brisanje od kursora do sljedeæe rijeèi: dw + 2. Brisanje od kursora do kraja linije: d$ + 3. Brisanje cijele linije: dd + + 4. Za ponavljanje pokreta prethodite mu broj: 2w + 5. Oblik naredbe mijenjanja: + operator [broj] pokret + gdje je: + operator - što napraviti, npr. d za brisanje + [broj] - neobavezan broj ponavljanja pokreta + pokret - kretanje po tekstu po kojem se operira, + kao što je: w (rijeè), $ (kraj linije), itd. + + 6. Postavljanje kursora na poèetak linije: 0 + + 7. Za poništenje prethodnih promjena, pritisnite: u (malo u) + Za poništenje svih promjena na liniji, pritisnite: U (veliko U) + Za vraæanja promjena, utipkajte: CTRL-R + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 3.1: NAREDBA POSTAVI + + + ** p za unos prethodno izbrisanog teksta iza kursora. ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + + 2. Otipkajte dd kako bi izbrisali liniju i spremili je u Vim registar. + + 3. Pomaknite kursor na liniju c), IZNAD linije koju trebate unijeti. + + 4. Otipkajte p kako bi postavili liniju ispod kursora. + + 5. Ponovite korake 2 do 4 kako bi postavili sve linije u pravilnom + rasporedu. + +---> d) Možeš li i ti nauèiti? +---> b) Ljubice su plave, +---> c) Inteligencija je nauèena, +---> a) Ruže su crvene, + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 3.2: NAREDBA PROMJENE + + + ** Otipkajte rx za zamjenu slova ispod kursora sa slovom x . ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + + 2. Pomaknite kursor tako da se nalazi na prvoj pogrešci. + + 3. Otipkajte r i nakon toga ispravan znak na tom mjestu. + + 4. Ponovite korake 2 i 3 sve dok prva + linije ne bude istovjetna drugoj. + +---> Kede ju ovu limija tupjana, natko je protuskao kruve tupke! +---> Kada je ova linija tipkana, netko je pritiskao krive tipke! + + 5. Prijeðite na Lekciju 3.2. + +NAPOMENA: Prisjetite da trebate uèiti vježbanjem, ne pamæenjem. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 3.3: OPERATOR MIJENJANJA + + + ** Za mijenjanje do kraja rijeèi, istipkajte ce . ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + + 2. Postavite kursor na a u lackmb. + + 3. Otipkajte ce i ispravite rijeè (u ovom sluèaju otipkajte inija ). + + 4. Pritisnite <ESC> i pomaknite kursor na sljedeæi znak + kojeg je potrebno ispraviti. + + 5. Ponovite korake 3 i 4 sve dok prva reèenica ne postane istovjetna + drugoj. + +---> Ova lackmb ima nekoliko rjlcah koje trfcb mijdmlfsz. +---> Ova linija ima nekoliko rijeèi koje treba mijenjati. + +Primijetite da ce briše rijeè i postavlja Vim u Insert mod. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 3.4: JOŠ MIJENJANJA KORIŠTENJEM c + + + ** Naredba mijenjanja se koristi sa istim pokretima kao i brisanje. ** + + 1. Operator mijenjanja se koristi na isti naèin kao i operator brisanja: + + c [broj] pokret + + 2. Pokreti su isti, npr: w (rijeè) i $ (kraj linije). + + 3. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + + 4. Pomaknite kursor na prvu pogrešku. + + 5. Otipkajte c$ i utipkajte ostatak linije tako da bude istovjetna + drugoj te pritisnite <ESC>. + +---> Kraj ove linije treba pomoæ tako da izgleda kao linija ispod. +---> Kraj ove linije treba ispraviti korištenjem c$ naredbe. + +NAPOMENA: Možete koristiti Backspace za ispravljanje grešaka. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 3 SAŽETAK + + + 1. Za postavljanje teksta koji je upravo izbrisan, pritisnite p . Ovo + postavlja tekst IZA kursora (ako je pak linija izbrisana tekst se + postavlja na liniju ispod kursora). + + 2. Za promjenu znaka na kojem se nalazi kursor, pritisnite r i nakon toga + željeni znak. + + 3. Operator mijenjanja dozvoljava promjenu teksta od kursora do pozicije do + koje dovede pokret. tj. Otipkajte ce za mijenjanje od kursora do kraja + rijeèi, c$ za mijenjanje od kursora do kraja linije. + + 4. Oblik naredbe mijenjanja: + + c [broj] pokret + +Prijeðite na sljedeæu lekciju. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 4.1: POZICIJA KURSORA I STATUS DATOTEKE + + ** CTRL-G za prikaz pozicije kursora u datoteci i status datoteke. + Pritisnite G za pomicanje kursora na neku liniju u datoteci. ** + +NAPOMENA: Proèitajte cijelu lekciju prije izvršenja bilo kojeg koraka!! + + 1. Držite Ctrl tipku pritisnutom i pritisnite g . Ukratko: CTRL-G. + Vim æe ispisati poruku na dnu ekrana sa imenom datoteke i pozicijom + kursora u datoteci. Zapamtite broj linije za 3. korak. + +NAPOMENA: Možete vidjeti poziciju kursora u donjem desnom kutu ako + je postavka 'ruler' aktivirana (objašnjeno u 6. lekciji). + + 2. Pritisnite G za pomicanje kursora na kraj datoteke. + Otipkajte gg za pomicanje kursora na poèetak datoteke. + + 3. Otipkajte broj linije na kojoj ste bili maloprije i zatim G . Kursor + æe se vratiti na liniju na kojoj se nalazio kada ste otipkali CTRL-G. + + 4. Ako ste spremni, izvršite korake od 1 do 3. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 4.2: NAREDBE TRAŽENJA + + ** Otipkajte / i nakon toga izraz kojeg želite tražiti. ** + + 1. U Normal modu otipkajte / znak. Primijetite da se znak + pojavio zajedno sa kursorom na dnu ekrana kao kod : naredbe. + + 2. Sada otipkajte 'grrrreška' <ENTER>. To je rijeè koju zapravo tražite. + + 3. Za ponovno traženje istog izraza, otipkajte n . + Za traženje istog izraza ali u suprotnom smjeru, otipkajte N . + + 4. Za traženje izraza unatrag, koristite ? umjesto / . + + 5. Za povratak na prethodnu poziciju koristite CTRL-O (držite Ctrl + pritisnutim dok ne pritisnete tipku o). Ponavljajte sve dok se ne + vratite na poèetak. CTRL-I slièno kao CTRL-O ali u suprotnom smjeru. + +---> "pogrrrreška" je pogrešno; umjesto pogrrrreška treba stajati pogreška. + +NAPOMENA: Ako se traženjem doðe do kraja datoteke nastavit æe se od njenog + poèetka osim ako je postavka 'wrapscan' deaktivirana. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 4.3: TRAŽENJE PRIPADAJUÆE ZAGRADE + + + ** Otipkajte % za pronalazak pripadajuæe ), ] ili } . ** + + 1. Postavite kursor na bilo koju od ( , [ ili { + otvorenih zagrada u liniji oznaèenoj s --->. + + 2. Otipkajte znak % . + + 3. Kursor æe se pomaknuti na pripadajuæu zatvorenu zagradu. + + 4. Otipkajte % kako bi pomakli kursor na drugu pripadajuæu zagradu. + + 5. Pomaknite kursor na neku od (,),[,],{ ili } i ponovite % naredbu. + +---> Linija ( testiranja obiènih ( [ uglatih ] i { vitièastih } zagrada.)) + + +NAPOMENA: Vrlo korisno u ispravljanju koda sa nepripadajuæim zagradama! + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 4.4: NAREDBE ZAMIJENE + + + ** Otipkajte :s/staro/novo/g da zamijenite 'staro' za 'novo'. ** + + 1. Pomaknite kursor na liniju oznaèenu s --->. + + 2. Otipkajte :s/cvræè/cvrè <ENTER> . Primjetite da ova naredba zamjenjuje + samo prvi "cvræè" u liniji. + + 3. Otipkajte :s/cvræè/cvrè/g . Dodavanje g stavke znaèi da æe se naredba + izvršiti na cijeloj liniji, zamjenjivanjem svih "cvræè" u liniji. + +---> i cvræèi cvræèi cvræèak na èvoru crne smrèe. + + 4. Za zamjenu svih izraza u rasponu dviju linija, + otipkajte :#,#s/staro/novo/g #,# su brojevi linije datoteke na kojima + te izmeðu njih æe se izvršiti zamjena. + Otipkajte :%s/staro/novo/g za zamjenu svih izraza u cijeloj datoteci. + Otipkajte :%s/staro/novo/gc za pronalazak svakog izraza u datoteci i + potvrdu zamjene. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 4 SAŽETAK + + + 1. CTRL-G prikazuje poziciju kursora u datoteci i status datoteke. + G postavlja kursor na zadnju liniju datoteke. + broj G postavlja kursor na broj liniju. + gg postavlja kursor na prvu liniju. + + 2. Tipkanje / sa izrazom traži UNAPRIJED taj izraz. + Tipkanje ? sa izrazom traži UNATRAG taj izraz. + Nakon naredbe traženja koristite n za pronalazak izraza u istom + smjeru, i N za pronalazak istog izraza ali u suprotnom smjeru. + CTRL-O vraæa kursor na prethodnu poziciju, CTRL-I na sljedeæu poziciju. + + 3. Tipkanje % dok je kursor na zagradi pomièe ga na pripadajuæu zagradu. + + 4. Za zamjenu prvog izraza staro za izraz novo :s/staro/novo + Za zamjenu svih izraza staro na cijeloj liniji :s/staro/novo/g + Za zamjenu svih izraza staro u rasponu linija #,# :#,#s/staro/novo/g + Za zamjenu u cijeloj datoteci :%s/staro/novo/g + Za potvrdu svake zamjene dodajte 'c' :%s/staro/novo/gc + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 5.1: IZVRŠAVANJE VANJSKIH NAREDBI + + + ** Otipkajte :! sa vanjskom naredbom koju želite izvršiti. ** + + 1. Otipkajte poznatu naredbu : kako bi kursor premjestili na dno + ekrana. Time omoguæavate unos naredbe u naredbenoj liniji. + + 2. Otipkajte znak ! (uskliènik). Tako omoguæavate + izvršavanje naredbe vanjske ljuske. + + 3. Kao primjer otipkajte ls nakon ! te pritisnite <ENTER>. + Ovo æe prikazati sadržaj direktorija, kao da ste u ljusci. + Koristite :!dir ako :!ls ne radi. + +NAPOMENA: Moguæe je izvršavati bilo koju vanjsku naredbu na ovaj naèin, + zajedno sa njenim argumentima. + +NAPOMENA: Sve : naredbe se izvršavaju nakon što pritisnete <ENTER> + U daljnjem tekstu to neæe uvijek biti napomenuto. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 5.2: VIŠE O SPREMANJU DATOTEKA + + ** Za spremanje promjena, otipkajte :w IME_DATOTEKE. ** + + 1. Otipkajte :!dir ili :!ls za pregled direktorija. + Veæ znate da morate pritisnuti <ENTER> na kraju tipkanja. + + 2. Izaberite ime datoteke koja još ne postoji, npr. TEST. + + 3. Otipkajte: :w TEST (gdje je TEST ime koje ste prethodno odabrali.) + + 4. Time æe te spremiti cijelu datoteku (Vim Tutor) pod imenom TEST. + Za provjeru, otipkajte ponovno :!dir ili :!ls + za pregled direktorija. + +NAPOMENA: Ako bi napustili Vim i ponovno ga pokrenuli sa vim TEST , + datoteka bi bila potpuna kopija ove datoteke u trenutku + kada ste je spremili. + + 5. Izbrišite datoteku tako da otipkate (MS-DOS): :!del TEST + ili (Unix): :!rm TEST + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 5.3: SPREMANJE OZNAÈENOG TEKSTA + + + ** Kako bi spremili dio datoteke, otipkajte v pokret :w IME_DATOTEKE ** + + 1. Pomaknite kursor na ovu liniju. + + 2. Pritisnite v i pomaknite kursor pet linija ispod ove. + Primijetite promjenu, oznaèeni tekst se razlikuje od obiènog. + + 3. Pritisnite : znak. Na dnu ekrana pojavit æe se :'<,'> . + + 4. Otipkajte w TEST , pritom je TEST ime datoteke koja još ne postoji. + Provjerite da zaista piše :'<,'>w TEST + prije nego što pritisnite <ENTER>. + + 5. Vim æe spremiti oznaèeni tekst u TEST. Provjerite sa :!dir ili !ls . + Nemojte je još brisati! Koristiti æe te je u sljedeæoj lekciji. + +NAPOMENA: Tipka v zapoèinje Vizualno oznaèavanje. Možete pomicati kursor + unaokolo kako bi mijenjali velièinu oznaèenog teksta. Možete + koristiti i operatore. Npr, d æe izbrisati oznaèeni tekst. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 5.4: UÈITAVANJE DATOTEKA + + + ** Za ubacivanje sadržaja datoteke, otipkajte :r IME_DATOTEKE ** + + 1. Postavite kursor iznad ove linije. + +NAPOMENA: Nakon što izvršite 2. korak vidjeti æe te tekst iz Lekcije 5.3. + Stoga pomaknite kursor DOLJE kako bi ponovno vidjeli ovu lekciju. + + 2. Uèitajte vašu TEST datoteku koristeæi naredbu :r TEST + gdje je TEST ime datoteke koju ste koristili u prethodnoj lekciji. + Sadržaj uèitane datoteke je ubaèen liniju ispod kursora. + + 3. Kako bi provjerili da je datoteka uèitana, vratite kursor unatrag i + primijetite dvije kopije Lekcije 5.3, originalnu i onu iz datoteke. + +NAPOMENA: Možete takoðer uèitati ispis vanjske naredbe. Npr, :r !ls + æe uèitati ispis ls naredbe i postaviti ispis liniju ispod + kursora. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 5 SAŽETAK + + + 1. :!naredba izvršava vanjsku naredbu. + + Korisni primjeri: + (MS-DOS) (Unix) + :!dir :!ls - pregled direktorija. + :!del DATOTEKA :!rm DATOTEKA - briše datoteku DATOTEKA. + + 2. :w DATOTEKA zapisuje trenutaènu datoteku na disk sa imenom DATOTEKA. + + 3. v pokret :w IME_DATOTEKE sprema vizualno oznaèene linije u + datoteku IME_DATOTEKE. + + 4. :r IME_DATOTEKE uèitava datoteku IME_DATOTEKE sa diska i stavlja + njen sadržaj liniju ispod kursora. + + 5. :r !dir uèitava ispis naredbe dir i postavlja sadržaj ispisa liniju + ispod kursora. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6.1: NAREDBA OTVORI + + + ** Pritisnite o kako bi otvorili liniju ispod kursora + i prešli u Insert mod. ** + + 1. Pomaknite kursor na sljedeæu liniju oznaèenu s --->. + + 2. Otipkajte malo o kako bi otvorili novu liniju ISPOD kursora + i prešli u Insert mod. + + 3. Otipkajte nešto teksta i nakon toga pritisnite <ESC> + kako bi napustili Insert mod. + +---> Nakon što pritisnete o kursor æe preæi u novu liniju u Insert mod. + + 4. Za otvaranje linije IZNAD kursora, otipkajte umjesto malog o veliko O , + Pokušajte na donjoj liniji oznaèenoj s --->. + +---> Otvorite liniju iznad ove - otipkajte O dok je kursor na ovoj liniji. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6.2: NAREDBA DODAJ + + + ** Otipkajte a za dodavanje teksta IZA kursora. ** + + 1. Pomaknite kursor na poèetak sljedeæe linije oznaèene s --->. + + 2. Tipkajte e dok se kursor ne nalazi na kraju li . + + 3. Otipkajte a (malo) kako bi dodali tekst IZA kursora. + + 4. Dopunite rijeè kao što je na liniji ispod. + Pritisnite <ESC> za izlaz iz Insert moda. + + 5. Sa e prijeðite na sljedeæu nepotpunu rijeè i ponovite korake 3 i 4. + +---> Ova li omoguæava vje dodav teksta nekoj liniji. +---> Ova linija omoguæava vježbanje dodavanja teksta nekoj liniji. + +NAPOMENA: Sa i, a, i A prelazite u isti Insert mod, jedina + razlika je u poziciji od koje æe se tekst ubacivati. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6.3: DRUGI NAÈIN MIJENJANJA + + + ** Otipkajte veliko R kako bi zamijelili više od jednog znaka. ** + + 1. Pomaknite kursor na prvu sljedeæu liniju oznaèenu s --->. + Pomaknite kursor na poèetak prvog xxx . + + 2. Pritisnite R i otipkajte broj koji je liniju ispod, + tako da zamijeni xxx . + + 3. Pritisnite <ESC> za izlaz iz Replace moda. + Primijetite da je ostatak linije ostao nepromjenjen. + + 5. Ponovite korake kako bi zamijenili preostali xxx. + +---> Zbrajanje: 123 plus xxx je xxx. +---> Zbrajanje: 123 plus 456 je 579. + +NAPOMENA: Replace mod je kao Insert mod, ali sa bitnom razlikom, + svaki otipkani znak briše veæ postojeæi. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6.4: KOPIRANJE I LIJEPLJENJE TEKSTA + + + ** Koristite y operator za kopiranje a p za lijepljenje teksta. ** + + 1. Pomaknite kursor na liniju s ---> i postavite kursor nakon "a)". + + 2. Pokrenite Visual mod sa v i pomaknite kursor sve do ispred "prva". + + 3. Pritisnite y kako bi kopirali oznaèeni tekst. + + 4. Pomaknite kursor do kraja sljedeæe linije: j$ + + 5. Pritisnite p kako bi zalijepili tekst. Onda utipkajte: druga <ESC> . + + 6. Koristite Visual mod kako bi oznaèili " linija.", kopirajte: y , kursor + postavite na kraj sljedeæe linije: j$ i ondje zalijepite tekst: p . + +---> a) ovo je prva linija. + b) + +NAPOMENA: možete koristiti y kao operator; yw kopira jednu rijeè. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6.5: MIJENJANJE POSTAVKI + + + ** Postavka: naredbe traženja i zamijene ne razlikuju VELIKA i mala slova ** + + 1. Potražite 'razlika' tipkanjem: /razlika <ENTER> + Nekoliko puta ponovite pritiskanjem n . + + 2. Aktivirajte 'ic' (Ignore case) postavku: :set ic + + 3. Ponovno potražite 'razlika' tipkanjem n + Primijetite da su sada i RAZLIKA i Razlika pronaðeni. + + 4. Aktivirajte 'hlsearch' i 'incsearch' postavke: :set hls is + + 5. Otipkajte naredbu traženja i primijetite razlike: /razlika <ENTER> + + 6. Za deaktiviranje ic postavke koristite: :set noic + +NAPOMENA: Za neoznaèavanje pronaðenih izraza otipkajte: :nohlsearch +NAPOMENA: Bez razlikovanja velikih i malih slova u samo jednoj naredbi + koristite \c u izrazu: /razlika\c <ENTER> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 6 SAŽETAK + + 1. Pritisnite o za otvaranje linije ISPOD kursora i prelazak u Insert mod. + Pritisnite O za otvaranje linije IZNAD kursora. + + 2. Pritisnite a za unos teksta IZA kursora. + Pritisnite A za unos teksta na kraju linije. + + 3. Naredba e pomièe kursor na kraj rijeèi. + + 4. Operator y kopira tekst, p ga lijepi. + + 5. Tipkanjem velikog R Vim prelazi u Replace mod dok ne pritisnete <ESC> . + + 6. Tipkanjem ":set xxx" aktivira postavku "xxx". Neke postavke su: + 'ic' 'ignorecase' ne razlikuje velika/mala slova pri traženju + 'is' 'incsearch' traži nedovršene izraze + 'hls' 'hlsearch' oznaèi sve pronaðene izraze + Možete koristite dugo ili kratko ime postavke. + + 7. Prethodite "no" imenu postavke za deaktiviranje iste: :set noic + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 7.1: DOBIVANJE POMOÆI + + + ** Koristite on-line sustav pomoæi ** + + Vim ima detaljan on-line sustav pomoæi. + Za poèetak, pokušajte jedno od sljedeæeg: + - pritisnite <HELP> tipku (ako je vaša tipkovnica ima) + - pritisnite <F1> tipku (ako je vaša tipkovnica ima) + - utipkajte :help <ENTER> + + Proèitajte tekst u prozoru pomoæi kako bi ste se znali služiti istom. + Tipkanjem CTRL-W CTRL-W prelazite iz jednog prozora u drugi. + Otipkajte :q <ENTER> kako bi zatvorili prozor pomoæi. + + Pronaæi æe te pomoæ o bilo kojoj temi, tako da dodate upit samoj + ":help" naredbi. Pokušajte (ne zaboravite pritisnuti <ENTER>): + + :help w + :help c_CTRL-D + :help insert-index + :help user-manual +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 7.2: PRAVLJENJE SKRIPTE + + + ** Aktivirajte Vim moguænosti ** + + Vim ima mnogo više alata od Vi-ja, ali veæina njih nije aktivirana. + Kako bi mogli koristiti više moguænosti napravite "vimrc" datoteku. + + 1. Uredite "vimrc" datoteku. Ovo ovisi o vašem sistemu: + :e ~/.vimrc za Unix + :e $VIM/_vimrc za MS-Windows + + 2. Sada uèitajte primjer sadržaja "vimrc" datoteke: + :r $VIMRUNTIME/vimrc_example.vim + + 3. Saèuvajte datoteku sa: + :w + + Sljedeæeg puta kada pokrenete Vim, bojanje sintakse teksta biti æe + aktivirano. Sve vaše postavke možete dodati u "vimrc" datoteku. + Za više informacija otipkajte :help vimrc-intro + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 7.3: AUTOMATSKO DOVRŠAVANJE + + + ** Dovršavanje iz naredbene linije pomoæu CTRL-D i <TAB> ** + + 1. Provjerite da Vim nije u Vi modu: :set nocp + + 2. Pogledajte koje datoteke postoje u direktoriju: :!ls or :!dir + + 3. Otipkajte poèetak naredbe: :e + + 4. Tipkajte CTRL-D i prikazati æe se lista naredbi koje zapoèinju sa "e". + + 5. Pritisnite <TAB> i Vim æe dopuniti unos u naredbu ":edit". + + 6. Dodajte razmak i poèetak datoteke: :edit FIL + + 7. Pritisnite <TAB>. Vim æe nadopuniti ime datoteke (ako je jedinstveno). + +NAPOMENA: Moguæe je dopuniti mnoge naredbe. Koristite CTRL-D i <TAB>. + Naroèito je korisno za :help naredbe. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lekcija 7 SAŽETAK + + + 1. Otipkajte :help ili pritisnite <F1> ili <Help> za pomoæ. + + 2. Otipkajte :help naredba kako bi dobili pomoæ za naredba . + + 3. Otipkajte CTRL-W CTRL-W za prelazak u drugi prozor + + 4. Otipkajte :q kako bi zatvorili prozor pomoæi + + 5. Napravite vimrc skriptu za podizanje kako bi u nju spremali + vaše omiljene postavke. + + 6. Kada tipkate naredbu koja zapoèinje sa : + pritisnite CTRL-D kako bi vidjeli moguæe valjane vrijednosti. + Pritisnite <TAB> kako bi odabrali jednu od njih. + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Kraj. Cilj priruènika je da pokaže kratak pregled Vim editora, tek toliko + da omoguæi njegovo korištenje. Priruènik nije potpun jer Vim ima mnogo više + naredbi. Za više informacija: ":help user-manual". + + Za èitanje i korištenje, preporuèamo: + Vim - Vi Improved - by Steve Oualline + Izdavaè: New Riders + Prva knjiga potpuno posveæena Vim-u. Vrlo korisna za poèetnike. + Sa mnogo primjera i slika. + Posjetite http://iccf-holland.org/click5.html + + Sljedeæa knjiga je nešto starija i više o Vi-u nego o Vim-u, preporuèamo: + Learning the Vi Editor - by Linda Lamb + Izdavaè: O'Reilly & Associates Inc. + Solidna knjiga, možete saznati skoro sve što možete napraviti + u Vi-u. Šesto izdanje ima nešto informacija i o Vim-u. + + Ovaj priruènik su napisali: Michael C. Pierce i Robert K. Ware, + Colorado School of Mines koristeæi ideje Charles Smith, + Colorado State University. E-pošta: bware@mines.colorado.edu. + + Naknadne promjene napravio je Bram Moolenaar. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Preveo na hrvatski: Paul B. Mahol <onemda@gmail.com> + Preinaka 1.42, Lipanj 2008 + + diff --git a/runtime/tutor/tutor.it.utf-8 b/runtime/tutor/tutor.it.utf-8 new file mode 100644 index 000000000..051b51bbe --- /dev/null +++ b/runtime/tutor/tutor.it.utf-8 @@ -0,0 +1,967 @@ +=============================================================================== += Benvenuto alla G u i d a all'Editor V I M - Versione 1.7 = +=============================================================================== + + Vim è un Editor molto potente ed ha parecchi comandi, troppi per + spiegarli tutti in una guida come questa. Questa guida serve a + descrivere quei comandi che ti permettono di usare facilmente + Vim come Editor di uso generale. + + Il tempo necessario per completare la guida è circa 25-30 minuti, + a seconda di quanto tempo dedichi alla sperimentazione. + + ATTENZIONE! + I comandi nelle lezioni modificano questo testo. Fai una copia di questo + file per esercitarti (se hai usato "vimtutor", stai già usando una copia). + + E' importante non scordare che questa guida vuole insegnare tramite + l'uso. Questo vuol dire che devi eseguire i comandi per impararli + davvero. Se leggi il testo e basta, dimenticherai presto i comandi! + + Adesso, assicurati che il tasto BLOCCA-MAIUSCOLO non sia schiacciato + e premi il tasto j tanto da muovere il cursore fino a che la + Lezione 1.1 riempia completamente lo schermo. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.1: MOVIMENTI DEL CURSORE + + + ** Per muovere il cursore, premi i tasti h,j,k,l come indicato. ** + ^ + k NOTA: Il tasto h è a sinistra e muove a sinistra. + < h l > Il tasto l è a destra e muove a destra. + j Il tasto j ricorda una freccia in giù. + v + 1. Muovi il cursore sullo schermo finché non ti senti a tuo agio. + + 2. Tieni schiacciato il tasto "giù" (j) finché non si ripete il movimento. + Adesso sai come arrivare fino alla lezione seguente. + + 3. Usando il tasto "giù" spostati alla Lezione 1.2. + +NOTA: Quando non sei sicuro del tasto che hai premuto, premi <ESC> per andare + in Modalità Normale [Normal Mode]. Poi ri-immetti il comando che volevi. + +NOTA: I tasti con le frecce fanno lo stesso servizio. Ma usando hjkl riesci + a muoverti molto più rapidamente, dopo che ci si abitua. Davvero! + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.2: USCIRE DA VIM + + + !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!! + + 1. Premi il tasto <ESC> (per assicurarti di essere in Modalità Normale). + + 2. Batti: :q! <INVIO>. + Così esci dall'Editor SCARTANDO qualsiasi modifica fatta. + + 3. Quando vedi il PROMPT della Shell, batti il comando con cui sei arrivato + qui. Sarebbe: vimtutor <INVIO> + + 4. Se hai memorizzato questi comandi e ti senti pronto, esegui i passi + da 1 a 3 per uscire e rientrare nell'Editor. + +NOTA: :q! <INVIO> SCARTA qualsiasi modifica fatta. In una delle prossime + lezioni imparerai come salvare un file che hai modificato. + + 5. Muovi in giù il cursore per passare alla lezione 1.3. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.3: MODIFICA DI TESTI - CANCELLAZIONE + + + ** Premere x per cancellare il carattere sotto al cursore ** + + 1. Muovi il cursore alla linea più sotto, indicata da --->. + + 2. Per correggere errori, muovi il cursore fino a posizionarlo sopra il + carattere da cancellare. + + 3. Premi il tasto x per cancellare il carattere sbagliato. + + 4. Ripeti i passi da 2 a 4 finché la frase è corretta. + +---> La mmucca saltòò finnoo allaa lunnna. + + 5. Ora che la linea è corretta, vai alla Lezione 1.4 + +NOTA: Mentre segui questa guida, non cercare di imparare a memoria, + ma impara facendo pratica. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.4: MODIFICA DI TESTI - INSERIMENTO + + + ** Premere i per inserire testo. ** + + 1. Muovi il cursore alla prima linea qui sotto, indicata da --->. + + 2. Per rendere la prima linea uguale alla seconda, muovi il cursore sopra + il primo carattere DOPO la posizione in cui il testo va inserito. + + 3. Premi i e batti le aggiunte opportune. + + 4. Quando un errore è corretto, premi <ESC> per tornare in Modalità Normale. + Ripeti i passi da 2 a 4 fino a completare la correzione della frase. + +---> C'era del tsto mncnt questa . +---> C'era del testo mancante da questa linea. + + 5. Quando sei a tuo agio nell'inserimento di testo vai alla lezione 1.5. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.5: MODIFICA DI TESTI - AGGIUNTA + + + ** Premere A per aggiungere testo a fine linea. ** + + 1. Muovi il cursore alla prima linea qui sotto, indicata da --->. + Non importa dove è posizionato il cursore sulla linea stessa. + + 2. Batti A e inserisci le necessarie aggiunte. + + 3. Alla fine della aggiunta premi <ESC> per tornare in modalità Normale. + + 4. Muovi il cursore alla seconda linea indicata ---> e ripeti + i passi 2 e 3 per correggere questa frase. + +---> C'è del testo che manca da qu + C'è del testo che manca da questa linea. +---> C'è anche del testo che ma + C'è anche del testo che manca qui. + + 5. Quando sei a tuo agio nell'aggiunta di testo vai alla lezione 1.6. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1.6: MODIFICARE UN FILE + + + ** Usare :wq per salvare un file e uscire. ** + + !! NOTA: Prima di eseguire quanto richiesto, leggi la Lezione per intero!! + + 1. Esci da Vim come hai fatto nella lezione 1.2: :q! + + 2. Quando vedi il PROMPT della Shell, batti il comando: vim tutor <INVIO> + 'vim' è il comando per richiamare Vim, 'tutor' è il nome del file che + desideri modificare. Usa un file che possa essere modificato. + + 3. Inserisci e cancella testo come hai imparato nelle lezioni precedenti. + + 4. Salva il file ed esci da Vim con: :wq <INVIO> + + 5. Rientra in vimtutor e scendi al sommario che segue. + + 6. Dopo aver letto i passi qui sopra ed averli compresi: eseguili. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 1 SOMMARIO + + + 1. Il cursore si muove usando i tasti con le frecce o i tasti hjkl. + h (sinistra) j (giù) k (su) l (destra) + + 2. Per eseguire Vim dal PROMPT della Shell batti: vim NOMEFILE <INVIO> + + 3. Per uscire da Vim batti: <ESC> :q! <INVIO> per uscire senza salvare. + oppure batti: <ESC> :wq <INVIO> per uscire salvando modifiche. + + 4. Per cancellare il carattere sotto al cursore batti: x + + 5. Per inserire testo subito prima del cursore batti: + i batti testo inserito <ESC> inserisci prima del cursore + A batti testo aggiunto <ESC> aggiungi a fine linea + +NOTA: premendo <ESC> ritornerai in Modalità Normale o annullerai + un comando errato che puoi aver inserito in parte. + +Ora continua con la Lezione 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.1: COMANDI DI CANCELLAZIONE + + + ** Batti dw per cancellare una parola. ** + + 1. Premi <ESC> per accertarti di essere in Modalità Normale. + + 2. Muovi il cursore fino alla linea qui sotto, indicata da --->. + + 3. Muovi il cursore all'inizio di una parola che vuoi cancellare. + + 4. Batti dw per cancellare la parola. + +NOTA: La lettera d sarà visibile sull'ultima linea dello schermo mentre la + batti. Vim attende che tu batta w . Se vedi una lettera diversa + da d hai battuto qualcosa di sbagliato; premi <ESC> e ricomincia. + +---> Ci sono le alcune parole gioia che non c'entrano carta in questa frase. + + 5. Ripeti i passi 3 e 4 finché la frase è corretta, poi vai alla Lezione 2.2. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.2: ALTRI COMANDI DI CANCELLAZIONE + + + ** Batti d$ per cancellare fino a fine linea. ** + + 1. Premi <ESC> per accertarti di essere in Modalità Normale. + + 2. Muovi il cursore fino alla linea qui sotto, indicata da --->. + + 3. Muovi il cursore alla fine della linea corretta (DOPO il primo . ). + + 4. Batti d$ per cancellare fino a fine linea. + +---> Qualcuno ha battuto la fine di questa linea due volte. linea due volte. + + + 5. Vai alla Lezione 2.3 per capire il funzionamento di questo comando. + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.3: OPERATORI E MOVIMENTI + + + Molti comandi di modifica testi consistono in un operatore e un movimento. + Il formato del comando di cancellazione con l'operatore d è il seguente: + + d movimento + + Dove: + d - è l'operatore di cancellazione + movimento - indica dove l'operatore va applicato (lista qui sotto). + + Breve lista di movimenti: + w - fino a inizio della parola seguente, ESCLUSO il suo primo carattere. + e - alla fine della parola corrente, COMPRESO il suo ultimo carattere. + $ - dal cursore fino a fine linea, COMPRESO l'ultimo carattere della linea. + + Quindi se batti de cancelli dal cursore fino a fine parola. + +NOTA: Se batti solo il movimento mentre sei in Modalità Normale, senza + nessun operatore, il cursore si muoverà come specificato. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.4: USO DI UN CONTATORE PER UN MOVIMENTO + + + ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. ** + + 1. Muovi il cursore fino all'inizio della linea qui sotto, indicata da --->. + + 2. Batti 2w per spostare il cursore due parole più avanti. + + 3. Batti 3e per spostare il cursore alla fine della terza parola seguente. + + 4. Batti 0 (zero) per posizionarti all'inizio della linea. + + 5. Ripeti i passi 2 e 3 usando numeri differenti. + +---> Questa è solo una linea con parole all'interno della quale puoi muoverti. + + 6. Vai alla Lezione 2.5. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.5: USO DI UN CONTATORE PER CANCELLARE DI PIU' + + + ** Se batti un numero prima di un movimento, lo ripeti altrettante volte. ** + + Nella combinazione dell'operatore cancella e di un movimento, descritto prima, + inserite un contatore prima del movimento per cancellare di più: + d numero movimento + + 1. Muovi il cursore alla prima parola MAIUSCOLA nella riga indicata da --->. + + 2. Batti d2w per cancellare le due parole MAIUSCOLE + + 3. Ripeti i passi 1 e 2 con un contatore diverso per cancellare la parole + MAIUSCOLE consecutive con un solo comando + +---> questa ABC DE linea FGHI JK LMN OP di parole è Q RS TUV ora ripulita. + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.6: LAVORARE SU LINEE INTERE + + ** Batti dd per cancellare un'intera linea. ** + + Per la frequenza con cui capita di cancellare linee intere, chi ha + disegnato Vi ha deciso che sarebbe stato più semplice battere + due d consecutive per cancellare una linea. + + 1. Muovi il cursore alla linea 2) nella frase qui sotto. + 2. Batti dd per cancellare la linea. + 3. Ora spostati alla linea 4). + 4. Batti 2dd per cancellare due linee. + +---> 1) Le rose sono rosse, +---> 2) Il fango è divertente, +---> 3) Le viole sono blu, +---> 4) Io ho un'automobile, +---> 5) Gli orologi segnano il tempo, +---> 6) Lo zucchero è dolce, +---> 7) E così sei anche tu. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2.7: IL COMANDO UNDO [ANNULLA] + + ** Premi u per annullare gli ultimi comandi eseguiti. ** + ** Premi U per annullare le modifiche all'ultima linea. ** + + 1. Muovi il cursore fino alla linea qui sotto, indicata da --->. + e posizionati sul primo errore. + 2. Batti x per cancellare il primo carattere sbagliato. + 3. Adesso batti u per annullare l'ultimo comando eseguito. + 4. Ora invece, correggi tutti gli errori sulla linea usando il comando x . + 5. Adesso batti una U Maiuscola per riportare la linea al suo stato originale. + 6. Adesso batti u più volte per annullare la U e i comandi precedenti. + 7. Adesso batti più volte CTRL-r (tieni il tasto CTRL schiacciato + mentre batti r) per rieseguire i comandi (annullare l'annullamento). + +---> Correeggi gli errori ssu quuesta linea e riimpiazzali coon "undo". + + 8. Questi comandi sono molto utili. Ora spostati al Sommario della Lezione 2. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 2 SOMMARIO + + + 1. Per cancellare dal cursore fino alla parola seguente batti: dw + 2. Per cancellare dal cursore fino alla fine della linea batti: d$ + 3. Per cancellare un'intera linea batti: dd + 4. Per eseguire più volte un movimento, mettici davanti un numero: 2w + 5. Il formato per un comando di modifica è: + + operatore [numero] movimento + dove: + operatore - indica il da farsi, ad es. d per [delete] cancellare + [numero] - contatore facoltativo di ripetizione del movimento + movimento - spostamento nel testo su cui operare, ad es. + w [word] parola, $ (fino a fine linea), etc. + + 6. Per andare a inizio linea usate uno zero: 0 + 7. Per annullare i comandi precedenti, batti: u (u minuscola) + Per annullare tutte le modifiche a una linea batti: U (U maiuscola) + Per annullare l'annullamento ["redo"] batti: CTRL-r + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 3.1: IL COMANDO PUT [METTI, PONI] + + + ** Batti p per porre [put] testo (cancellato prima) dopo il cursore. ** + + 1. Muovi il cursore alla prima linea indicata con ---> qui in basso. + + 2. Batti dd per cancellare la linea e depositarla in un registro di Vim. + + 3. Muovi il cursore fino alla linea c) SOPRA quella dove andrebbe messa + la linea appena cancellata. + + 4. Batti p per mettere la linea sotto il cursore. + + 5. Ripeti i passi da 2 a 4 per mettere tutte le linee nel giusto ordine. + +---> d) Puoi impararla tu? +---> b) Le viole sono blu, +---> c) La saggezza si impara, +---> a) Le rose sono rosse, + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 3.2: IL COMANDO REPLACE [RIMPIAZZARE] + + + ** Batti rx per rimpiazzare il carattere sotto al cursore con x . ** + + 1. Muovi il cursore alla prima linea qui sotto, indicata da --->. + + 2. Muovi il cursore fino a posizionarlo sopra il primo errore. + + 3. Batti r e poi il carattere che dovrebbe stare qui. + + 4. Ripeti i passi 2 e 3 finché la prima linea è uguale alla seconda. + +---> Ammattendo quetta lince, qualcuno ho predato alcuni tosti sballiati! +---> Immettendo questa linea, qualcuno ha premuto alcuni tasti sbagliati! + + 5. Ora passa alla Lezione 3.2. + +NOTA: Ricordati che dovresti imparare con la pratica, non solo leggendo. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 3.3: L'OPERATORE CHANGE [CAMBIA] + + + ** Per cambiare fino alla fine di una parola, batti ce . ** + + 1. Muovi il cursore alla prima linea qui sotto, indicata da --->. + + 2. Posiziona il cursore alla u in lubw. + + 3. Batti ce e la parola corretta (in questo caso, batti inea ). + + 4. Premi <ESC> e vai sul prossimo carattere da modificare. + + 5. Ripeti i passi 3 e 4 finché la prima frase è uguale alla seconda. + +---> Questa lubw ha alcune pptfd da asdert usgfk l'operatore CHANGE. +---> Questa linea ha alcune parole da cambiare usando l'operatore CHANGE. + +Nota che ce cancella la parola, e ti mette anche in Modalità Inserimento + [Insert Mode] + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 3.4: ALTRI CAMBIAMENTI USANDO c + +** L'operatore c [CHANGE] agisce sugli stessi movimenti di d [DELETE] ** + + 1. L'operatore CHANGE si comporta come DELETE. Il formato è: + + c [numero] movimento + + 2. I movimenti sono gli stessi, + ad es. w (word, parola), $ (fine linea), etc. + + 3. Muovi il cursore alla prima linea qui sotto, indicata da --->. + + 4. Posiziona il cursore al primo errore. + + 5. Batti c$ e inserisci resto della linea utilizzando come modello la + linea seguente, e quando hai finito premi <ESC> + +---> La fine di questa linea deve essere aiutata a divenire come la seguente. +---> La fine di questa linea deve essere corretta usando il comando c$ . + +NOTA: Puoi usare il tasto Backspace se devi correggere errori di battitura. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 3 SOMMARIO + + + 1. Per reinserire del testo appena cancellato, batti p . Questo + inserisce [pone] il testo cancellato DOPO il cursore (se era stata tolta + una linea intera, questa verrà messa nella linea SOTTO il cursore). + + 2. Per rimpiazzare il carattere sotto il cursore, batti r e poi il + carattere che vuoi sostituire. + + 3. L'operatore change ti permette di cambiare dal cursore fino a dove + arriva il movimento. Ad es. Batti ce per cambiare dal cursore + fino alla fine della parola, c$ per cambiare fino a fine linea. + + 4. Il formato di change è: + + c [numero] movimento + +Ora vai alla prossima Lezione. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 4.1: POSIZIONAMENTO E SITUAZIONE FILE + + ** Batti CTRL-G per vedere a che punto sei nel file e la situazione ** + ** del file. Batti G per raggiungere una linea nel file. ** + + NOTA: Leggi l'intera Lezione prima di eseguire un qualsiasi passo!! + + 1. Tieni premuto il tasto CTRL e batti g . Ossia batti CTRL-G. + Un messaggio apparirà in fondo alla pagina con il NOME FILE e la + posizione nel file. Ricordati il numero della linea per il Passo 3. + +NOTA: La posizione del cursore si vede nell'angolo in basso a destra dello + schermo, se è impostata l'opzione 'ruler' (righello, vedi :help ruler). + + 2. Premi G [G Maiuscolo] per posizionarti in fondo al file. + Batti gg per posizionarti in cima al file. + + 3. Batti il numero della linea in cui ti trovavi e poi G . Questo ti + riporterà fino alla linea in cui ti trovavi quando avevi battuto CTRL-g. + + 4. Se ti senti sicuro nel farlo, esegui i passi da 1 a 3. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 4.2: IL COMANDO SEARCH [RICERCA] + + ** Batti / seguito da una frase per ricercare quella frase. ** + + 1. in Modalità Normale batti il carattere / . Nota che la "/" e il cursore + sono visibili in fondo dello schermo come quando si usa il comando : . + + 2. Adesso batti 'errroore' <INVIO>. Questa è la parola che vuoi ricercare. + + 3. Per ricercare ancora la stessa frase, batti soltanto n . + Per ricercare la stessa frase in direzione opposta, batti N . + + 4. Per ricercare una frase nella direzione opposta, usa ? al posto di / . + + 5. Per tornare dove eri prima nel file premi CTRL-O (tieni il tasto CTRL + schiacciato mentre premi la lettera o). Ripeti CTRL-O per andare ancora + indietro. Puoi usare CTRL-I per tornare in avanti. + +NOTA: "errroore" non è il modo giusto di digitare errore; errroore è un errore. +NOTA: Quando la ricerca arriva a fine file, ricomincia dall'inizio del file, + a meno che l'opzione 'wrapscan' sia stata disattivata. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 4.3: RICERCA DI PARENTESI CORRISPONDENTI + + + ** Batti % per trovare una ),], o } corrispondente. ** + + 1. Posiziona il cursore su una (, [, o { nella linea sotto, indicata da --->. + + 2. Adesso batti il carattere % . + + 3. Il cursore si sposterà sulla parentesi corrispondente. + + 4. Batti % per muovere il cursore all'altra parentesi corrispondente. + +---> Questa ( è una linea di test con (, [ ] e { } al suo interno. )) + + +NOTA: Questo è molto utile nel "debug" di un programma con parentesi errate! + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 4.4: L'OPERATORE SOSTITUZIONE (SUBSTITUTE) + + ** Batti :s/vecchio/nuovo/g per sostituire 'nuovo' a 'vecchio'. ** + + 1. Muovi il cursore fino alla linea qui sotto, indicata da --->. + + 2. Batti :s/lla/la <INVIO> . Nota che questo comando cambia solo + LA PRIMA occorrenza di "lla" sulla linea. + + 3. Adesso batti :s/lla/la/g . Aggiungendo la flag g si chiede di + sostituire "globalmente" sulla linea, ossia tutte le occorrenze + di "lla" sulla linea. + +---> lla stagione migliore per lla fioritura è lla primavera. + + 4. Per cambiare ogni ricorrenza di una stringa di caratteri tra due linee, + batti :#,#s/vecchio/nuovo/g dove #,# sono i numeri che delimitano + il gruppo di linee in cui si vuole sostituire. + Batti :%s/vecchio/nuovo/g per cambiare ogni occorrenza nell'intero file. + Batti :%s/vecchio/nuovo/gc per trovare ogni occorrenza nell'intero file + ricevendo per ognuna una richiesta se + effettuare o meno la sostituzione. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 4 SOMMARIO + + +1. CTRL-G visualizza a che punto sei nel file e la situazione del file. + G [G Maiuscolo] ti porta all'ultima linea del file. + numero G ti porta alla linea con quel numero. + gg ti porta alla prima linea del file. + +2. Battendo / seguito da una frase ricerca IN AVANTI quella frase. + Battendo ? seguito da una frase ricerca ALL'INDIETRO quella frase. + DOPO una ricerca batti n per trovare la prossima occorrenza nella + stessa direzione, oppure N per cercare in direzione opposta. + CTRL-O ti porta alla posizione precedente, CTRL-I a quella più nuova. + +3. Battendo % mentre il cursore si trova su (,),[,],{, oppure } + ti posizioni sulla corrispondente parentesi. + +4. Per sostituire "nuovo" al primo "vecchio" in 1 linea batti :s/vecchio/nuovo + Per sostituire "nuovo" ad ogni "vecchio" in 1 linea batti :s/vecchio/nuovo/g + Per sostituire frasi tra 2 numeri di linea [#] batti :#,#s/vecchio/nuovo/g + Per sostituire tutte le occorrenze nel file batti :%s/vecchio/nuovo/g + Per chiedere conferma ogni volta aggiungi 'c' :%s/vecchio/nuovo/gc +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 5.1: COME ESEGUIRE UN COMANDO ESTERNO + + + ** Batti :! seguito da un comando esterno per eseguire quel comando. ** + + 1. Batti il comando : per posizionare il cursore in fondo allo schermo. + Ciò ti permette di immettere un comando dalla linea comandi. + + 2. Adesso batti il carattere ! (punto esclamativo). Ciò ti permette di + eseguire qualsiasi comando esterno si possa eseguire nella "shell". + + 3. Ad esempio batti ls dopo il ! e poi premi <INVIO>. Questo + visualizza una lista della tua directory, proprio come se fossi in una + "shell". Usa :!dir se ls non funziona. [Unix: ls MS-DOS: dir] + +NOTA: E' possibile in questo modo eseguire un comando a piacere, specificando + anche dei parametri per i comandi stessi. + +NOTA: Tutti i comandi : devono essere terminati premendo <INVIO> + Da qui in avanti non lo ripeteremo ogni volta. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 5.2: ANCORA SULLA SCRITTURA DEI FILE + + + ** Per salvare le modifiche apportate a un testo batti :w NOMEFILE. ** + + 1. Batti :!dir or :!ls per procurarti una lista della tua directory. + Già sai che devi premere <INVIO> dopo aver scritto il comando. + + 2. Scegli un NOMEFILE che ancora non esista, ad es. TEST . + + 3. Adesso batti: :w TEST (dove TEST è il NOMEFILE che hai scelto). + + 4. Questo salva l'intero file ("tutor.it") con il nome di TEST. + Per verifica batti ancora :!dir o :!ls per listare la tua directory. + +NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto + sarà una copia esatta di "tutor.it" al momento del salvataggio. + + 5. Ora cancella il file battendo (MR-DOS): :!del TEST + o (Unix): :!rm TEST + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 5.3: SELEZIONARE IL TESTO DA SCRIVERE + + ** Per salvare una porzione di file, batti v movimento :w NOMEFILE ** + + 1. Muovi il cursore su questa linea. + + 2. Premi v e muovi il cursore fino alla linea numerata 5., qui sotto. + Nota che il testo viene evidenziato. + + 3. Batti il carattere : . In fondo allo schermo apparirà :'<,'> . + + 4. Batti w TEST , dove TEST è il nome di un file non ancora esistente. + Verifica che si veda :'<,'>w TEST prima di dare <INVIO>. + + 5. Vim scriverà nel file TEST le linee che hai selezionato. Usa :!dir + o :!ls per controllare che esiste. Non cancellarlo ora! Ti servirà + nella prossima lezione. + +NOTA: Battere v inizia una selezione visuale. Puoi muovere il cursore + come vuoi, e rendere la selezione più piccola o più grande. Poi + puoi usare un operatore per agire sul testo selezionato. + Ad es., d cancella il testo. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 5.4: INSERIRE E RIUNIRE FILE + + + ** Per inserire il contenuto di un file, batti :r NOMEFILE ** + + 1. Posiziona il cursore appena sopra questa riga. + +NOTA: Dopo aver eseguito il Passo 2 vedrai il testo della Lezione 5.3. + Quindi spostati IN GIU' per tornare ancora a questa Lezione. + + 2. Ora inserisci il tuo file TEST con il comando :r TEST dove TEST è + il nome che hai usato per creare il file. + Il file richiesto è inserito sotto la linea in cui si trova il cursore. + + 3. Per verificare che un file è stato inserito, torna indietro col cursore + e nota che ci sono ora 2 copie della Lezione 5.3, quella originale e + quella che viene dal file. + +NOTA: Puoi anche leggere l'output prodotto da un comando esterno. Ad es. + :r !ls legge l'output del comando ls e lo inserisce sotto la linea + in cui si trova il cursore. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 5 SOMMARIO + + + 1. :!comando esegue un comando esterno. + + Alcuni esempi utili sono [in MSDOS]: + :!dir - visualizza lista directory + :!del NOMEFILE - cancella file NOMEFILE. + + 2. :w NOMEFILE scrive su disco il file che stai editando con nome NOMEFILE. + + 3. v movimento :w NOMEFILE salva le linee selezionate in maniera + visuale nel file NOMEFILE. + + 4. :r NOMEFILE legge il file NOMEFILE da disco e lo inserisce nel file + che stai modificando, dopo la linea in cui è posizionato il cursore. + + 5. :r !dir legge l'output del comando dir e lo inserisce dopo la + linea in cui è posizionato il cursore. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6.1: IL COMANDO OPEN [APRIRE] + + + ** Batti o per aprire una linea sotto il cursore ** + ** e passare in Modalità Inserimento. ** + + 1. Muovi il cursore fino alla linea qui sotto, indicata da --->. + + 2. Batti la lettera minuscola o per aprire una linea sotto il cursore e + passare in Modalità Inserimento. + + 3. Poi inserisci del testo e premi <ESC> per uscire dalla + Modalità Inserimento. + +---> Dopo battuto o il cursore è sulla linea aperta (in Modalità Inserimento). + + 4. Per aprire una linea SOPRA il cursore, batti una O maiuscola, invece + che una o minuscola. Prova sulla linea qui sotto. +Apri una linea SOPRA questa battendo O mentre il cursore è su questa linea. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6.2: IL COMANDO APPEND [AGGIUNGERE] + + ** Batti a per inserire testo DOPO il cursore. ** + + 1. Muovi il cursore all'inizio della linea qui sotto, indicata da --->. + + 2. Batti e finché il cursore arriva alla fine di li . + + 3. Batti una a (minuscola) per aggiungere testo DOPO il cursore. + + 4. Completa la parola come mostrato nella linea successiva. Premi <ESC> + per uscire dalla Modalità Inserimento. + + 5. Usa e per passare alla successiva parola incompleta e ripeti i passi + 3 e 4. + +---> Questa li ti permetterà di esercit ad aggiungere testo a una linea. +---> Questa linea ti permetterà di esercitarti ad aggiungere testo a una linea. + +NOTA: a, i ed A entrano sempre in Modalità Inserimento, la sola differenza + è dove verranno inseriti i caratteri. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6.3: UN ALTRO MODO DI RIMPIAZZARE [REPLACE] + + + ** Batti una R maiuscola per rimpiazzare più di un carattere. ** + + 1. Muovi il cursore alla prima linea qui sotto, indicata da --->. Muovi il + cursore all'inizio del primo xxx . + + 2. Ora batti R e batti il numero che vedi nella linea seguente, in modo + che rimpiazzi l' xxx . + + 3. Premi <ESC> per uscire dalla Modalità Replace. Nota che il resto della + linea resta invariato. + + 4. Ripeti i passi in modo da rimpiazzare l'altro xxx . + +---> Aggiungendo 123 a xxx si ottiene xxx. +---> Aggiungendo 123 a 456 si ottiene 579. + +NOTA: La Modalità Replace è come la Modalità Inserimento, ma ogni carattere + che viene battuto ricopre un carattere esistente. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6.4: COPIA E INCOLLA DEL TESTO + + + ** usa l'operatore y per copiare del testo e p per incollarlo ** + + 1. Vai alla linea indicata da ---> qui sotto, e metti il cursore dopo "a)". + + 2. Entra in Modalità Visuale con v e metti il cursore davanti a "primo". + + 3. Batti y per copiare [yank] il testo evidenziato. + + 4. Muovi il cursore alla fine della linea successiva: j$ + + 5. Batti p per incollare [paste] il testo. Poi batti: a secondo <ESC> . + + 6. Usa la Modalità Visuale per selezionare " elemento.", copialo con y , + Vai alla fine della linea successiva con j$ e incolla il testo con p . + +---> a) questo è il primo elemento. + b) + +NOTA: Puoi usare y come operatore; yw copia una parola [word]. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6.5: SET [IMPOSTA] UN'OPZIONE + + ** Imposta un'opzione per ignorare maiuscole/minuscole ** + ** durante la ricerca/sostituzione ** + + 1. Ricerca 'nota' battendo: /nota <ENTER> + Ripeti la ricerca più volte usando il tasto n + + 2. Imposta l'opzione 'ic' (Ignore Case, [Ignora maiuscolo/minuscolo]) + battendo: :set ic + + 3. Ora ricerca ancora 'nota' premendo il tasto n + Troverai adesso anche Nota e NOTA . + + 4. Imposta le opzioni 'hlsearch' e 'incsearch' :set hls is + + 5. Ora batti ancora il comando di ricerca, e guarda cosa succede: /nota + + 6. Per disabilitare il riconoscimento di maiuscole/minuscole batti: :set noic +NOTA: Per non evidenziare le occorrenze trovate batti: :nohlsearch +NOTA: Per ignorare maiuscole/minuscole solo per una ricerca, usa \c + nel comando di ricerca: /nota\c <INVIO> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 6 SOMMARIO + + 1. Batti o per aggiungere una linea SOTTO il cursore ed entrare in + Modalità Inserimento. + Batti O per aggiungere una linea SOPRA il cursore. + + 2. Batti a per inserire testo DOPO il cursore. + Batti A per inserire testo alla fine della linea. + + 3. Il comando e sposta il cursore alla fine di una parola. + + 4. L'operatore y copia del testo, p incolla del testo. + + 5. Batti R per entrare in Modalità Replace, e ne esci premendo <ESC>. + + 6. Batti ":set xxx" per impostare l'opzione "xxx". Alcun opzioni sono: + 'ic' 'ignorecase' ignorare maiuscole/minuscole nella ricerca + 'is' 'incsearch' mostra occorrenze parziali durante una ricerca + 'hls' 'hlsearch' evidenzia tutte le occorrenze di una ricerca + Puoi usare sia il nome completo di un'opzione che quello abbreviato. + + 7. Usa il prefisso "no" per annullare una opzione: :set noic +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 7.1: OTTENERE AIUTO + + ** Usa il sistema di aiuto on-line ** + + Vim ha un esauriente sistema di aiuto on-line. Per cominciare, prova una di + queste alternative: + - premi il tasto <AIUTO> (se ce n'è uno) + - premi il tasto <F1> (se ce n'è uno) + - batti :help <INVIO> OPPURE :h <INVIO> + + Leggi il testo nella finestra di aiuto per vedere come funziona l'aiuto. + Batti CTRL-W CTRL-W per passare da una finestra all'altra. + Batti :q <INVIO> per chiudere la finestra di aiuto. + + Puoi trovare aiuto su quasi tutto, dando un argomento al comando ":help" + Prova questi (non dimenticare di premere <INVIO>): + + :help w + :help c_CTRL-D + :help insert-index + :help user-manual + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 7.2: PREPARARE UNO SCRIPT INIZIALE + + ** Attiva le opzioni Vim ** + + Vim ha molte più opzioni di Vi, ma molte di esse sono predefinite inattive. + Per cominciare a usare più opzioni, devi creare un file "vimrc". + + 1. Comincia a editare il file "vimrc". Questo dipende dal tuo sistema: + :e ~/.vimrc per Unix + :e $VIM/_vimrc per MS-Windows + + 2. Ora leggi i contenuti del file "vimrc" distribuito come esempio: + + :r $VIMRUNTIME/vimrc_example.vim + + 3. Scrivi il file con: + :w + + La prossima volta che apri Vim, sarà abilitata la colorazione sintattica. + Puoi aggiungere a questo file "vimrc" tutte le tue impostazioni preferite. + Per maggiori informazioni batti: :help vimrc-intro + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 7.3: COMPLETAMENTO + + + ** Completamento linea comandi con CTRL-D e <TAB> ** + + 1. Imposta Vim in modalità compatibile: :set nocp + + 2. Guarda i file esistenti nella directory: :!ls o :!dir + + 3. Batti l'inizio di un comando: :e + + 4. Premi CTRL-D e Vim ti mostra una lista di comandi che iniziano per "e". + + 5. Premi <TAB> e Vim completa per te il nome comando come ":edit". + + 6. Ora batti uno spazio e l'inizio del nome di un file esistente: :edit FIL + + 7. Premi <TAB>. Vim completerà il nome del file (se è il solo possibile). + +NOTA: Il completamento è disponibile per molti comandi. Prova a battere + CTRL-D e <TAB>. Particolarmente utile per :help . + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Lezione 7 Sommario + + + 1. Batti :help o premi <F1> o <Help> per aprire una finestra di aiuto. + + 2. Batti :help comando per avere aiuto su comando . + + 3. Batti CTRL-W CTRL-W per saltare alla prossima finestra. + + 4. Batti :q per chiudere la finestra di aiuto. + + 5. Crea uno script iniziale vimrc contenente le tue impostazioni preferite. + + 6. Mentre batti un comando : , premi CTRL-D per vedere i possibili + completamenti. Premi <TAB> per usare il completamento desiderato. + + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Qui finisce la Guida a Vim. Il suo intento è di fornire una breve panoramica + dell'Editor Vim, che ti consenta di usare l'Editor abbastanza facilmente. + Questa guida è largamente incompleta poiché Vim ha moltissimi altri comandi. + Puoi anche leggere il manuale utente (anche in italiano): ":help user-manual". + + Per ulteriore lettura e studio, raccomandiamo: + Vim - Vi Improved - di Steve Oualline Editore: New Riders + Il primo libro completamente dedicato a Vim. Utile specie per principianti. + Contiene molti esempi e figure. + Vedi http://iccf-holland.org/click5.html + + Quest'altro libro è più su Vi che su Vim, ma è pure consigliato: + Learning the Vi Editor - di Linda Lamb e Arnold Robbins + Editore: O'Reilly & Associates Inc. + E' un buon libro per imparare quasi tutto ciò che puoi voler fare con Vi. + Ne esiste una traduzione italiana, basata su una vecchia edizione. + + Questa guida è stata scritta da Michael C. Pierce e Robert K. Ware, + Colorado School of Mines, usando idee fornite da Charles Smith, + Colorado State University - E-mail: bware@mines.colorado.edu + Modificato per Vim da Bram Moolenaar. + Segnalare refusi ad Antonio Colombo - E-mail: azc100@gmail.com +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |