updated for version 7.2a

This commit is contained in:
Bram Moolenaar
2008-06-24 20:39:31 +00:00
parent f233048a12
commit a7241f5f19
69 changed files with 5931 additions and 446 deletions

View File

@ -0,0 +1,32 @@
README_ami.txt for version 7.2a of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim.
Unpack the distributed files in the place where you want to keep them. It is
wise to have a "vim" directory to keep your vimrc file and any other files you
change. The distributed files go into a subdirectory. This way you can
easily upgrade to a new version. For example:
dh0:editors/vim contains your vimrc and modified files
dh0:editors/vim/vim54 contains the Vim version 5.4 distributed files
dh0:editors/vim/vim55 contains the Vim version 5.5 distributed files
You would then unpack the archives like this:
cd dh0:editors
tar xf t:vim60bin.tar
tar xf t:vim60rt.tar
Set the $VIM environment variable to point to the top directory of your Vim
files. For the above example:
set VIM=dh0:editors/vim
Vim version 5.4 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim54. See ":help $VIM" for more information.
Make sure the Vim executable is in your search path. Either copy the Vim
executable to a directory that is in your search path, or (preferred) modify
the search path to include the directory where the Vim executable is.

View File

@ -0,0 +1,25 @@
" This Vim script deletes all the menus, so that they can be redefined.
" Warning: This also deletes all menus defined by the user!
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 May 27
aunmenu *
silent! unlet did_install_default_menus
silent! unlet did_install_syntax_menu
if exists("did_menu_trans")
menutrans clear
unlet did_menu_trans
endif
silent! unlet find_help_dialog
silent! unlet menutrans_help_dialog
silent! unlet menutrans_path_dialog
silent! unlet menutrans_tags_dialog
silent! unlet menutrans_textwidth_dialog
silent! unlet menutrans_fileformat_dialog
silent! unlet menutrans_no_file
" vim: set sw=2 :

View File

@ -0,0 +1,75 @@
" System gvimrc file for Mac OS X
" Author: Benji Fisher <benji@member.AMS.org>
" Last Change: Thu Mar 09 09:00 AM 2006 EST
"
" Define Mac-standard keyboard shortcuts.
" We don't change 'cpoptions' here, because it would not be set properly when
" a .vimrc file is found later. Thus don't use line continuation and use
" <special> in mappings.
nnoremap <special> <D-n> :confirm enew<CR>
vmap <special> <D-n> <Esc><D-n>gv
imap <special> <D-n> <C-O><D-n>
cmap <special> <D-n> <C-C><D-n>
omap <special> <D-n> <Esc><D-n>
nnoremap <special> <D-o> :browse confirm e<CR>
vmap <special> <D-o> <Esc><D-o>gv
imap <special> <D-o> <C-O><D-o>
cmap <special> <D-o> <C-C><D-o>
omap <special> <D-o> <Esc><D-o>
nnoremap <silent> <special> <D-w> :if winheight(2) < 0 <Bar> confirm enew <Bar> else <Bar> confirm close <Bar> endif<CR>
vmap <special> <D-w> <Esc><D-w>gv
imap <special> <D-w> <C-O><D-w>
cmap <special> <D-w> <C-C><D-w>
omap <special> <D-w> <Esc><D-w>
nnoremap <silent> <special> <D-s> :if expand("%") == ""<Bar>browse confirm w<Bar> else<Bar>confirm w<Bar>endif<CR>
vmap <special> <D-s> <Esc><D-s>gv
imap <special> <D-s> <C-O><D-s>
cmap <special> <D-s> <C-C><D-s>
omap <special> <D-s> <Esc><D-s>
nnoremap <special> <D-S-s> :browse confirm saveas<CR>
vmap <special> <D-S-s> <Esc><D-s>gv
imap <special> <D-S-s> <C-O><D-s>
cmap <special> <D-S-s> <C-C><D-s>
omap <special> <D-S-s> <Esc><D-s>
" From the Edit menu of SimpleText:
nnoremap <special> <D-z> u
vmap <special> <D-z> <Esc><D-z>gv
imap <special> <D-z> <C-O><D-z>
cmap <special> <D-z> <C-C><D-z>
omap <special> <D-z> <Esc><D-z>
vnoremap <special> <D-x> "+x
vnoremap <special> <D-c> "+y
cnoremap <special> <D-c> <C-Y>
nnoremap <special> <D-v> "+gP
cnoremap <special> <D-v> <C-R>+
execute 'vnoremap <script> <special> <D-v>' paste#paste_cmd['v']
execute 'inoremap <script> <special> <D-v>' paste#paste_cmd['i']
nnoremap <silent> <special> <D-a> :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar> else<Bar>exe ":norm ggVG"<Bar>endif<CR>
vmap <special> <D-a> <Esc><D-a>
imap <special> <D-a> <Esc><D-a>
cmap <special> <D-a> <C-C><D-a>
omap <special> <D-a> <Esc><D-a>
nnoremap <special> <D-f> /
vmap <special> <D-f> <Esc><D-f>
imap <special> <D-f> <Esc><D-f>
cmap <special> <D-f> <C-C><D-f>
omap <special> <D-f> <Esc><D-f>
nnoremap <special> <D-g> n
vmap <special> <D-g> <Esc><D-g>
imap <special> <D-g> <C-O><D-g>
cmap <special> <D-g> <C-C><D-g>
omap <special> <D-g> <Esc><D-g>

BIN
runtime/tutor/runtime/macros.info Executable file

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
runtime/tutor/runtime/tools.info Executable file

Binary file not shown.

View File

@ -0,0 +1,43 @@
/* XPM */
static char * vim32x32[] = {
"32 32 8 1",
" c None",
". c #000000",
"+ c #000080",
"@ c #008000",
"# c #00FF00",
"$ c #808080",
"% c #C0C0C0",
"& c #FFFFFF",
" .. ",
" .##. ",
" ...........#@@#. ......... ",
" .&&&&&&&&&&&.@@@#.&&&&&&&&&. ",
" .&%%%%%%%%%%%.@@@.&%%%%%%%%%. ",
" .%%%%%%%%%%$.@@@@.%%%%%%%%$. ",
" .$%%%%%%$$.@@@@@@.$%%%%%$$. ",
" .&%%%%%%$.@@@@@@.&%%%%%$$. ",
" .&%%%%%%$.@@@@@.&&%%%%$$. ",
" .&%%%%%%$.@@@@.&&%%%%$$. ",
" .&%%%%%%$.@@@.&&%%%%$$. ",
" .&%%%%%%$.@@.&&%%%%$$.#. ",
" ..&%%%%%%$.@.&&%%%%$$.@@#. ",
" .#.&%%%%%%$..&&%%%%$$.@@@@#. ",
" .#@.&%%%%%%$.&&%%%%$$.@@@@@@#. ",
".#@@.&%%%%%%$&&%%%%$$.@@@@@@@@#.",
".+@@.&%%%%%%$&%%%%$$.@@@@@@@@@+.",
" .+@.&%%%%%%$%%%%$$.@@@@@@@@@+. ",
" .+.&%%%%%%%%%%...@@@@@@@@@+. ",
" ..&%%%%%%%%%.%%.@@@@@@@@+. ",
" .&%%%%%%%%%.%%.@@@@@@@+. ",
" .&%%%%%%%%$...@...@...... ",
" .&%%%%%%%$.%%%.%%%.%%%.%%. ",
" .&%%%%%%$$..%%..%%%%%%%%%%. ",
" .&%%%%%$$..%%...%%++%%..%. ",
" .&%%%%$$.@.%%..%%+.%%..%%. ",
" .&%%%$$.@@.%%..%%..%%..%%. ",
" .&%%$$..+.%%..%%..%%..%%. ",
" .%$$. ..%%%.%%..%%..%%%. ",
" ... ....+.. .. ... ",
" .++. ",
" .. "};

View File

@ -0,0 +1,59 @@
/* XPM */
static char * vim48x48[] = {
"48 48 8 1",
" c None",
". c #000000",
"+ c #000084",
"@ c #008200",
"# c #00FF00",
"$ c #848284",
"& c #C6C3C6",
"* c #FFFFFF",
" .. ",
" .##. ",
" .#@@#. ",
" ...............#@@@@#. ............... ",
" .***************.@@@@@#. .***************. ",
" .**&&&&&&&&&&&&&&$.@@@@@#.**&&&&&&&&&&&&&&$.",
" .*&&&&&&&&&&&&&&&$.@@@@@@.*&&&&&&&&&&&&&&&$.",
" .*$&&&&&&&&&&&&&&$.@@@@@@.*$&&&&&&&&&&&&&&$.",
" .$$$&&&&&&&&&$$$.@@@@@@@@.$$$&&&&&&&&&&&$$.",
" ..*&&&&&&&&&$$.@@@@@@@@@@..*&&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@.**&&&&&&&&&$$.. ",
" ..*&&&&&&&&&$$.@@@.**&&&&&&&&&$$.@#. ",
" .#.*&&&&&&&&&$$.@@.**&&&&&&&&&$$.@@@#. ",
" .#@.*&&&&&&&&&$$.@.**&&&&&&&&&$$.@@@@@#. ",
" .#@@.*&&&&&&&&&$$..**&&&&&&&&&$$.@@@@@@@#. ",
" .#@@@.*&&&&&&&&&$$.**&&&&&&&&&$$.@@@@@@@@@#. ",
" .#@@@@.*&&&&&&&&&$$**&&&&&&&&&$$.@@@@@@@@@@@#. ",
".#+@@@@.*&&&&&&&&&$$*&&&&&&&&&$$.@@@@@@@@@@@@@#.",
" .++@@@.*&&&&&&&&&$*&&&&&&&&&$$.@@@@@@@@@@@@@++.",
" .++@@.*&&&&&&&&&$&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
" .++@.*&&&&&&&&&&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
" .++.*&&&&&&&&&&&&&&&&....@@@@@@@@@@@@@++. ",
" .+.*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@@+++ ",
" ..*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&&$$...@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&$$...@@....@@....+.... ",
" .*&&&&&&&&&&&&$$..&&..&&&&..&&&&..&&&. ",
" .*&&&&&&&&&&&$$..&&&.@.&&&&&&&&&&&&&&&. ",
" .*&&&&&&&&&&$$.@.&&&.@.&&&&&&&&&&&&&&&. ",
" .*&&&&&&&&&$$.@@.&&.@@.&&....&&....&&. ",
" .*&&&&&&&&$$.@@.&&&.@.&&&.+.&&&. .&&&. ",
" .*&&&&&&&$$.@@@.&&.@@.&&.++.&&. .&&. ",
" .*&&&&&&$$.@@@.&&&.@.&&&.+.&&&. .&&&. ",
" .*&&&&&$$.++@@.&&.@@.&&.. .&&. .&&. ",
" .*&&&&$$. .++.&&&.@.&&&. .&&&. .&&&. ",
" .$$$$$. .+.&&&&..&&&&..&&&&..&&&&. ",
" ..... .+....@+.... .... .... ",
" .++@@++. ",
" .++++. ",
" .++. ",
" .. "};

View File

