mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
updated for version 7.2a
This commit is contained in:
32
runtime/tutor/README_ami.txt
Normal file
32
runtime/tutor/README_ami.txt
Normal 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.
|
25
runtime/tutor/runtime/delmenu.vim
Normal file
25
runtime/tutor/runtime/delmenu.vim
Normal 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 :
|
75
runtime/tutor/runtime/macmap.vim
Normal file
75
runtime/tutor/runtime/macmap.vim
Normal 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
BIN
runtime/tutor/runtime/macros.info
Executable file
Binary file not shown.
1312
runtime/tutor/runtime/optwin.vim
Normal file
1312
runtime/tutor/runtime/optwin.vim
Normal file
File diff suppressed because it is too large
Load Diff
BIN
runtime/tutor/runtime/tools.info
Executable file
BIN
runtime/tutor/runtime/tools.info
Executable file
Binary file not shown.
43
runtime/tutor/runtime/vim32x32.xpm
Normal file
43
runtime/tutor/runtime/vim32x32.xpm
Normal 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",
|
||||
" .. ",
|
||||
" .##. ",
|
||||
" ...........#@@#. ......... ",
|
||||
" .&&&&&&&&&&&.@@@#.&&&&&&&&&. ",
|
||||
" .&%%%%%%%%%%%.@@@.&%%%%%%%%%. ",
|
||||
" .%%%%%%%%%%$.@@@@.%%%%%%%%$. ",
|
||||
" .$%%%%%%$$.@@@@@@.$%%%%%$$. ",
|
||||
" .&%%%%%%$.@@@@@@.&%%%%%$$. ",
|
||||
" .&%%%%%%$.@@@@@.&&%%%%$$. ",
|
||||
" .&%%%%%%$.@@@@.&&%%%%$$. ",
|
||||
" .&%%%%%%$.@@@.&&%%%%$$. ",
|
||||
" .&%%%%%%$.@@.&&%%%%$$.#. ",
|
||||
" ..&%%%%%%$.@.&&%%%%$$.@@#. ",
|
||||
" .#.&%%%%%%$..&&%%%%$$.@@@@#. ",
|
||||
" .#@.&%%%%%%$.&&%%%%$$.@@@@@@#. ",
|
||||
".#@@.&%%%%%%$&&%%%%$$.@@@@@@@@#.",
|
||||
".+@@.&%%%%%%$&%%%%$$.@@@@@@@@@+.",
|
||||
" .+@.&%%%%%%$%%%%$$.@@@@@@@@@+. ",
|
||||
" .+.&%%%%%%%%%%...@@@@@@@@@+. ",
|
||||
" ..&%%%%%%%%%.%%.@@@@@@@@+. ",
|
||||
" .&%%%%%%%%%.%%.@@@@@@@+. ",
|
||||
" .&%%%%%%%%$...@...@...... ",
|
||||
" .&%%%%%%%$.%%%.%%%.%%%.%%. ",
|
||||
" .&%%%%%%$$..%%..%%%%%%%%%%. ",
|
||||
" .&%%%%%$$..%%...%%++%%..%. ",
|
||||
" .&%%%%$$.@.%%..%%+.%%..%%. ",
|
||||
" .&%%%$$.@@.%%..%%..%%..%%. ",
|
||||
" .&%%$$..+.%%..%%..%%..%%. ",
|
||||
" .%$$. ..%%%.%%..%%..%%%. ",
|
||||
" ... ....+.. .. ... ",
|
||||
" .++. ",
|
||||
" .. "};
|
59
runtime/tutor/runtime/vim48x48.xpm
Normal file
59
runtime/tutor/runtime/vim48x48.xpm
Normal 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",
|
||||
" .. ",
|
||||
" .##. ",
|
||||
" .#@@#. ",
|
||||
" ...............#@@@@#. ............... ",
|
||||
" .***************.@@@@@#. .***************. ",
|
||||
" .**&&&&&&&&&&&&&&$.@@@@@#.**&&&&&&&&&&&&&&$.",
|
||||
" .*&&&&&&&&&&&&&&&$.@@@@@@.*&&&&&&&&&&&&&&&$.",
|
||||
" .*$&&&&&&&&&&&&&&$.@@@@@@.*$&&&&&&&&&&&&&&$.",
|
||||
" .$$$&&&&&&&&&$$$.@@@@@@@@.$$$&&&&&&&&&&&$$.",
|
||||
" ..*&&&&&&&&&$$.@@@@@@@@@@..*&&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@@.**&&&&&&&&&$$. ",
|
||||
" .*&&&&&&&&&$$.@@@@.**&&&&&&&&&$$.. ",
|
||||
" ..*&&&&&&&&&$$.@@@.**&&&&&&&&&$$.@#. ",
|
||||
" .#.*&&&&&&&&&$$.@@.**&&&&&&&&&$$.@@@#. ",
|
||||
" .#@.*&&&&&&&&&$$.@.**&&&&&&&&&$$.@@@@@#. ",
|
||||
" .#@@.*&&&&&&&&&$$..**&&&&&&&&&$$.@@@@@@@#. ",
|
||||
" .#@@@.*&&&&&&&&&$$.**&&&&&&&&&$$.@@@@@@@@@#. ",
|
||||
" .#@@@@.*&&&&&&&&&$$**&&&&&&&&&$$.@@@@@@@@@@@#. ",
|
||||
".#+@@@@.*&&&&&&&&&$$*&&&&&&&&&$$.@@@@@@@@@@@@@#.",
|
||||
" .++@@@.*&&&&&&&&&$*&&&&&&&&&$$.@@@@@@@@@@@@@++.",
|
||||
" .++@@.*&&&&&&&&&$&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
|
||||
" .++@.*&&&&&&&&&&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
|
||||
" .++.*&&&&&&&&&&&&&&&&....@@@@@@@@@@@@@++. ",
|
||||
" .+.*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@@+++ ",
|
||||
" ..*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@++. ",
|
||||
" .*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@++. ",
|
||||
" .*&&&&&&&&&&&&&&$$...@@@@@@@@@@++. ",
|
||||
" .*&&&&&&&&&&&&&$$...@@....@@....+.... ",
|
||||
" .*&&&&&&&&&&&&$$..&&..&&&&..&&&&..&&&. ",
|
||||
" .*&&&&&&&&&&&$$..&&&.@.&&&&&&&&&&&&&&&. ",
|
||||
" .*&&&&&&&&&&$$.@.&&&.@.&&&&&&&&&&&&&&&. ",
|
||||
" .*&&&&&&&&&$$.@@.&&.@@.&&....&&....&&. ",
|
||||
" .*&&&&&&&&$$.@@.&&&.@.&&&.+.&&&. .&&&. ",
|
||||
" .*&&&&&&&$$.@@@.&&.@@.&&.++.&&. .&&. ",
|
||||
" .*&&&&&&$$.@@@.&&&.@.&&&.+.&&&. .&&&. ",
|
||||
" .*&&&&&$$.++@@.&&.@@.&&.. .&&. .&&. ",
|
||||
" .*&&&&$$. .++.&&&.@.&&&. .&&&. .&&&. ",
|
||||
" .$$$$$. .+.&&&&..&&&&..&&&&..&&&&. ",
|
||||
" ..... .+....@+.... .... .... ",
|
||||
" .++@@++. ",
|
||||
" .++++. ",
|
||||
" .++. ",
|
||||
" .. "};
|
791
runtime/tutor/runtime/vimlogo.eps
Normal file
791
runtime/tutor/runtime/vimlogo.eps
Normal 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
|
830
runtime/tutor/tutor.sv.utf-8
Normal file
830
runtime/tutor/tutor.sv.utf-8
Normal 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>
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
812
runtime/tutor/tutor.vi.utf-8
Normal file
812
runtime/tutor/tutor.vi.utf-8
Normal 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
BIN
runtime/tutor/vimdir.info
Executable file
Binary file not shown.
67
runtime/tutor/vimtutor.bat
Normal file
67
runtime/tutor/vimtutor.bat
Normal 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=
|
Reference in New Issue
Block a user