Ero sivun ”Vim” versioiden välillä

Siirry navigaatioon Siirry hakuun
675 merkkiä lisätty ,  9. heinäkuuta 2007
p
Polishing it. Taulukointi aika pitkälle Vim-automaatiota :)
(pientä fiksausta)
p (Polishing it. Taulukointi aika pitkälle Vim-automaatiota :))
Rivi 12: Rivi 12:


===Toimintatilat===
===Toimintatilat===
Vim toimii erilaisissa toimintatiloissa (engl. mode, myöhemmin viitataan termiin pelkästään tilana). Näitä ovat mm. input- eli syöttötila, ''command''- eli komentotila, ''visual''- eli maalaustila ja ''ex mode'' eli x-tila. Kun vim käynnistyy, se on yleensä komentotilassa, jossa editorille voi antaa erilaisia komentoja. Syöttötilassa taas voi lisätä tiedostoon tekstiä. Alkuperäisestä vistä poiketen vimissä tilan näkee yleensä ruudun oikeasta alalaidasta. Syöttötilasta pääsee takaisin komentotilaan painamalla ESC.
'''Vim''' toimii erilaisissa '''toimintatiloissa''' (engl. mode, myöhemmin viitataan termiin pelkästään tilana). Näitä ovat mm. ''input''- eli syöttötila, ''command''- eli komentotila, ''visual''- eli maalaustila ja ''ex mode'' eli x-tila. Kun vim käynnistyy, se on yleensä komentotilassa, jossa editorille voi antaa erilaisia komentoja. Syöttötilassa taas voi lisätä tiedostoon tekstiä. Alkuperäisestä vistä poiketen vimissä tilan näkee yleensä ruudun oikeasta alalaidasta. Syöttötilasta pääsee takaisin komentotilaan painamalla ESC.


===Komennoista===
===Komennoista===
Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä vimin komennot ovat riippuvaisia kirjainkoosta.
Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä vimin komennot ovat riippuvaisia kirjainkoosta.


Kursoria liikuttavia komentomerkkejä (motion keys, listauksissa komennot ilmaistu komentomerkkiä seuraavalla isolla M-kirjaimella ''M'') voidaan käyttää joidenkin komentojen kanssa rajaamaan komennon toiminta-aluetta. Komennot jotka vastaanottavat tai tarvitsevat kursorinliikkeitä toimiakseen, merkitään pienellä m-kirjaimella ''m''.
Kursoria liikuttavia komentomerkkejä (motion keys, listauksissa komennot ilmaistu ominaisuutena ''M'') voidaan käyttää joidenkin komentojen kanssa rajaamaan komennon toiminta-aluetta. Komennot jotka vastaanottavat '''tai tarvitsevat''' kursorinliikkeitä toimiakseen, ilmaistaan ominaisuutena ''m''.
(Esim. 'd3e' poistaa seuraavat kolme sanaa tai välimerkkiä).
(Esim. 'd3e' poistaa seuraavat kolme sanaa tai välimerkkiä).


Joitain komentoja voidaan kertoa lisäämällä niiden eteen numeroita. (Esim. '3de' on tulokseltaan identtinen edellisen esimerkin kanssa, listauksissa ilmaistu komentomerkkiä edeltävällä tähdellä ''*'').
Joitain komentoja voidaan kertoa lisäämällä niiden eteen numeroita. (Esim. '3de' on tulokseltaan identtinen edellisen esimerkin kanssa, listauksissa ilmaistu ominaisuutena ''K'').
    
    
Jotkin komennot kuten 'f' haluavat seurakseen jonkin kirjaimen, merkin tai numeron (Esim. 'fa' = etsi seuraava 'a'). Tällaiset tapaukset ilmaistaan komennon selityksestä löytyvillä pisteillä ''...''.  
Jotkin komennot kuten 'f' haluavat seurakseen jonkin kirjaimen, merkin tai numeron (Esim. 'fa' = etsi seuraava 'a'). Tällaiset tapaukset ilmaistaan selityksissä löytyvillä pisteillä ''...''.  


Joihinkin komentoihin kuten 'p' voidaan lisätä rekisteriviittaus, jolloin ne käyttävät kyseistä rekisteriä toimiinsa (Esim. '"aY' kopioi koko rivin rekisteriin 'a' josta se voidaan liittää takaisin tekstiin, '"ap'). Tällaiset tapaukset ilmaistaan komentomerkkiä edeltävällä lainausmerkillä ''"''.
Joihinkin komentoihin kuten 'p' voidaan lisätä rekisteriviittaus, jolloin ne käyttävät kyseistä rekisteriä toimiinsa (Esim. '"aY' kopioi koko rivin rekisteriin 'a' josta se voidaan liittää takaisin tekstiin, '"ap'). Tällaiset tapaukset ilmaistaan ominaisuutena ''R''.