@ -0,0 +1,791 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 147 74 429 356
%%LanguageLevel: 1
%%Creator: CorelDRAW 11
%%Title: vimlogo.eps
%%CreationDate: Mon Feb 02 14:35:16 2004
%%DocumentProcessColors: Cyan Yellow Black
%%DocumentSuppliedResources: (atend)
%%EndComments
%%BeginProlog
/AutoFlatness false def
/AutoSteps 0 def
/CMYKMarks true def
/UseLevel 1 def
%Build: CorelDRAW 11 Version 11.633
%Color profile: Generic offset separations profile
/CorelIsEPS true def
%%BeginResource: procset wCorel11Dict 11.0 0
/wCorel11Dict 300 dict def wCorel11Dict begin
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/bd{bind def}bind def/ld{load def}bd/xd{exch def}bd/_ null def/rp{{pop}repeat}
bd/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld/@np/newpath ld/Tl/translate ld
/$sv 0 def/@sv{/$sv save def}bd/@rs{$sv restore}bd/spg/showpage ld/showpage{}
bd currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF
false def/$Scra 0 def/SetScr/setscreen ld/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1
roll pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5
0 def}ifelse/CorelIsSeps where{pop}{/CorelIsSeps false def}ifelse
/CorelIsInRIPSeps where{pop}{/CorelIsInRIPSeps false def}ifelse/CorelIsEPS
where{pop}{/CorelIsEPS false def}ifelse/CurrentInkName_5 where{pop}
{/CurrentInkName_5(Composite)def}ifelse/$ink_5 where{pop}{/$ink_5 -1 def}
ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def/$fil 0
def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def/$N _ def/$O 0 def/$PF false
def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def/s1t 0 def/s1n _ def/$bkg false def
/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op false def matrix currentmatrix/$ctm xd
/$ptm matrix def/$ttm matrix def/$stm matrix def/$ffpnt true def
/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
16#60/grave 16#7C/bar
16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def/Comp?{
/LumSepsDict where{pop false}{/AldusSepsDict where{pop false}{1 0 0 0 @gs
setcmykcolor currentcmykcolor @gr add add add 0 ne 0 1 0 0 @gs setcmykcolor
currentcmykcolor @gr add add add 0 ne 0 0 1 0 @gs setcmykcolor currentcmykcolor
@gr add add add 0 ne 0 0 0 1 @gs setcmykcolor currentcmykcolor @gr add add add
0 ne and and and}ifelse}ifelse}bd/@PL{/LV where{pop LV 2 ge L2? not and{@np
/Courier findfont 12 scalefont setfont 72 144 m
(The PostScript level set in the Corel application is higher than)show 72 132 m
(the PostScript level of this device. Change the PS Level in the Corel)show 72
120 m(application to Level 1 by selecting the PostScript tab in the print)show
72 108 m(dialog, and selecting Level 1 from the Compatibility drop down list.)
show flush spg quit}if}if}bd/@BeginSysCorelDict{systemdict/Corel30Dict known
{systemdict/Corel30Dict get exec}if systemdict/CorelLexDict known{1 systemdict
/CorelLexDict get exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known
{end}if/EndCorelLexDict where{pop EndCorelLexDict}if}bd AutoFlatness{/@ifl{dup
currentflat exch sub 10 gt{
([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
{$dsa}ifelse $SCP @ss}if}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge
{pop}{exch pop}ifelse}bd/InRange{3 -1 roll @MN @MX}bd/@sqr{dup 0 rl dup 0 exch
rl neg 0 rl @cp}bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform
dup mul exch dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform
dup mul exch dup mul add sqrt}bd/@unscale{}bd/wDstChck{2 1 roll dup 3 -1 roll
eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1
exch sub}bd/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}
repeat pop}bd/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1
roll sub neg exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index
.114 mul add 4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb
/setrgbcolor ld/GetRgb/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray
ld/SetRgb2 systemdict/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor
get def/SetHsb systemdict/sethsbcolor get def/GetHsb systemdict
/currenthsbcolor get def/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor
sub 3 1 roll SetHsb GetRgb2}bd/setcmykcolor where{pop/LumSepsDict where{pop
/SetCmyk_5{LumSepsDict/setcmykcolor get exec}def}{/AldusSepsDict where{pop
/SetCmyk_5{AldusSepsDict/setcmykcolor get exec}def}{/SetCmyk_5/setcmykcolor ld
}ifelse}ifelse}{/SetCmyk_5{cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{
pop/GetCmyk/currentcmykcolor ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse
/setoverprint where{pop}{/setoverprint{/$op xd}bd}ifelse/currentoverprint where
{pop}{/currentoverprint{$op}bd}ifelse/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1
roll mul exch}repeat pop}ifelse}bd/@trp{exch pop 5 1 roll @tc_5}bd
/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0 4 $ink_5 sub index exch pop 5 1
roll pop pop pop pop SepsColor true eq{$ink_5 3 gt{1 sub neg SetGry}{0 0 0 4
$ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}ifelse}ifelse}bd
/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array astore}bd}ifelse
/Corelsetcustomcolor_exists false def/setcustomcolor where{pop
/Corelsetcustomcolor_exists true def}if CorelIsSeps true eq CorelIsInRIPSeps
false eq and{/Corelsetcustomcolor_exists false def}if
Corelsetcustomcolor_exists false eq{/setcustomcolor{exch aload pop SepMode_5 0
eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}ifelse 6 1 roll
5 rp 1 sub neg SetGry}ifelse}bd}if/@scc_5{dup type/booleantype eq{dup
currentoverprint ne{setoverprint}{pop}ifelse}{1 eq setoverprint}ifelse dup _ eq
{pop setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse
SepMode_5 0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage
where{pop/ColorImage{colorimage}def}{/ColorImage{/ncolors xd/$multi xd $multi
true eq{ncolors 3 eq{/daqB xd/daqG xd/daqR xd pop pop exch pop abs{daqR pop
daqG pop daqB pop}repeat}{/daqK xd/daqY xd/daqM xd/daqC xd pop pop exch pop abs
{daqC pop daqM pop daqY pop daqK pop}repeat}ifelse}{/dataaq xd{dataaq ncolors
dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index get 255
div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g 255 mul
cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv getinterval pop}{
4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1 index get 255 div
$dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div $dat 4 index 3
add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1 roll put}for $dat
0 $dat length ncolors idiv getinterval}if}ifelse}image}ifelse}bd}ifelse
/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
/currentcmykcolor{GetCmyk}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
/currentgray{currentrgbcolor rgb2g}bd/InsideDCS false def/IMAGE/image ld/image
{InsideDCS{IMAGE}{/EPSDict where{pop SepMode_5 0 eq{IMAGE}{dup type/dicttype eq
{dup/ImageType get 1 ne{IMAGE}{dup dup/BitsPerComponent get 8 eq exch
/BitsPerComponent get 1 eq or currentcolorspace 0 get/DeviceGray eq and{
CurrentInkName_5(Black)eq{IMAGE}{dup/DataSource get/TCC xd/Height get abs{TCC
pop}repeat}ifelse}{IMAGE}ifelse}ifelse}{2 index 1 ne{CurrentInkName_5(Black)eq
{IMAGE}{/TCC xd pop pop exch pop abs{TCC pop}repeat}ifelse}{IMAGE}ifelse}
ifelse}ifelse}{IMAGE}ifelse}ifelse}bd}ifelse/WaldoColor_5 true def/$fm 0 def
/wfill{1 $fm eq{fill}{eofill}ifelse}bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or
$ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y $k $n $o @scc_5 pop $ctm setmatrix 72
1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform
ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform
floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop $Psn load exec}{1 SetGry
wfill}ifelse @rs @np}bd/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if $fil
1 eq{CorelPtrnDoFill}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$fil 4 eq
{CorelShfillDoFill}{$t $c $m $y $k $n $o @scc_5{wfill}{@np}ifelse}ifelse}
ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{
matrix currentmatrix $ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K
$N $O @scc_5{matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF
{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{
5 array astore exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{
/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{
@cp}bd/@P{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/tcc{@cc}def/@B{
@gs S @gr F}bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}
{CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
-72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
bd/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
bd/@rax{deflevel 0 eq{@rs @sv}if}bd systemdict/pdfmark known not{/pdfmark
/cleartomark ld}if/wclip{1 $fm eq{clip}{eoclip}ifelse}bd
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index 3 index l 3
index 3 index l clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true
def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5/$frg xd}{/$frg false def}
ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np/$ury xd/$urx xd/$lly xd
/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string
def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl $urx $llx sub $ury
$lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid $hei abs $bts 1 eq
{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/tcc load $bts
1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa $dsp @ss}if}{$hei abs{tcc pop}
repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd
/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd $ngx $llx $lly Tl $urx $llx sub $ury
$lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse
]$msimage false eq $ncl 1 eq or{/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
string def/@cc load false $ncl ColorImage}{$wid $bts mul 8 div ceiling cvi $ncl
3 eq{dup dup/$dat1 exch string def/$dat2 exch string def/$dat3 exch string def
/@cc1 load/@cc2 load/@cc3 load}{dup dup dup/$dat1 exch string def/$dat2 exch
string def/$dat3 exch string def/$dat4 exch string def/@cc1 load/@cc2 load
/@cc3 load/@cc4 load}ifelse true $ncl ColorImage}ifelse $SDF{$dsf $dsa $dsp
@ss}if @gr $ctm setmatrix}bd/@cc1{currentfile $dat1 readhexstring pop}bd/@cc2{
currentfile $dat2 readhexstring pop}bd/@cc3{currentfile $dat3 readhexstring pop
}bd/@cc4{currentfile $dat4 readhexstring pop}bd/$msimage false def/COMP 0 def
/MaskedImage false def L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx
xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling
cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
/DataSource currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP
2 eq{/RunLengthDecode filter}if}ifelse def currentdict end image $SDF{$dsf $dsa
$dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/@I_3{@sm @gs @ii @np/$ury
xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul
$ncl mul 8 div ceiling cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq
{/DeviceRGB}{/DeviceCMYK}ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub
$ury $lly sub scale/ImageDataDict 8 dict def ImageDataDict begin/ImageType 1
def/Width $wid def/Height $hei abs def/BitsPerComponent $bts def/Decode $ncl 1
eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}ifelse}ifelse def
/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def/DataSource
currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP 2 eq{
/RunLengthDecode filter}if}ifelse def end/MaskedImageDict 7 dict def
MaskedImageDict begin/ImageType 3 def/InterleaveType 3 def/MaskDict
ImageMaskDict def/DataDict ImageDataDict def end MaskedImageDict image $SDF
{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/@SetMask{/$mbts xd/$mhei xd/$mwid
xd/ImageMaskDict 8 dict def ImageMaskDict begin/ImageType 1 def/Width $mwid def
/Height $mhei abs def/BitsPerComponent $mbts def/DataSource maskstream def
/ImageMatrix[$mwid 0 0 $mhei neg 0 $mhei 0 gt{$mhei}{0}ifelse]def/Decode[1 0]
def end}bd/@daq{dup type/arraytype eq{{}forall}if}bd/@BMP{/@cc xd UseLevel 3 eq
MaskedImage true eq and{7 -2 roll pop pop @I_3}{12 index 1 gt UseLevel 2 eq
UseLevel 3 eq or and{7 -2 roll pop pop @I_2}{11 index 1 eq{12 -1 roll pop @i}{
7 -2 roll pop pop @I}ifelse}ifelse}ifelse}bd
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/@p{/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd
/CorelPtrnDoFill{@gs $ctm setmatrix $pm concat CorelPtrnSetBBox wclip @sv Bburx
Bbury $pm itransform/$tury xd/$turx xd Bbllx Bblly $pm itransform/$tlly xd
/$tllx xd newpath $tllx $tlly m $tllx $tury l $turx $tury l $turx $tlly l $tllx
$tlly m @cp pathbbox @rs/$tury xd/$turx xd/$tlly xd/$tllx xd/$wid $turx $tllx
sub def/$hei $tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{wfill}if}{
$t $c $m $y $k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei
scale <00> 8 1 false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse
@gr $wid 0 gt $hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub
/$phei xd exch sub/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div
ceiling 1 add/$tly xd currentdict/CorelPtrnL2Pattern known $psy 0 eq and $psx 0
eq and{CorelPtrnL2Pattern}{$psx 0 eq{CorelPtrnTileVeritcal}{CorelPtrnTileHoriz
}ifelse}ifelse}if @gr @np/$bkg false def}bd/CorelPtrnSetBBox{pathbbox/$ury xd
/$urx xd/$lly xd/$llx xd}bd/CorelPtrnSetFirstTile{$tllx $pxf add dup $tllx gt
{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei add}if/$ty xd}bd/p{/$pm
xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}bd/CorelPtrnDraw{@ep}bd
/CorelPtrnPutTile{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei
sub $ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{
/$in false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0
$phei rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3
index sub Tl matrix currentmatrix/$ctm xd CorelPtrnDraw pop pop pop pop}{pop
pop}ifelse @rs}bd/CorelPtrnTileHoriz{CorelPtrnSetFirstTile 0 1 $tly 1 sub{dup
$psx mul $tx add{dup $llx gt{$pwid sub}{exit}ifelse}loop exch $phei mul $ty
exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1 roll add exch CorelPtrnPutTile
pop}for pop pop}for}bd/CorelPtrnTileVeritcal{CorelPtrnSetFirstTile 0 1 $tlx 1
sub{dup $pwid mul $tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}
{exit}ifelse}loop 0 1 $tly 1 sub{$phei mul 3 copy sub CorelPtrnPutTile pop}for
pop pop}for}bd L2? UseLevel 2 ge and{/CorelPtrnL2Pattern{@sv[$pn cvlit load
aload pop pop]$pwid $phei $pn cvlit load aload pop pop pop pop pathbbox pop pop
2 index sub exch 3 index sub 4 -2 roll pop pop exch matrix identmatrix
translate/PatternMatrix xd/PatternYStep xd/PatternXStep xd/PatternBBox xd
currentdict/PatternMainDict xd <</PaintType 1/PatternType 1/TilingType 1/BBox
PatternBBox/XStep PatternXStep/YStep PatternYStep/PaintProc{begin
PatternMainDict begin $ctm currentmatrix pop 0 CorelPtrnDraw end end}bind >>
PatternMatrix makepattern setpattern fill @rs}def}if
end
%%EndResource
%%EndProlog
%%BeginSetup
wCorel11Dict begin
@BeginSysCorelDict
2.6131 setmiterlimit
1.00 setflat
/$fst 128 def
%%EndSetup
%%Page: 1 1
%LogicalPage: 1
%%BeginPageSetup
@sv
@sm
@sv
%%EndPageSetup
@rax %Note: Object
147.81600 74.66400 428.47200 355.32000 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
428.47200 216.43200 m
286.70400 355.32000 L
147.81600 213.62400 L
286.70400 74.66400 L
428.47200 216.43200 L
@c
B
@rax %Note: Object
286.70400 80.35200 422.78400 216.43200 @E
0 O 0 @g
0.60 0.00 0.40 0.58 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
414.28800 216.43200 m
422.78400 216.43200 L
286.70400 80.35200 L
286.70400 88.84800 L
414.28800 216.43200 L
@c
B
@rax %Note: Object
153.50400 80.35200 286.70400 213.62400 @E
0 O 0 @g
0.60 0.00 0.40 0.51 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
153.50400 213.62400 m
162.00000 213.62400 L
286.70400 88.84800 L
286.70400 80.35200 L
153.50400 213.62400 L
@c
B
@rax %Note: Object
153.50400 213.62400 286.70400 349.63200 @E
0 O 0 @g
0.60 0.00 0.40 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 341.20800 m
286.70400 349.63200 L
153.50400 213.62400 L
162.00000 213.62400 L
286.70400 341.20800 L
@c
B
@rax %Note: Object
286.70400 216.43200 422.78400 349.63200 @E
0 O 0 @g
0.73 0.00 0.99 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 349.63200 m
286.70400 341.20800 L
414.28800 216.43200 L
422.78400 216.43200 L
286.70400 349.63200 L
@c
B
@rax %Note: Object
162.00000 88.84800 414.28800 341.20800 @E
0 O 0 @g
0.60 0.00 0.40 0.40 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 88.84800 m
414.28800 216.43200 L
286.70400 341.20800 L
162.00000 213.62400 L
286.70400 88.84800 L
@c
B
@rax %Note: Object
165.81600 103.03200 423.72000 344.01600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
313.20000 312.84000 m
321.69600 304.27200 L
321.69600 304.27200 L
263.08800 244.80000 L
263.08800 304.27200 L
268.77600 304.27200 L
277.27200 312.84000 L
277.27200 335.44800 L
268.77600 344.01600 L
174.31200 344.01600 L
165.81600 335.44800 L
165.81600 312.84000 L
174.31200 304.27200 L
180.93600 304.27200 L
180.93600 111.52800 L
191.30400 103.03200 L
220.60800 103.03200 L
423.72000 312.84000 L
423.72000 335.44800 L
415.22400 344.01600 L
322.63200 344.01600 L
313.20000 335.44800 L
313.20000 312.84000 L
@c
B
@rax %Note: Object
171.43200 309.96000 271.58400 338.40000 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
177.12000 309.96000 m
171.43200 315.64800 L
171.43200 332.64000 L
177.12000 338.32800 L
265.96800 338.40000 L
271.58400 332.64000 L
265.96800 329.90400 L
263.08800 332.64000 L
177.12000 318.52800 L
177.12000 309.96000 L
@c
B
@rax %Note: Object
187.48800 108.72000 194.11200 315.64800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
194.11200 108.72000 m
187.48800 114.40800 L
187.48800 310.03200 L
194.11200 315.64800 L
194.11200 108.72000 L
@c
B
@rax %Note: Object
247.03200 207.93600 341.56800 315.64800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
335.88000 309.96000 m
341.56800 315.64800 L
341.56800 304.27200 L
247.03200 207.93600 L
257.47200 230.61600 L
335.88000 309.96000 L
@c
B
@rax %Note: Object
177.12000 309.96000 196.05600 321.33600 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
196.05600 318.45600 m
194.11200 315.64800 L
187.48800 309.96000 L
177.12000 309.96000 L
177.12000 321.33600 L
196.05600 318.45600 L
@c
B
@rax %Note: Object
247.03200 208.00800 271.58400 332.64000 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
257.47200 309.96000 m
257.47200 230.61600 L
247.03200 208.00800 L
247.03200 315.72000 L
263.08800 315.72000 L
265.96800 318.52800 L
263.08800 332.64000 L
271.58400 332.64000 L
271.58400 315.64800 L
265.96800 309.96000 L
257.47200 309.96000 L
@c
B
@rax %Note: Object
318.88800 309.96000 418.10400 338.32800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
324.50400 309.96000 m
318.88800 315.64800 L
318.88800 332.64000 L
325.44000 338.32800 L
411.48000 338.32800 L
418.10400 332.64000 L
408.60000 324.14400 L
324.50400 318.52800 L
324.50400 309.96000 L
@c
B
@rax %Note: Object
194.11200 108.72000 418.10400 332.64000 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
418.10400 315.64800 m
218.66400 108.72000 L
194.11200 108.72000 L
194.11200 117.21600 L
212.11200 117.21600 L
411.48000 321.33600 L
408.60000 332.64000 L
418.10400 332.64000 L
418.10400 315.64800 L
@c
B
@rax %Note: Object
324.50400 309.96000 343.44000 321.33600 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
343.44000 318.45600 m
341.49600 315.64800 L
335.88000 309.96000 L
324.50400 309.96000 L
324.50400 321.33600 L
343.44000 318.45600 L
@c
B
@rax %Note: Object
177.12000 114.40800 412.41600 332.71200 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
247.03200 208.00800 m
247.03200 315.72000 L
263.08800 315.72000 L
265.96800 318.52800 L
265.96800 329.90400 L
263.08800 332.71200 L
179.92800 332.71200 L
177.12000 329.90400 L
177.12000 318.52800 L
179.92800 315.72000 L
194.11200 315.72000 L
194.11200 117.21600 L
197.78400 114.40800 L
213.98400 114.40800 L
412.41600 321.33600 L
412.41600 329.47200 L
409.53600 332.71200 L
327.38400 332.71200 L
324.50400 329.90400 L
324.50400 318.45600 L
327.38400 315.64800 L
341.56800 315.64800 L
341.56800 304.27200 L
247.03200 208.00800 L
@c
B
@rax %Note: Object
292.89600 185.18400 326.95200 213.55200 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
298.58400 207.86400 m
305.20800 213.55200 L
322.20000 213.55200 L
326.95200 207.86400 L
321.26400 190.87200 L
314.71200 185.18400 L
297.72000 185.18400 L
292.89600 190.87200 L
298.58400 207.86400 L
@c
B
@rax %Note: Object
304.27200 114.33600 424.22400 182.37600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
304.27200 114.33600 m
321.33600 165.31200 L
315.64800 165.31200 L
321.33600 182.37600 L
346.75200 182.37600 L
352.44000 176.68800 L
356.25600 176.68800 L
361.87200 182.37600 L
380.80800 182.37600 L
386.49600 176.68800 L
390.24000 176.68800 L
395.92800 182.37600 L
416.66400 182.37600 L
424.22400 171.00000 L
411.84000 130.68000 L
417.45600 130.68000 L
411.98400 114.33600 L
377.92800 114.33600 L
391.24800 154.00800 L
382.75200 154.00800 L
374.90400 130.82400 L
380.52000 130.82400 L
375.19200 114.33600 L
341.13600 114.33600 L
354.38400 154.00800 L
345.88800 154.00800 L
337.96800 130.68000 L
343.65600 130.68000 L
338.32800 114.33600 L
304.27200 114.33600 L
@c
B
@rax %Note: Object
311.83200 120.02400 418.46400 176.68800 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
414.07200 176.68800 m
418.46400 170.42400 L
404.49600 125.64000 L
410.11200 125.64000 L
408.24000 120.02400 L
385.56000 120.02400 L
398.80800 159.69600 L
378.93600 159.69600 L
367.63200 125.64000 L
373.24800 125.64000 L
371.37600 120.02400 L
348.69600 120.02400 L
361.94400 159.69600 L
342.07200 159.69600 L
330.76800 125.64000 L
336.45600 125.64000 L
334.51200 120.02400 L
311.83200 120.02400 L
328.89600 171.00000 L
323.20800 171.00000 L
325.08000 176.68800 L
345.88800 176.68800 L
351.57600 171.00000 L
357.19200 171.00000 L
362.88000 176.68800 L
379.87200 176.68800 L
385.56000 171.00000 L
391.24800 171.00000 L
396.93600 176.68800 L
414.07200 176.68800 L
@c
B
@rax %Note: Object
267.40800 114.33600 318.45600 182.37600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
/$fm 0 def
318.45600 182.37600 m
301.10400 130.75200 L
307.00800 130.75200 L
301.39200 114.33600 L
267.40800 114.33600 L
284.40000 165.31200 L
278.71200 165.31200 L
318.45600 182.37600 L
@c
278.71200 165.31200 m
284.40000 182.37600 L
318.45600 182.37600 L
@c
F
@rax %Note: Object
267.40800 114.33600 318.45600 182.37600 @E
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
318.45600 182.37600 m
301.10400 130.75200 L
307.00800 130.75200 L
301.39200 114.33600 L
267.40800 114.33600 L
284.40000 165.31200 L
278.71200 165.31200 L
@c
278.71200 165.31200 m
284.40000 182.37600 L
318.45600 182.37600 L
@c
S
@rax %Note: Object
274.96800 120.02400 310.89600 176.68800 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
297.64800 120.02400 m
299.52000 125.64000 L
293.83200 125.64000 L
310.89600 176.68800 L
287.28000 176.68800 L
285.33600 171.00000 L
291.96000 171.00000 L
274.96800 120.02400 L
297.64800 120.02400 L
@c
B
@rax %Note: Object
299.52000 190.87200 320.32800 207.86400 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
316.51200 193.68000 m
320.32800 205.05600 L
318.45600 207.86400 L
307.08000 207.86400 L
303.33600 205.05600 L
299.52000 193.68000 L
301.46400 190.87200 L
312.84000 190.87200 L
316.51200 193.68000 L
@c
B
%%PageTrailer
@rs
@rs
%%Trailer
@EndSysCorelDict
end
%%DocumentSuppliedResources: procset wCorel11Dict 11.0 0
%%EOF