Erikoisnäppäimet ja näppäinyhdistelmät kuten F1, Home, Control + End ja Shift + Enter on ilmaistu näppäinkartoittamiseen sopivassa muodossa. (Esim. F1 = '<F1>', Control + V = <C_v>, Enter = <CR>).
Erikoisnäppäimet ja näppäinyhdistelmät kuten '''F1''', '''Home''', '''Control + End''' ja '''Shift + Enter''' on ilmaistu näppäinkartoittamiseen sopivassa muodossa.  
 
(Esim. '''F1''' = '<F1>', '''Control + V''' = <C_v>, '''Enter''' = <CR>).
   
   
====Aakkosnäppäinten komennot komentotilassa====
====Aakkosnäppäinten komennot komentotilassa====
  a (Lisää tekstiä aloittaen heti kursorin oikealta puolelta)
   
A (Lisää tekstiä rivin loppuun)
{| {{prettytable}}
*b M(Mene sana taaksepäin pysähtyen välimerkkeihin)
|-
*B M(Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja)
!Komentomerkki
c m (Poistaa kursorinliikkeiden (motion) verran tekstiä ja syöttötilan)
!R
C (Poistaa koko rivin tekstiä ja siirtyy syöttötilaan)
!K
"*d (Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin)
!M/m
"*D (Poistaa tekstin kursorista rivin loppuun)
!Selitys
*e M (Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin)
|-
*E M (Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--)
|a || || || || Lisää tekstiä aloittaen heti kursorin oikealta puolelta
*f M (Etsi seuraava kirjain ...)
|-
*F M (Etsi edellinen kirjain ...)
|A || || || || Lisää tekstiä rivin loppuun
g (Lisätoimintonäppäin, tee toiminto ...)
|-
G (Siirtyy riville ... tai tiedoston loppuun ''(esim. '10G' -> siirry riville '10')'')
|b || ||X||M|| Mene sana taaksepäin pysähtyen välimerkkeihin
*h M (Liikuttaa kursoria vasemmalle)
|-
H M (Liikuttaa kursorin tiedoston alkuun)
|B || ||X||M|| Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja
i (Lisää tekstiä heti kursorin kohdalle)
|-
I (Lisää tekstiä rivin alkuun)
|c || || ||m|| Poistaa kursorinliikkeiden (motion verran tekstiä ja syöttötilan)
*j M (Liikuttaa kursoria alas)
|-
*J (Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon)
|C || || || || Poistaa koko rivin tekstiä ja siirtyy syöttötilaan
*k M (Liikuttaa kursoria ylös)
|-
K (Ajaa kursorin alla olevan sanan [[man]]-komennon argumenttinä)
|d ||X||X|| || Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin
*l M (Liikuttaa kursoria oikealle)
|-
L M (Liikuttaa kursorin tiedoston loppuun)
|D ||X||X|| || Poistaa tekstin kursorista rivin loppuun
m (Merkitse rivi ...ksi ''(esim. 'ma' merkitsee rivin 'a'ksi, jolloin riville palaaminen onnistuu tempulla '<nowiki>'a</nowiki>')'')
|-
M M(Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan)
|e || ||X||M|| Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin
*n M(Hae seuraava (esim f/F:n tai /:n kanssa käytettynä))
|-
*N M(Hae edellinen)
|E || ||X||M|| Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--
o (Lisää uusi rivi ja tekstiä rivin alapuolelle)
|-
O (Lisää uusi rivi ja tekstiä rivin yläpuolelle)
|f || ||X||M|| Etsi seuraava kirjain ...
"p (Liittää viimeisimmän poistetun tai kopioidun ('y'anked) tekstin kursorin jälkeen)
|-
"P (Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle)
|F || ||X||M|| Etsi edellinen kirjain ...
q (Aloita makro ...
|-
Q (Siirry x-tilaan (ex mode)
|g || || || || Lisätoimintonäppäin, tee toiminto ...
r (Korvaa yksi merkki kursorin kohdalla merkillä ...)
|-
R (Ylikirjoita kursorista eteenpäin, sama kuin 'i<Insert>')
|G || || || || Siirtyy riville ... tai tiedoston loppuun ''(esim. '10G' -> siirry riville '10''')
"*s (Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin 'xi')
|-
"*S (Poista rivi ja siirry syöttötilaan, sama kuin 'ddi')
|h || ||X||M|| Liikuttaa kursoria vasemmalle
*t M (Mene seuraavaa kirjainta ... edeltävään merkkiin)
|-
*T M (Mene edellistä kirjainta ... seuraavaan merkkiin)
|H || || ||M|| Liikuttaa kursorin näytettävän tekstiosan alkuun
u (Kumoa edellinen muutos)
|-
U (Kumoa muutokset koko riviltä)
|i || || || || Lisää tekstiä heti kursorin kohdalle
v (Siirry kirjaimia maalaavaan tilaan (visual mode))
|-
V (Siirry rivejä maalaavaan tilaan, <C_v> siirtyy suorakulmia (block) maalaavaan tilaan)
|I || || || || Lisää tekstiä rivin alkuun
w M (Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin)
|-
W M (Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina--)
|j || ||X||M|| Liikuttaa kursoria alas
"*x (Poista merkki kursorin alta)
|-
"*X (Poista edeltävä merkki)
|J || ||X|| || Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon
"y m (Kopioi kursorinliikkeiden verran tekstiä)
|-
"Y (Kopioi koko rivi)
|k || ||X||M|| Liikuttaa kursoria ylös
z (Lisätoimintonäppäin, tee toiminto ...)
|-
Z (Sulje vim (ZZ tallentaa ja lopettaa, vrt. ':wq', ZO lopettaa, vrt. ':q') )
|K || || || || Ajaa kursorin alla olevan sanan [[man]]-komennon argumenttinä
å,Å,ä,Ä,ö,Ö (Vielä tyhjiä näppäimiä, käyttökohteita esim. näppäinkartoitus.
|-
|l || ||X||M|| Liikuttaa kursoria oikealle
|-
|L || || ||M|| Liikuttaa kursorin näytettävän tekstiosan loppuun
|-
|m || || || || Merkitse rivi ...ksi ''(esim. 'ma' merkitsee rivin 'a'ksi, jolloin riville palaaminen onnistuu tempulla '<nowiki>'a</nowiki>''')
|-
|M || || ||M|| Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan
|-
|n || ||X||M|| Hae seuraava (esim f/F:n tai /:n kanssa käytettynä)
|-
|N || ||X||M|| Hae edellinen
|-
|o || || || || Lisää uusi rivi ja tekstiä rivin alapuolelle
|-
|O || || || || Lisää uusi rivi ja tekstiä rivin yläpuolelle
|-
|p ||X|| || || Liittää viimeisimmän poistetun tai kopioidun ('y'anked tekstin kursorin jälkeen)
|-
|P ||X|| || || Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle
|-
|q || || || || Aloita makro ...
|-
|Q || || || || Siirry x-tilaan (ex mode)
|-
|r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ...
|-
|R || || || || Ylikirjoita kursorista eteenpäin, sama kuin 'i<Insert>'
|-
|s ||X||X|| || Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin 'xi'
|-
|S ||X||X|| || Poista rivi ja siirry syöttötilaan, sama kuin 'ddi'
|-
|t || ||X||M|| Mene seuraavaa kirjainta ... edeltävään merkkiin
|-
|T || ||X||M|| Mene edellistä kirjainta ... seuraavaan merkkiin
|-
|u || ||X|| || Kumoa edellinen muutos
|-
|U || || || || Kumoa muutokset koko riviltä
|-
|v || || || || Siirry kirjaimia maalaavaan tilaan (visual mode)
|-
|V || || || || Siirry rivejä maalaavaan tilaan, <C_v> siirtyy suorakulmia (block maalaavaan tilaan)
|-
|w || ||X||M|| Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin
|-
|W || ||X||M|| Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina--
|-
|x ||X||X|| || Poista merkki kursorin alta
|-
|X ||X||X|| || Poista edeltävä merkki
|-
|y ||X|| ||m|| Kopioi kursorinliikkeiden verran tekstiä
|-
|Y ||X|| || || Kopioi koko rivi
|-
|z || || || || Lisätoimintonäppäin, tee toiminto ...
|-
|Z || || || || Sulje vim (ZZ tallentaa ja lopettaa, vrt. ':wq', ZO lopettaa, vrt. ':q') )
|-
|å,Å,ä,Ä,ö,Ö || || || || Vielä tyhjiä näppäimiä, käyttökohteita esim. näppäinkartoitus
|}


Helppo tapa opetella vimin peruskäyttö on [[vimtutor]]-ohjelma, joka tulee vimin mukana. Pika-apua jonkin näppäimen/komennon/tehtävän suhteen saat kirjoittamalla normaali- eli komentotilassa ':help [aihe]' esimerkiksi ':help copy'. Näppärän muistilapun voi tulostaa itselleen [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html täältä] [http://www.viemu.com/vi-vim-cheat-sheet.gif] (Kyseessä siis Microsoft Visual Studio:n laajennuspalikan ViEmu:n kotisivu).
Helppo tapa opetella vimin peruskäyttö on [[vimtutor]]-ohjelma, joka tulee vimin mukana. Pika-apua jonkin näppäimen/komennon/tehtävän suhteen saat kirjoittamalla normaali- eli komentotilassa ''':help [aihe]''' esimerkiksi ''':help copy'''. Näppärän muistilapun voi tulostaa itselleen [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html täältä] [http://www.viemu.com/vi-vim-cheat-sheet.gif] (Kyseessä siis Microsoft Visual Studio:n laajennuspalikan ViEmu:n kotisivu).


==Katso myös==
==Katso myös==
Rivi 91: Rivi 155:


==Linkkejä==
==Linkkejä==
*[http://ex-vi.sourceforge.net/ The Traditional Vi]
*[http://www.vim.org/ Vimin kotisivu]
*[http://www.vim.org/ Vimin kotisivu]
*[http://ex-vi.sourceforge.net/ The Traditional Vi]


[[Luokka:Tekstieditorit]]
[[Luokka:Tekstieditorit]]
V
55

muokkausta

Navigointivalikko