View File

@ -0,0 +1,830 @@
===============================================================================
= V ä l k o m m e n t i l l h a n d l e d n i n g e n i V i m - Ver. 1.5 =
===============================================================================
Vim är en väldigt kraftfull redigerare som har många kommandon, alltför
många att förklara i en handledning som denna. Den här handledningen är
gjord för att förklara tillräckligt många kommandon så att du enkelt ska
kunna använda Vim som en redigerare för alla ändamål.
Den beräknade tiden för att slutföra denna handledning är 25-30 minuter,
beroende på hur mycket tid som läggs ned på experimentering.
Kommandona i lektionerna kommer att modifiera texten. Gör en kopia av den
här filen att öva på (om du startade "vimtutor är det här redan en kopia).
Det är viktigt att komma ihåg att den här handledningen är konstruerad
att lära vid användning. Det betyder att du måste köra kommandona för att
lära dig dem ordentligt. Om du bara läser texten så kommer du att glömma
kommandona!
Försäkra dig nu om att din Caps-Lock tangent INTE är aktiv och tryck på
j-tangenten tillräckligt många gånger för att förflytta markören så att
Lektion 1.1 fyller skärmen helt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.1: FLYTTA MARKÖREN
** För att flytta markören, tryck på tangenterna h,j,k,l som indikerat. **
^
k Tips:
< h l > h-tangenten är till vänster och flyttar till vänster.
j l-tangenten är till höger och flyttar till höger.
v j-tangenten ser ut som en pil ned.
1. Flytta runt markören på skärmen tills du känner dig bekväm.
2. Håll ned tangenten pil ned (j) tills att den repeterar.
---> Nu vet du hur du tar dig till nästa lektion.
3. Flytta till Lektion 1.2, med hjälp av ned tangenten.
Notera: Om du är osäker på någonting du skrev, tryck <ESC> för att placera dig
dig i Normal-läge. Skriv sedan om kommandot.
Notera: Piltangenterna borde också fungera. Men om du använder hjkl så kommer
du att kunna flytta omkring mycket snabbare, när du väl vant dig vid
det.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.2: STARTA OCH AVSLUTA VIM
!! NOTERA: Innan du utför någon av punkterna nedan, läs hela lektionen!!
1. Tryck <ESC>-tangenten (för att se till att du är i Normal-läge).
2. Skriv: :q! <ENTER>.
---> Detta avslutar redigeraren UTAN att spara några ändringar du gjort.
Om du vill spara ändringarna och avsluta skriv:
:wq <ENTER>
3. När du ser skal-prompten, skriv kommandot som tog dig in i den här
handledningen. Det kan vara: vimtutor <ENTER>
Normalt vill du använda: vim tutor <ENTER>
---> 'vim' betyder öppna redigeraren vim, 'tutor' är filen du vill redigera.
4. Om du har memorerat dessa steg och känner dig självsäker, kör då stegen
1 till 3 för att avsluta och starta om redigeraren. Flytta sedan ned
markören till Lektion 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.3: TEXT REDIGERING - BORTTAGNING
** När du är i Normal-läge tryck x för att ta bort tecknet under markören. **
1. Flytta markören till raden nedan med markeringen --->.
2. För att rätta felen, flytta markören tills den står på tecknet som ska
tas bort. fix the errors, move the cursor until it is on top of the
3. Tryck på x-tangenten för att ta bort det felaktiga tecknet.
4. Upprepa steg 2 till 4 tills meningen är korrekt.
---> Kkon hoppadee övverr måånen.
5. Nu när raden är korrekt, gå till Lektion 1.4.
NOTERA: När du går igenom den här handledningen, försök inte att memorera, lär
genom användning.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.4: TEXT REDIGERING - INFOGNING
** När du är i Normal-läge tryck i för att infoga text. **
1. Flytta markören till den första raden nedan med markeringen --->.
2. För att göra den första raden likadan som den andra, flytta markören till
det första tecknet EFTER där text ska infogas.
3. Tryck i och skriv in det som saknas.
4. När du rättat ett fel tryck <ESC> för att återgå till Normal-läge.
Upprepa steg 2 till 4 för att rätta meningen.
---> Det sakns här .
---> Det saknas lite text från den här raden.
5. När du känner dig bekväm med att infoga text, gå till sammanfattningen
nedan.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 1 SAMMANFATTNING
1. Markören flyttas genom att använda piltangenterna eller hjkl-tangenterna.
h (vänster) j (ned) k (upp) l (höger)
2. För att starta Vim (från %-prompten) skriv: vim FILNAMN <ENTER>
3. För att avsluta Vim skriv: <ESC> :q! <ENTER> för att kasta ändringar.
ELLER skriv: <ESC> :wq <ENTER> för att spara ändringar.
4. För att ta bort tecknet under markören i Normal-läge skriv: x
5. För att infoga text vid markören i Normal-läge skriv:
i skriv in text <ESC>
NOTERA: Genom att trycka <ESC> kommer du att placeras i Normal-läge eller
avbryta ett delvis färdigskrivet kommando.
Fortsätt nu med Lektion 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1: BORTTAGNINGSKOMMANDON
** Skriv dw för att radera till slutet av ett ord. **
1. Tryck <ESC> för att försäkra dig om att du är i Normal-läge.
2. Flytta markören till raden nedan markerad --->.
3. Flytta markören till början av ett ord som måste raderas.
4. Skriv dw för att radera ordet.
NOTERA: Bokstäverna dw kommer att synas på den sista raden på skärmen när
du skriver dem. Om du skrev något fel, tryck <ESC> och börja om.
---> Det är ett några ord roliga att som inte hör hemma i den här meningen.
5. Upprepa stegen 3 och 4 tills meningen är korrekt och gå till Lektion 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.2: FLER BORTTAGNINGSKOMMANDON
** Skriv d$ för att radera till slutet på raden. **
1. Tryck <ESC> för att försäkra dig om att du är i Normal-läge.
2. Flytta markören till raden nedan markerad --->.
3. Flytta markören till slutet på den rätta raden (EFTER den första . ).
4. Skriv d$ för att radera till slutet på raden.
---> Någon skrev slutet på den här raden två gånger. den här raden två gånger.
5. Gå vidare till Lektion 2.3 för att förstå vad det är som händer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3: KOMMANDON OCH OBJEKT
Syntaxen för d raderingskommandot är följande:
[nummer] d objekt ELLER d [nummer] objekt
Var:
nummer - är antalet upprepningar av kommandot (valfritt, standard=1).
d - är kommandot för att radera.
objekt - är vad kommandot kommer att operera på (listade nedan).
En kort lista över objekt:
w - från markören till slutet av ordet, inklusive blanksteget.
e - från markören till slutet av ordet, EJ inklusive blanksteget.
$ - från markören till slutet på raden.
NOTERA: För den äventyrslystne, genom att bara trycka på objektet i
Normal-läge (utan kommando) så kommer markören att flyttas som
angivet i objektlistan.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.4: ETT UNDANTAG TILL 'KOMMANDO-OBJEKT'
** Skriv dd för att radera hela raden. **
På grund av hur vanligt det är att ta bort hela rader, valde upphovsmannen
till Vi att det skulle vara enklare att bara trycka d två gånger i rad för
att ta bort en rad.
1. Flytta markören till den andra raden i frasen nedan.
2. Skriv dd för att radera raden.
3. Flytta nu till den fjärde raden.
4. Skriv 2dd (kom ihåg: nummer-kommando-objekt) för att radera de två
raderna.
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.5: ÅNGRA-KOMMANDOT
** Skriv u för att ångra det senaste kommandona, U för att fixa en hel rad. **
1. Flytta markören till slutet av raden nedan markerad ---> och placera den
på det första felet.
2. Skriv x för att radera den första felaktiga tecknet.
3. Skriv nu u för att ångra det senaste körda kommandot.
4. Rätta den här gången alla felen på raden med x-kommandot.
5. Skriv nu U för att återställa raden till dess ursprungliga utseende.
6. Skriv nu u några gånger för att ångra U och tidigare kommandon.
7. Tryck nu CTRL-R (håll inne CTRL samtidigt som du trycker R) några gånger
för att upprepa kommandona (ångra ångringarna).
---> Fiixa felen ppå deen häär meningen och återskapa dem med ångra.
8. Det här är väldigt användbara kommandon. Gå nu vidare till
Lektion 2 Sammanfattning.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 2 SAMMANFATTNING
1. För att radera från markören till slutet av ett ord skriv: dw
2. För att radera från markören till slutet av en rad skriv: d$
3. För att radera en hel rad skriv: dd
4. Syntaxen för ett kommando i Normal-läge är:
[nummer] kommando objekt ELLER kommando [nummer] objekt
där:
nummer - är hur många gånger kommandot kommandot ska repeteras
kommando - är vad som ska göras, t.ex. d för att radera
objekt - är vad kommandot ska operera på, som t.ex. w (ord),
$ (till slutet av raden), etc.
5. För att ångra tidigare kommandon, skriv: u (litet u)
För att ångra alla tidigare ändringar på en rad skriv: U (stort U)
För att ångra ångringar tryck: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.1: KLISTRA IN-KOMMANDOT
** Skriv p för att klistra in den senaste raderingen efter markören. **
1. Flytta markören till den första raden i listan nedan.
2. Skriv dd för att radera raden och lagra den i Vims buffert.
3. Flytta markören till raden OVANFÖR där den raderade raden borde vara.
4. När du är i Normal-läge, skriv p för att byta ut raden.
5. Repetera stegen 2 till 4 för att klistra in alla rader i rätt ordning.
d) Kan du lära dig också?
b) Violetter är blå,
c) Intelligens fås genom lärdom,
a) Rosor är röda,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.2: ERSÄTT-KOMMANDOT
** Skriv r och ett tecken för att ersätta tecknet under markören. **
1. Flytta markören till den första raden nedan markerad --->.
2. Flytta markören så att den står på det första felet.
3. Skriv r och sedan det tecken som borde ersätta felet.
4. Repetera steg 2 och 3 tills den första raden är korrekt.
---> När drn här ruden skrevs, trickte någon på fil knappar!
---> När den här raden skrevs, tryckte någon på fel knappar!
5. Gå nu vidare till Lektion 3.2.
NOTERA: Kom ihåg att du skall lära dig genom användning, inte genom memorering.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.3: ÄNDRA-KOMMANDOT
** För att ändra en del eller ett helt ord, skriv cw . **
1. Flytta markören till den första redan nedan markerad --->.
2. Placera markören på d i rdrtn.
3. Skriv cw och det rätta ordet (i det här fallet, skriv "aden".)
4. Tryck <ESC> och flytta markören till nästa fel (det första tecknet som
ska ändras.)
5. Repetera steg 3 och 4 tills den första raden är likadan som den andra.
---> Den här rdrtn har några otf som brhotrt ändras mrf ändra-komjendit.
---> Den här raden har några ord som behöver ändras med ändra-kommandot.
Notera att cw inte bara ändrar ordet, utan även placerar dig i infogningsläge.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.4: FLER ÄNDRINGAR MED c
** Ändra-kommandot används på samma objekt som radera. **
1. Ändra-kommandot fungerar på samma sätt som radera. Syntaxen är:
[nummer] c objekt ELLER c [nummer] objekt
2. Objekten är också de samma, som t.ex. w (ord), $ (slutet av raden), etc.
3. Flytta till den första raden nedan markerad -->.
4. Flytta markören till det första felet.
5. Skriv c$ för att göra resten av raden likadan som den andra och tryck
<ESC>.
---> Slutet på den här raden behöver hjälp med att få den att likna den andra.
---> Slutet på den här raden behöver rättas till med c$-kommandot.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 3 SAMMANFATTNING
1. För att ersätta text som redan har blivit raderad, skriv p .
Detta klistrar in den raderade texten EFTER markören (om en rad raderades
kommer den att hamna på raden under markören.
2. För att ersätta tecknet under markören, skriv r och sedan tecknet som
kommer att ersätta orginalet.
3. Ändra-kommandot låter dig ändra det angivna objektet från markören till
slutet på objektet. eg. Skriv cw för att ändra från markören till slutet
på ordet, c$ för att ändra till slutet på en rad.
4. Syntaxen för ändra-kommandot är:
[nummer] c objekt ELLER c [nummer] objekt
Gå nu till nästa lektion.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.1: POSITION OCH FILSTATUS
** Tryck CTRL-g för att visa din position i filen och filstatusen.
Tryck SHIFT-G för att flytta till en rad i filen. **
Notera: Läsa hela den lektion innan du utför något av stegen!!
1. Håll ned Ctrl-tangenten och tryck g . En statusrad med filnamn och raden
du befinner dig på kommer att synas. Kom ihåg radnummret till Steg 3.
2. Tryck shift-G för att flytta markören till slutet på filen.
3. Skriv in nummret på raden du var på och tryck sedan shift-G. Detta kommer
att ta dig tillbaka till raden du var på när du först tryckte Ctrl-g.
(När du skriver in nummren, kommer de INTE att visas på skärmen.)
4. Om du känner dig säker på det här, utför steg 1 till 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.2: SÖK-KOMMANDOT
** Skriv / följt av en fras för att söka efter frasen. **
1. I Normal-läge skriv /-tecknet. Notera att det och markören blir synlig
längst ned på skärmen precis som med :-kommandot.
2. Skriv nu "feeel" <ENTER>. Det här är ordet du vill söka efter.
3. För att söka efter samma fras igen, tryck helt enkelt n .
För att söka efter samma fras igen i motsatt riktning, tryck Shift-N .
4. Om du vill söka efter en fras bakåt i filen, använd kommandot ? istället
för /.
---> "feeel" är inte rätt sätt att stava fel: feeel är ett fel.
Notera: När sökningen når slutet på filen kommer den att fortsätta vid början.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.3: SÖKNING EFTER MATCHANDE PARENTESER
** Skriv % för att hitta en matchande ),], or } . **
1. Placera markören på någon av (, [, or { på raden nedan markerad --->.
2. Skriv nu %-tecknet.
3. Markören borde vara på den matchande parentesen eller hakparentesen.
4. Skriv % för att flytta markören tillbaka till den första hakparentesen
(med matchning).
---> Det ( här är en testrad med (, [ ] och { } i den. ))
Notera: Det här är väldigt användbart vid avlusning av ett program med icke
matchande parenteser!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.4: ETT SÄTT ATT ÄNDRA FEL
** Skriv :s/gammalt/nytt/g för att ersätta "gammalt" med "nytt". **
1. Flytta markören till raden nedan markerad --->.
2. Skriv :s/denn/den <ENTER> . Notera att det här kommandot bara ändrar den
första förekomsten på raden.
3. Skriv nu :s/denn/den/g vilket betyder ersätt globalt på raden.
Det ändrar alla förekomster på raden.
---> denn bästa tiden att se blommor blomma är denn på våren.
4. För att ändra alla förekomster av en teckensträng mellan två rader,
skriv :#,#s/gammalt/nytt/g där #,# är de två radernas radnummer.
Skriv :%s/gammtl/nytt/g för att ändra varje förekomst i hela filen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 4 SAMMANFATTNING
1. Ctrl-g visar din position i filen och filstatusen.
Shift-G flyttar till slutet av filen. Ett radnummer följt Shift-G
flyttar till det radnummret.
2. Skriver man / följt av en fras söks det FRAMMÅT efter frasen.
Skriver man ? följt av en fras söks det BAKÅT efter frasen.
Efter en sökning skriv n för att hitta nästa förekomst i samma riktning
eller Shift-N för att söka i den motsatta riktningen.
3. Skriver man % när markören är på ett (,),[,],{, eller } hittas dess
matchande par.
4. För att ersätta den första gammalt med nytt på en rad skriv :s/gammlt/nytt
För att ersätta alla gammlt med nytt på en rad skriv :s/gammlt/nytt/g
För att ersätta fraser mellan rad # och rad # skriv :#,#s/gammlt/nytt/g
För att ersätta alla förekomster i filen skriv :%s/gammlt/nytt/g
För att bekräfta varje gång lägg till "c" :%s/gammlt/nytt/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.1: HUR MAN KÖR ETT EXTERNT KOMMANDO
** Skriv :! följt av ett externt kommando för att köra det kommandot. **
1. Skriv det välbekanta kommandot : för att placera markören längst ned
på skärmen på skärmen. Detta låter dig skriva in ett kommando.
2. Skriv nu ! (utropstecken). Detta låter dig köra ett godtyckligt externt
skalkommando.
3. Som ett exempel skriv ls efter ! och tryck sedan <ENTER>. Detta kommer
att visa dig en listning av din katalog, precis som om du kört det vid
skalprompten. Använd :!dir om ls inte fungerar.
Notera: Det är möjligt att köra vilket externt kommando som helst på det här
sättet.
Notera: Alla :-kommandon måste avslutas med att trycka på <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.2: MER OM ATT SPARA FILER
** För att spara ändringar gjorda i en fil, skriv :w FILNAMN. **
1. Skriv :!dir eller :!ls för att få en listning av din katalog.
Du vet redan att du måste trycka <ENTER> efter det här.
2. Välj ett filnamn som inte redan existerar, som t.ex. TEST.
3. Skriv nu: :w TEST (där TEST är filnamnet du valt.)
4. Det här sparar hela filen (Vim handledningen) under namnet TEST.
För att verifiera detta, skriv :!dir igen för att se din katalog
Notera: Om du skulle avsluta Vim och sedan öppna igen med filnamnet TEST så
skulle filen vara en exakt kopia av handledningen när du sparade den.
5. Ta nu bort filen genom att skriva (MS-DOS): :!del TEST
eller (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.3: ETT SELEKTIVT SPARA-KOMMANDO
** För att spara en del av en fil, skriv :#,# w FILNAMN **
1. Ännu en gång, skriv :!dir eller :!ls för att få en listning av din
katalog och välj ett passande filnamn som t.ex. TEST.
2. Flytta markören högst upp på den här sidan och tryck Ctrl-g för att få
reda på radnumret på den raden. KOM IHÅG DET NUMMRET!
3. Flytta nu längst ned på sidan och skriv Ctrl-g igen.
KOM IHÅG DET RADNUMMRET OCKSÅ!
4. För att BARA spara en sektion till en fil, skriv :#,# w TEST
där #,# är de två nummren du kom ihåg (toppen, botten) och TEST är
ditt filnamn.
5. Ännu en gång, kolla så att filen är där med :!dir men radera den INTE.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.4: TA EMOT OCH FÖRENA FILER
** För att infoga innehållet av en fil, skriv :r FILNAMN **
1. Skriv :!dir för att försäkra dig om att TEST-filen från tidigare
fortfarande är kvar.
2. Placera markören högst upp på den här sidan.
NOTERA: Efter att du kört Steg 3 kommer du att se Lektion 5.3.
Flytta då NED till den här lektionen igen.
3. Ta nu emot din TEST-fil med kommandot :r TEST där TEST är namnet på
filen.
NOTERA: Filen du tar emot placeras där markören är placerad.
4. För att verifiera att filen togs emot, gå tillbaka och notera att det nu
finns två kopior av Lektion 5.3, orginalet och filversionen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 5 SAMMANFATTNING
1. :!kommando kör ett externt kommando.
Några användbara exempel är:
(MS-DOS) (Unix)
:!dir :!ls - visar en kataloglistning.
:!del FILNAMN :!rm FILNAMN - tar bort filen FILNAMN.
2. :w FILNAMN sparar den aktuella Vim-filen med namnet FILNAMN.
3. :#,#w FILNAMN sparar raderna # till # i filen FILNAMN.
4. :r FILNAMN tar emot filen FILNAMN och infogar den i den aktuella filen
efter markören.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.1: ÖPPNA-KOMMANDOT
** Skriv o för att öppna en rad under markören och placera dig i
Infoga-läge. **
1. Flytta markören till raden nedan markerad --->.
2. Skriv o (litet o) för att öppna upp en rad NEDANFÖR markören och placera
dig i Infoga-mode.
3. Kopiera nu raden markerad ---> och tryck <ESC> för att avsluta
Infoga-läget.
---> Efter du skrivit o placerad markören på en öppen rad i Infoga-läge.
4. För att öppna upp en rad OVANFÖR markören, skriv ett stort O , istället
för ett litet o. Pröva detta på raden nedan.
Öppna upp en rad ovanför denna genom att trycka Shift-O när markören står här.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.2: LÄGG TILL-KOMMANDOT
** Skriv a för att infoga text EFTER markören. **
1. Flytta markören till slutet av den första raden nedan markerad ---> genom
att skriv $ i Normal-läge.
2. Skriv ett a (litet a) för att lägga till text EFTER tecknet under
markören. (Stort A lägger till i slutet av raden.)
Notera: Detta undviker att behöva skriva i , det sista tecknet, texten att
infoga, <ESC>, högerpil, och slutligen, x, bara för att lägga till i
slutet på en rad!
3. Gör nu färdigt den första raden. Notera också att lägga till är likadant
som Infoga-läge, enda skillnaden är positionen där texten blir infogad.
---> Här kan du träna
---> Här kan du träna på att lägga till text i slutet på en rad.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.3: EN ANNAN VERSION AV ERSÄTT
** Skriv ett stort R för att ersätta fler än ett tecken. **
1. Flytta markören till den första raden nedan markerad --->.
2. Placera markören vid början av det första ordet som är annorlunda jämfört
med den andra raden markerad ---> (ordet "sista").
3. Skriv nu R och ersätt resten av texten på den första raden genom att
skriva över den gamla texten så att den första raden blir likadan som
den andra.
---> För att få den första raden lika som den sista, använd tangenterna.
---> För att få den första raden lika som den andra, skriv R och den nya texten.
4. Notera att när du trycker <ESC> för att avsluta, så blir eventuell
oförändrad text kvar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.4: SÄTT FLAGGOR
** Sätt en flagga så att en sökning eller ersättning ignorerar storlek **
1. Sök efter "ignore" genom att skriva:
/ignore
Repetera flera gånger genom att trycka på n-tangenten
2. Sätt 'ic' (Ignore Case) flaggan genom att skriva:
:set ic
3. Sök nu efter "ignore" igen genom att trycka: n
Repeat search several more times by hitting the n key
4. Sätt 'hlsearch' and 'incsearch' flaggorna:
:set hls is
5. Skriv nu in sök-kommandot igen, och se vad som händer:
/ignore
6. För att ta bort framhävningen av träffar, skriv
:nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 6 SAMMANFATTNING
1. Genom att skriva o öpnnas en rad NEDANFÖR markören och markören placeras
på den öppna raden i Infoga-läge.
Genom att skriva ett stort O öppnas raden OVANFÖR raden som markören är
på.
2. Skriv ett a för att infoga text EFTER tecknet som markören står på.
Genom att skriva ett stort A läggs text automatiskt till i slutet på
raden.
3. Genom att skriva ett stort R hamnar du i Ersätt-läge till <ESC> trycks
för att avsluta.
4. Genom att skriva ":set xxx" sätts flaggan "xxx"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 7: ON-LINE HJÄLP-KOMMANDON
** Använd on-line hjälpsystemet **
Vim har ett omfattande on-line hjälpsystem. För att komma igång pröva ett av
dessa tre:
- tryck <HELP> tangenten (om du har någon)
- tryck <F1> tangenten (om du har någon)
- skriv :help <ENTER>
Skriv :q <ENTER> för att stränga hjälpfönstret.
Du kan hitta hjälp om nästan allting, genom att ge ett argument till
":help" kommandot. Pröva dessa (glöm inte att trycka <ENTER>):
:help w
:help c_<T
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 8: SKAPA ETT UPPSTARTSSKRIPT
** Aktivera Vim- funktioner **
Vim har många fler funktioner än Vi, men de flesta av dem är inaktiverade som
standard. För att börja använda fler funktioner måste du skapa en "vimrc"-fil.
1. Börja redigera "vimrc"-filen, detta beror på ditt system:
:edit ~/.vimrc för Unix
:edit $VIM/_vimrc för MS-Windows
2. Läs nu texten i exempel "vimrc"-filen:
:read $VIMRUNTIME/vimrc_example.vim
3. Spara filen med:
:write
Nästa gång du startar Vim kommer den att använda syntaxframhävning.
Du kan lägga till alla inställningar du föredrar till den här "vimrc"-filen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Detta avslutar handledningen i Vim. Den var avsedd att ge en kort översikt av
redigeraren Vim, bara tillräckligt för att du ska kunna använda redigeraren
relativt enkelt. Den är långt ifrån komplett eftersom Vim har många många fler
kommandon. Läs användarmanualen härnäst: ":help user-manual".
För vidare läsning rekommenderas den här boken:
Vim - Vi Improved - av Steve Oualline
Förlag: New Riders
Den första boken som är endast behandlar Vim. Speciellt användbar för
nybörjare. Det finns många exempel och bilder.
Se http://iccf-holland.org/click5.html
Den här boken är äldre och behandlar mer Vi än Vim, men rekommenderas också:
Learning the Vi Editor - av Linda Lamb
Förlag: O'Reilly & Associates Inc.
Det är en bra bok för att lära sig nästan allt som du vill kunna göra med Vi.
Den sjätte upplagan inkluderar också information om Vim.
Den här handledningen är skriven av Michael C. Pierce och Robert K. Ware,
Colorado School of Mines med idéer från Charles Smith,
Colorado State University. E-post: bware@mines.colorado.edu.
Modifierad för Vim av Bram Moolenaar.
Översatt av Johan Svedberg <johan@svedberg.com>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -0,0 +1,812 @@
===============================================================================
= Xin chào mừng bạn đến với Hướng dẫn dùng Vim - Phiên bản 1.5 =
===============================================================================
Vim là một trình soạn thảo rất mạnh. Vim có rất nhiều câu lệnh,
chính vì thế không thể trình bày hết được trong cuốn hướng dẫn này.
Cuốn hướng dẫn chỉ đưa ra những câu lệnh để giúp bạn sử dụng Vim
được dễ dàng hơn. Đây cũng chính là mục đich của sách
Cần khoảng 25-30 phút để hoàn thành bài học, phụ thuộc vào thời
gian thực hành.
Các câu lệnh trong bài học sẽ thay đổi văn bản này. Vì thế hãy tạo
một bản sao của tập tin này để thực hành (nếu bạn dùng "vimtutor"
thì đây đã là bản sao).
Hãy nhớ rằng hướng dẫn này viết với nguyên tắc "học đi đôi với hành".
Có nghĩa là bạn cần chạy các câu lệnh để học chúng. Nếu chỉ đọc, bạn
sẽ quên các câu lệnh!
Bây giờ, cần chắc chắn là phím Shift KHÔNG bị nhấn và hãy nhấn phím
j đủ số lần cần thiết (di chuyển con trỏ) để Bài 1.1 hiện ra đầy đủ
trên màn hình.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.1: DI CHUYỂN CON TRỎ
** Để di chuyển con trỏ, nhấn các phím h,j,k,l như đã chỉ ra. **
^
k Gợi ý: phím h ở phía trái và di chuyển sang trái.
< h l > phím l ở bên phải và di chuyển sang phải.
j phím j trong như một mũi tên chỉ xuống
v
1. Di chuyển con trỏ quanh màn hình cho đến khi bạn quen dùng.
2. Nhấn và giữ phím (j) cho đến khi nó lặp lại.
---> Bây giờ bạn biết cách chuyển tới bài học thứ hai.
3. Sử dụng phím di chuyển xuống bài 1.2.
Chú ý: Nếu bạn không chắc chắn về những gì đã gõ, hãy nhấn <ESC> để chuyển vào
chế độ Câu lệnh, rồi gõ lại những câu lệnh mình muốn.
Chú ý: Các phím mũi tên cũng làm việc. Nhưng một khi sử dụng thành thạo hjkl,
bạn sẽ di chuyển con trỏ nhanh hơn so với các phím mũi tên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.2: VÀO VÀ THOÁT VIM
!! CHÚ Ý: Trước khi thực hiện bất kỳ lệnh nào, xin hãy đọc cả bài học này!!
1. Nhấn phím <ESC> (để chắc chắn là bạn đang ở chế độ Câu lệnh).
2. Gõ: :q! <ENTER>.
---> Lệnh này sẽ thoát trình soạn thảo mà KHÔNG ghi nhớ bất kỳ thay đổi nào mà bạn đã làm.
Nếu bạn muốn ghi nhớ những thay đổi đó và thoát thì hãy gõ:
:wq <ENTER>
3. Khi thấy dấu nhắc shell, hãy gõ câu lệnh đã đưa bạn tới hướng dẫn này. Có
thể là lệnh: vimtutor vi <ENTER>
Thông thường bạn dùng: vim tutor.vi<ENTER>
---> 'vim' là trình soạn thảo vim, 'tutor.vi' là tập tin bạn muốn soạn thảo.
4. Nếu bạn đã nhớ và nắm chắc những câu lệnh trên, hãy thực hiện các bước từ
1 tới 3 để thoát và quay vào trình soạn thảo. Sau đó di chuyển con trỏ
tới Bài 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.3: SOẠN THẢO VĂN BẢN - XÓA
** Trong chế độ Câu lệnh nhấn x để xóa ký tự nằm dưới con trỏ. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Để sửa lỗi, di chuyển con trỏ để nó nằm trên ký tự sẽ bị
xóa.
3. Nhấn phím x để xóa ký tự không mong muốn.
4. Lặp lại các bước từ 2 tới 4 để sửa lại câu.
---> Emm xiinh em đứnng chỗ nào cũnkg xinh.
5. Câu trên đã sửa xong, hãy chuyển tới Bài 1.4.
Chú ý: Khi học theo cuốn hướng dẫn này đừng cố nhớ, mà học từ thực hành.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.4: SOẠN THẢO VĂN BẢN - CHÈN
** Trong chế độ Câu lệnh nhấn i để chèn văn bản. **
1. Di chuyển con trỏ tới dòng có dấu ---> đầu tiên.
2. Để dòng thứ nhất giống hệt với dòng thứ hai, di chuyển con trỏ lên ký tự
đầu tiên NGAY SAU chỗ muốn chèn văn bản.
3. Nhấn i và gõ văn bản cần thêm.
4. Sau mỗi lần chèn từ còn thiếu nhấn <ESC> để trở lại chế dộ Câu lệnh.
Lặp lại các bước từ 2 tới 4 để sửa câu này.
---> Mot lam chang nen , ba cay chum lai hon cao.
---> Mot cay lam chang nen non, ba cay chum lai nen hon nui cao.
5. Sau khi thấy quen với việc chèn văn bản hãy chuyển tới phần tổng kết
ở dưới.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 1
1. Con trỏ được di chuyển bởi các phím mũi tên hoặc các phím hjkl.
h (trái) j (xuống) k (lên) l (phải)
2. Để vào Vim (từ dấu nhắc %) gõ: vim TÊNTẬPTIN <ENTER>
3. Muốn thoát Vim gõ: <ESC> :q! <ENTER> để vứt bỏ mọi thay đổi.
HOẶC gõ: <ESC> :wq <ENTER> để ghi nhớ thay đổi.
4. Để xóa bỏ ký tự nằm dưới con trỏ trong chế độ Câu lệnh gõ: x
5. Để chèn văn bản tại vị trí con trỏ trong chế độ Câu lệnh gõ:
i văn bản sẽ nhập <ESC>
CHÚ Ý: Nhấn <ESC> sẽ đưa bạn vào chế độ Câu lệnh hoặc sẽ hủy bỏ một câu lệnh
hay đoạn câu lệnh không mong muốn.
Bây giờ chúng ta tiếp tục với Bài 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.1: CÁC LỆNH XÓA
** Gõ dw để xóa tới cuối một từ. **
1. Nhấn <ESC> để chắc chắn là bạn đang trong chế độ Câu lệnh.
2. Di chuyển con trỏ tới dòng có dấu --->.
3. Di chuyển con trỏ tới ký tự đầu của từ cần xóa.
4. Gõ dw để làm từ đó biến mất.
CHÚ Ý: các ký tự dw sẽ xuất hiện trên dòng cuối cùng của màn hình khi bạn gõ
chúng. Nếu bạn gõ nhầm, hãy nhấn <ESC> và làm lại từ đầu.
---> Khi trái tỉm tìm tim ai như mùa đông giá lạnh lanh
Anh đâu thành cánh én nhỏ trùng khơi.
5. Lặp lại các bước cho đến khi sửa xong câu thơ rồi chuyển tới Bài 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.2: CÁC CÂU LỆNH XÓA KHÁC
** gõ d$ để xóa tới cuối một dòng. **
1. Nhấn <ESC> để chắc chắn là bạn đang trong chế độ Câu lệnh.
2. Di chuyển con trỏ tới dòng có dấu --->.
3. Di chuyển con trỏ tới cuối câu đúng (SAU dấu . đầu tiên).
4. Gõ d$ để xóa tới cuối dòng.
---> Đã qua đi những tháng năm khờ dại. thừa thãi.
5. Chuyển tới Bài 2.3 để hiểu cái gì đang xảy ra.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.3: CÂU LỆNH VÀ ĐỐI TƯỢNG
Câu lệnh xóa d có dạng như sau:
[số] d đối_tượng HOẶC d [số] đối_tượng
Trong đó:
số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
d - là câu lệnh xóa.
đối_tượng - câu lệnh sẽ thực hiện trên chúng (liệt kê phía dưới).
Danh sách ngắn của đối tượng:
w - từ con trỏ tới cuối một từ, bao gồm cả khoảng trắng.
e - từ con trỏ tới cuối một từ, KHÔNG bao gồm khoảng trắng.
$ - từ con trỏ tới cuối một dòng.
CHÚ Ý: Dành cho những người ham tìm hiểu, chỉ nhấn đối tượng trong chế độ Câu
lệnh mà không có câu lệnh sẽ di chuyển con trỏ như trong danh sách trên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.4: TRƯỜNG HỢP NGOẠI LỆ CỦA QUY LUẬT 'CÂU LỆNH-ĐỐI TƯỢNG'
** Gõ dd để xóa cả một dòng. **
Người dùng thường xuyên xóa cả một dòng, vì thế các nhà phát triển Vi đã
quyết định dùng hai chữ d để đơn giản hóa thao tác này.
1. Di chuyển con trỏ tới dòng thứ hai trong cụm phía dưới.
2. Gõ dd để xóa dòng này.
3. Bây giờ di chuyển tới dòng thứ tư.
4. Gõ 2dd (hãy nhớ lại bộ ba số-câu lệnh-đối tượng) để xóa hai dòng.
1) Trong tim em khắc sâu bao kỉ niệm
2) Tình yêu chân thành em dành cả cho anh
3) Dẫu cuộc đời như bể dâu thay đổi
4) Anh mãi là ngọn lửa ấm trong đêm
5) Đã qua đi những tháng năm khờ dại
7) Hãy để tự em lau nước mắt của mình
8) Lặng lẽ sống những đêm dài bất tận
9) Bao khổ đau chờ tia nắng bình minh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.5: CÂU LỆNH "HỦY THAO TÁC"
** Nhấn u để hủy bỏ những câu lệnh cuối cùng, U để sửa cả một dòng. **
1. Di chuyển con trỏ tới dòng có dấu ---> và đặt con trỏ trên từ có lỗi
đầu tiên
2. Gõ x để xóa chữ cái gây ra lỗi đầu tiên.
3. Bây giờ gõ u để hủy bỏ câu lệnh vừa thự hiện (xóa chữ cái).
4. Dùng câu lệnh x để sửa lỗi cả dòng này.
5. Bây giờ gõ chữ U hoa để phục hồi trạng thái ban đầu của dòng.
6. Bây giờ gõ u vài lần để hủy bỏ câu lệnh U và các câu lệnh trước.
7. Bây giờ gõ CTRL-R (giữ phím CTRL và gõ R) và lầu để thực hiện
lại các câu lệnh (hủy bỏ các câu lệnh hủy bỏ).
---> Câyy ccó cộii, nuước csó nguuồn.
8. Đây là những câu lệnh rất hữu ích. Bây giờ chuyển tới Tổng kết Bài 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 2
1. Để xóa từ con trỏ tới cuối một từ gõ: dw
2. Để xóa từ con trỏ tới cuối một dòng gõ: d$
3. Để xóa cả một dòng gõ: dd
4. Một câu lệnh trong chế độ Câu lệnh có dạng:
[số] câu_lệnh đối_tượng HOẶC câu_lệnh [số] đối_tượng
trong đó:
số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
câu_lệnh - là những gì thực hiện, ví dụ d dùng để xóa.
đối_tượng - câu lệnh sẽ thực hiện trên chúng, ví dụ w (từ),
$ (tới cuối một dòng), v.v...
5. Để hủy bỏ thao tác trước, gõ: u (chữ u thường)
Để hủy bỏ tất cả các thao tác trên một dòng, gõ: U (chữ U hoa)
Để hủy bỏ các câu lệnh hủy bỏ, gõ: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.1: CÂU LỆNH DÁN
** Gõ p để dán những gì vừa xóa tới sau con trỏ. **
1. Di chuyển con trỏ tới dòng đầu tiên trong cụm ở dưới.
2. Gõ dd để xóa và ghi lại một dòng trong bộ nhớ đệm của Vim.
3. Di chuyển con trỏ tới dòng Ở TRÊN chỗ cần dán.
4. Trong chế độ Câu lệnh, gõ p để thay thế dòng.
5. Lặp lại các bước từ 2 tới 4 để đặt các dòng theo đúng thứ tự của chúng.
d) Niềm vui như gió xưa bay nhè nhẹ
b) Em vẫn mong anh sẽ đến với em
c) Đừng để em mất đi niềm hy vọng đó
a) Ai sẽ giúp em vượt qua sóng gió
e) Dễ ra đi khó giữ lại bên mình
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.2: CÂU LỆNH THAY THẾ
** Gõ r và một ký tự để thay thế ký tự nằm dưới con trỏ. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Di chuyển con trỏ tới ký tự gõ sai đầu tiên.
3. Gõ r và ký tự đúng.
4. Lặp lại các bước từ 2 đến 4 để sửa cả dòng.
---> "Trên đời nài làm gì có đườmg, người to đi mãi rồi thànk đường là tHôi"
---> "Trên đời này làm gì có đường, người ta đi mãi rồi thành đường mà thôi"
5. Bây giờ chuyển sang Bài 3.3.
CHÚ Ý: Hãy nhớ rằng bạn cần thực hành, không nên "học vẹt".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.3: CÂU LỆNH THAY ĐỔI
** Để thay đổi một phần hay cả một từ, gõ cw . **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Đặt con trỏ trên chữ trong.
3. Gõ cw và sửa lại từ (trong trường hợp này, gõ 'ine'.)
4. Gõ <ESC> và chuyển tới lỗi tiếp theo (chữ cái đầu tiên trong số cần thay.)
5. Lặp lại các bước 3 và 4 cho tới khi thu được dòng như dòng thứ hai.
---> Trên dùgn này có một dầy từ cần tyays đổi, sử dunk câu lệnh thay đổi.
---> Trên dong này có một vai từ cần thay đổi, sử dung câu lệnh thay đổi.
Chú ý rằng cw không chỉ thay đổi từ, nhưng còn đưa bạn vào chế độ chèn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.4: TIẾP TỤC THAY ĐỔI VỚI c
** Câu lệnh thay đổi được sử dụng với cùng đối tượng như câu lệnh xóa. **
1. Câu lệnh thay đổi làm việc tương tự như câu lệnh xóa. Định dạng như sau:
[số] c đối_tượng HOẶC c [số] đối_tượng
2. Đối tượng cũng giống như ở trên, ví dụ w (từ), $ (cuối dòng), v.v...
3. Di chuyển con trỏ tới dòng có dấu --->.
4. Di chuyển con trỏ tới dòng có lỗi đầu tiên.
5. Gõ c$ để sửa cho giống với dòng thứ hai và gõ <ESC>.
---> Doan cuoi dong nay can sua de cho giong voi dong thu hai.
---> Doan cuoi dong nay can su dung cau lenh c$ de sua.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 3
1. Để dán đoạn văn bản vừa xóa, gõ p. Câu lệnh này sẽ đặt đoạn văn bản này
PHÍA SAU con trỏ (nếu một dòng vừa bị xóa, dòng này sẽ được đặt vào dòng
nằm dưới con trỏ).
2. Để thay thế ký tự dưới con trỏ, gõ r và sau đó gõ
ký tự muốn thay vào.
3. Câu lệnh thay đổi cho phép bạn thay đổi đối tượng chỉ ra từ con
trỏ tới cuối đối tượng. vd. Gõ cw để thay đổi từ
con trỏ tới cuối một từ, c$ để thay đổi tới cuối một dòng.
4. Định dạng để thay đổi:
[số] c đối_tượng HOẶC c [số] đối_tượng
Bây giờ chúng ta tiếp tục bài học mới.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.1: THÔNG TIN VỀ TẬP TIN VÀ VỊ TRÍ TRONG TẬP TIN
** Gõ CTRL-g để hiển thị vị trí của bạn trong tập tin và thông tin về tập tin.
Gõ SHIFT-G để chuyển tới một dòng trong tập tin. **
Chú ý: Đọc toàn bộ bài học này trước khi thực hiện bất kỳ bước nào!!
1. Giữ phím Ctrl và nhấn g . Một dòng thông tin xuất hiện tại cuối trang
với tên tập tin và dòng mà bạn đang nằm trên. Hãy nhớ số dòng này
Cho bước số 3.
2. Nhấn shift-G để chuyển tới cuối tập tin.
3. Gõ số dòng mà bạn đã nằm trên và sau đó shift-G. Thao tác này sẽ đưa bạn
trở lại dòng mà con trỏ đã ở trước khi nhấn tổ hợp Ctrl-g.
(Khi bạn gõ số, chúng sẽ KHÔNG hiển thị trên màn hình.)
4. Nếu bạn cảm thấy đã hiểu rõ, hãy thực hiện các bước từ 1 tới 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.2: CÂU LỆNH TÌM KIẾM
** Gõ / và theo sau là cụm từ muốn tìm kiếm. **
1. Trong chế độ Câu lệnh gõ ký tự / .Chú ý rằng ký tự này và con trỏ sẽ
xuất hiện tại cuối màn hình giống như câu lệnh : .
2. Bây giờ gõ 'loiiiii' <ENTER>. Đây là từ bạn muốn tìm.
3. Để tìm kiếm cụm từ đó lần nữa, đơn giản gõ n .
Để tìm kiếm cụm từ theo hướng ngược lại, gõ Shift-N .
4. Nếu bạn muối tìm kiếm cụm từ theo hướng ngược lại đầu tập tin, sử dụng
câu lệnh ? thay cho /.
---> "loiiiii" là những gì không đúng lắm; loiiiii thường xuyên xảy ra.
Chú ý: Khi tìm kiếm đến cuối tập tin, việc tìm kiếm sẽ tiếp tục từ đầu
tập tin này.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.3: TÌM KIẾM CÁC DẤU NGOẶC SÁNH ĐÔI
** Gõ % để tìm kiếm ),], hay } . **
1. Đặt con trỏ trên bất kỳ một (, [, hay { nào trong dòng có dấu --->.
2. Bây giờ gõ ký tự % .
3. Con trỏ sẽ di chuyển đến dấu ngoặc tạo cặp (dấu đóng ngoặc).
4. Gõ % để chuyển con trỏ trở lại dấu ngoặc đầu tiên (dấu mở ngoặc).
---> Đây là ( một dòng thử nghiệm với các dấu ngoặc (, [ ] và { } . ))
Chú ý: Rất có ích khi sửa lỗi chương trình, khi có các lỗi thừa thiếu dấu ngoặc!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.4: MỘT CÁCH SỬA LỖI
** Gõ :s/cũ/mới/g để thay thế 'mới' vào 'cũ'. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Gõ :s/duou/ruou <ENTER> . Chú ý rằng câu lệnh này chỉ thay đổi từ tìm
thấy đầu tiên trên dòng (từ 'duou' đầu dòng).
3. Bây giờ gõ :s/duou/ruou/g để thực hiện thay thế trên toàn bộ dòng.
Lệnh này sẽ thay thế tất cả những từ ('duou') tìm thấy trên dòng.
---> duou ngon phai co ban hie. Khong duou cung khong hoa.
4. Để thay thế thực hiện trong đoạn văn bản giữa hai dòng,
gõ :#,#s/cũ/mới/g trong đó #,# là số thứ tự của hai dòng.
Gõ :%s/cũ/mới/g để thực hiện thay thế trong toàn bộ tập tin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 4
1. Ctrl-g vị trí của con trỏ trong tập tin và thông tin về tập tin.
Shift-G di chuyển con trỏ tới cuối tập tin. Số dòng và theo sau
là Shift-G di chuyển con trỏ tới dòng đó.
2. Gõ / và cụm từ theo sau để tìm kiếm cụm từ VỀ PHÍA TRƯỚC.
Gõ ? và cụm từ theo sau để tìm kiếm cụm từ NGƯỢC TRỞ LẠI.
Sau một lần tìm kiếm gõ n để tìm kiếm cụm từ lại một lần nữa theo hướng
đã tìm hoặc Shift-N để tìm kiếm theo hướng ngược lại.
3. Gõ % khi con trỏ nằm trên một (,),[,],{, hay } sẽ chỉ ra vị trí của
dấu ngoặc còn lại trong cặp.
4. Để thay thế 'mới' cho 'cũ' đầu tiên trên dòng, gõ :s/cũ/mới
Để thay thế 'mới' cho tất cả 'cũ' trên dòng, gõ :s/cũ/mới/g
Để thay thế giữa hai dòng, gõ :#,#s/cũ/mới/g
Để thay thế trong toàn bộ tập tin, gõ :%s/cũ/mới/g
Để chương trình hỏi lại trước khi thay thế, thêm 'c' :%s/cũ/mới/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.1: CÁCH THỰC HIỆN MỘT CÂU LỆNH NGOẠI TRÚ
** Gõ :! theo sau là một câu lệnh ngoại trú để thực hiện câu lệnh đó. **
1. Gõ câu lệnh quen thuộc : để đặt con trỏ tại cuối màn hình.
Thao tác này cho phép bạn nhập một câu lệnh.
2. Bây giờ gõ ký tự ! (chấm than). Ký tự này cho phép bạn
thực hiện bất kỳ một câu lệnh shell nào.
3. Ví dụ gõ ls theo sau dấu ! và gõ <ENTER>. Lệnh này
sẽ hiển thị nội dung của thư mục hiện thời, hoặc sử dụng
lệnh :!dir nếu ls không làm việc.
Chú ý: Có thể thực hiện bất kỳ câu lệnh ngoại trú nào theo cách này.
Chú ý: Tất cả các câu lệnh : cần kết thúc bởi phím <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.2: GHI LẠI CÁC TẬP TIN
** Để ghi lại các thay đổi, gõ :w TÊNTỆPTIN. **
1. Gõ :!dir hoặc :!ls để lấy bảng liệt kê thư mục hiện thời.
Như bạn đã biết, bạn cần gõ <ENTER> để thực hiện.
2. Chọn một tên tập tin chưa có, ví dụ TEST.
3. Bây giờ gõ: :w TEST (trong đó TEST là tên tập tin bạn đã chọn.)
4. Thao tác này ghi toàn bộ tập tin (Hướng dẫn dùng Vim) dưới tên TEST.
Để kiểm tra lại, gõ :!dir một lần nữa để liệt kê thư mục.
Chú ý: Nếu bạn thoát khỏi Vim và quay trở lại với tên tập tin TEST, thì tập
tin sẽ là bản sao của hướng dẫn tại thời điểm bạn ghi lại.
5. Bây giờ xóa bỏ tập tin (MS-DOS): :!del TEST
hay (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.3: CÂU LỆNH GHI CHỌN LỌC
** Để ghi một phần của tập tin, gõ :#,# w TÊNTẬPTIN **
1. Gõ lại một lần nữa :!dir hoặc :!ls để liệt kê nội dung thư mục
rồi chọn một tên tập tin thích hợp, ví dụ TEST.
2. Di chuyển con trỏ tới đầu trang này, rồi gõ Ctrl-g để tìm ra số thứ
tự của dòng đó. HÃY NHỚ SỐ THỨ TỰ NÀY!
3. Bây giờ di chuyển con trỏ tới dòng cuối trang và gõ lại Ctrl-g lần nữa.
HÃY NHỚ CẢ SỐ THỨ TỰ NÀY!
4. Để CHỈ ghi lại một phần vào một tập tin, gõ :#,# w TEST trong đó #,#
là hai số thứ tự bạn đã nhớ (đầu,cuối) và TEST là tên tập tin.
5. Nhắc lại, xem tập tin của bạn có ở đó không với :!dir nhưng ĐỪNG xóa.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.4: ĐỌC VÀ KẾT HỢP CÁC TẬP TIN
** Để chèn nội dung của một tập tin, gõ :r TÊNTẬPTIN **
1. Gõ :!dir để chắc chắn là có tệp tin TEST.
2. Đặt con trỏ tại đầu trang này.
CHÚ Ý: Sau khi thực hiện Bước 3 bạn sẽ thấy Bài 5.3. Sau đó cần di chuyển
XUỐNG bài học này lần nữa.
3. Bây giờ dùng câu lệnh :r TEST để đọc tập tin TEST, trong đó TEST là
tên của tập tin.
CHÚ Ý: Tập tin được đọc sẽ đặt bắt đầu từ vị trí của con trỏ.
4. Để kiểm tra lại, di chuyển con trỏ ngược trở lại và thấy rằng bây giờ
có hai Bài 5.3, bản gốc và bản vừa chèn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 5
1. :!câulệnh thực hiện một câu lệnh ngoại trú
Một vài ví dụ hữu ích:
(MS-DOS) (Unix)
:!dir :!ls - liệt kê nội dung một thư mục.
:!del TÊNTẬPTIN :!rm TÊNTẬPTIN - xóa bỏ tập tin TÊNTẬPTIN.
2. :w TÊNTẬPTIN ghi tập tin hiện thời của Vim lên đĩa với tên TÊNTẬPTIN.
3. :#,#w TÊNTẬPTIN ghi các dòng từ # tới # vào tập tin TÊNTẬPTIN.
4. :r TÊNTẬPTIN đọc tập tin trên đĩa TÊNTẬPTIN và chèn nội dung của nó vào
tập tin hiện thời sau vị trí của con trỏ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.1: CÂU LỆNH TẠO DÒNG
** Gõ o để mở một dòng phía dưới con trỏ và chuyển vào chế độ Soạn thảo. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Gõ o (chữ thường) để mở một dòng BÊN DƯỚI con trỏ và chuyển vào chế độ
Soạn thảo.
3. Bây giờ sao chép dòng có dấu ---> và nhấn <ESC> để thoát khỏi chế độ Soạn
thảo.
---> Sau khi gõ o con trỏ sẽ đặt trên dòng vừa mở trong chế độ Soạn thảo.
4. Để mở một dòng Ở TRÊN con trỏ, đơn giản gõ một chữ O hoa, thay cho
chữ o thường. Hãy thử thực hiện trên dòng dưới đây.
Di chuyển con trỏ tới dòng này, rồi gõ Shift-O sẽ mở một dòng trên nó.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.2: CÂU LỆNH THÊM VÀO
** Gõ a để chèn văn bản vào SAU con trỏ. **
1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->
bằng cách gõ $ trong chế độ câu lệnh.
2. Gõ a (chữ thường) để thêm văn bản vào SAU ký tự dưới con trỏ.
(Chữ A hoa thêm văn bản vào cuối một dòng.)
Chú ý: Lệnh này thay cho việc gõ i , ký tự cuối cùng, văn bản muốn chèn,
<ESC>, mũi tên sang phải, và cuối cùng, x , chỉ để thêm vào cuối dòng!
3. Bây giờ thêm cho đủ dòng thứ nhất. Chú ý rằng việc thêm giống hệt với
việc chèn, trừ vị trí chèn văn bản.
---> Dong nay cho phep ban thuc hanh
---> Dong nay cho phep ban thuc hanh viec them van ban vao cuoi dong.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.3: MỘT CÁCH THAY THẾ KHÁC
** Gõ chữ cái R hoa để thay thế nhiều ký tự. **
1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->.
2. Đặt con trỏ tại chữ cái đầu của từ đầu tiên khác với dòng có dấu
---> tiếp theo (từ 'tren').
3. Bây giờ gõ R và thay thế phần còn lại của dòng thứ nhất bằng cách gõ
đè lên văn bản cũ để cho hai dòng giống nhau.
---> De cho dong thu nhat giong voi dong thu hai tren trang nay.
---> De cho dong thu nhat giong voi dong thu hai, go R va van ban moi.
4. Chú ý rằng khi bạn nhấn <ESC> để thoát, đoạn văn bản không sửa đổi sẽ
được giữ nguyên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.4: THIẾT LẬP CÁC THAM SỐ
** Thiết lập một tùy chọn để việc tìm kiếm hay thay thế lờ đi kiểu chữ **
1. Tìm kiếm từ 'lodi' bằng cách gõ:
/lodi
Lặp lại vài lần bằng phím n.
2. Đặt tham số 'ic' (Lodi - ignore case) bằng cách gõ:
:set ic
3. Bây giờ thử lại tìm kiếm 'lodi' bằng cách gõ: n
Lặp lại vài lần bằng phím n.
4. Đặt các tham số 'hlsearch' và 'incsearch':
:set hls is
5. Bây giờ nhập lại câu lệnh tìm kiếm một lần nữa và xem cái gì xảy ra:
/lodi
6. Để xóa bỏ việc hiện sáng từ tìm thấy, gõ:
:nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 6
1. Gõ o mở một dòng phía DƯỚI con trỏ và đặt con trỏ trên dòng vừa mở
trong chế độ Soạn thảo.
Gõ một chữ O hoa để mở dòng phía TRÊN dòng của con trỏ.
2. Gõ a để chèn văn bản vào SAU ký tự nằm dưới con trỏ.
Gõ một chữ A hoa tự động thêm văn bản vào cuối một dòng.
3. Gõ một chữ R hoa chuyển vào chế độ Thay thế cho đến khi nhấn <ESC>.
4. Gõ ":set xxx" sẽ đặt tham số "xxx"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 7: CÂU LỆNH TRỢ GIÚP
** Sử dụng hệ thống trợ giúp có sẵn **
Vim có một hệ thống trợ giúp đầy đủ. Để bắt đầu, thử một trong ba
lệnh sau:
- nhấn phím <HELP> (nếu bàn phím có)
- nhấn phím <F1> (nếu bàn phím có)
- gõ :help <ENTER>
Gõ :q <ENTER> để đóng cửa sổ trợ giúp.
Bạn có thể tìm thấy trợ giúp theo một đề tài, bằng cách đưa tham số tới
câu lệnh ":help". Hãy thử (đừng quên gõ <ENTER>):
:help w
:help c_<T
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 8: TẠO MỘT SCRIPT KHỞI ĐỘNG
** Bật các tính năng của Vim **
Vim có nhiều tính năng hơn Vi, nhưng hầu hết chúng bị tắt theo mặc định.
Để sử dụng các tính năng này bạn cần phải tạo một tập tin "vimrc".
1. Soạn thảo tệp tin "vimrc", phụ thuộc vào hệ thống của bạn:
:edit ~/.vimrc đối với Unix
:edit $VIM/_vimrc đối với MS-Windows
2. Bây giờ đọc tập tin "vimrc" ví dụ:
:read $VIMRUNTIME/vimrc_example.vim
3. Ghi lại tập tin:
:write
Trong lần khởi động tiếp theo, Vim sẽ sử dụng việc hiện sáng cú pháp.
Bạn có thể thêm các thiết lập ưa thích vào tập tin "vimrc" này.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài học hướng dẫn sử dụng Vim (Vim Tutor) kết thúc tại đây. Bài học đưa ra
cái nhìn tổng quát về trình soạn thảo Vim, chỉ đủ để bạn có thể sử dụng
trình soạn thảo một cách dễ dàng. Bài học còn rất xa để có thể nói là đầy
đủ vì Vim có rất rất nhiều câu lệnh. Tiếp theo xin hãy đọc hướng dẫn người
dùng: ":help user-manual".
Cuốn sách sau được khuyên dùng cho việc nghiên cứu sâu hơn:
Vim - Vi Improved - Tác giả: Steve Oualline
Nhà xuất bản: New Riders
Cuốn sách đầu tiên dành hoàn toàn cho Vim. Đặc biệt có ích cho người mới.
Có rất nhiều ví dụ và tranh ảnh.
Hãy xem: http://iccf-holland.org/click5.html
Cuốn sách tiếp theo này xuất bản sớm hơn và nói nhiều về Vi hơn là Vim,
nhưng cũng rất nên đọc:
Learning the Vi Editor - Tác giả: Linda Lamb
Nhà xuất bản: O'Reilly & Associates Inc.
Đây là một cuốn sách hay và cho bạn biết tất cả cách thực hiện những gì muốn
làm với Vi. Lần xuất bản thứ sáu đã thêm thông tin về Vim.
Bài học hướng dẫn này viết bởi Michael C. Pierce và Robert K. Ware,
Colorado School of Mines sử dụng ý tưởng của Charles Smith,
Colorado State University. E-mail: bware@mines.colorado.edu.
Sửa đổi cho Vim bởi Bram Moolenaar.
Dịch bởi: Phan Vĩnh Thịnh <teppi@vnlinux.org>, 2005
Translator: Phan Vinh Thịnh <teppi@vnlinux.org>, 2005
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

BIN
runtime/tutor/vimdir.info Executable file

Binary file not shown.

View File

@ -0,0 +1,67 @@
:: Start Vim on a copy of the tutor file.
@echo off
:: Usage: vimtutor [-console] [xx]
::
:: -console means gvim will not be used
:: xx is a language code like "es" or "nl".
:: When an xx argument is given, it tries loading that tutor.
:: When this fails or no xx argument was given, it tries using 'v:lang'
:: When that also fails, it uses the English version.
:: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
FOR %%d in (. %TMP% %TEMP%) DO IF EXIST %%d\nul SET TUTORCOPY=%%d\$tutor$
SET xx=%1
IF NOT .%1==.-console GOTO use_gui
SHIFT
SET xx=%1
GOTO use_vim
:use_gui
:: Try making a copy of tutor with gvim. If gvim cannot be found, try using
:: vim instead. If vim cannot be found, alert user to check environment and
:: installation.
:: The script tutor.vim tells Vim which file to copy.
:: For Windows NT "start" works a bit differently.
IF .%OS%==.Windows_NT GOTO ntaction
start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start /w gvim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:ntaction
start "dummy" /b /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start "dummy" /b /w gvim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:use_vim
:: The script tutor.vim tells Vim which file to copy
vim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO no_executable
:: Start vim without any .vimrc, set 'nocompatible'
vim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:no_executable
ECHO.
ECHO.
ECHO No vim or gvim found in current directory or PATH.
ECHO Check your installation or re-run install.exe
:end
:: remove the copy of the tutor
IF EXIST %TUTORCOPY% DEL %TUTORCOPY%
SET xx=