55
muokkausta
V (keskustelu | muokkaukset) p (Vim the bad (v)imp.) |
V (keskustelu | muokkaukset) p (Jatketaan muokkaamista. Teen lisää kun jaksan. Löysitkö virheen/puutteen? Korjaa se! Tekosyyksi totean ettei vim ole normaaleille ihmisille :)) |
||
Rivi 1: | Rivi 1: | ||
Vim ([[ | Vim ([[Vim#Vi_vai_Vim?]] Improved) on Bram Molenaarin vi-editorin kehitystyön seurauksena uusiutunut komentorivipohjainen [[tekstieditori]]. Siitä on myös saatavilla graafiset versiot [[gvim]] ja [[kvim]]. | ||
Vi on [[ | ==Vi vai Vim?== | ||
Vi on [[wikipedia:fi:Bill_Joy|Bill Joy]]n vuonna 1976 [[BSD]]lle kehittämä vi-tekstieditorin ''alkuperäisversio''. | |||
== | Vistä Bram Molenaar'n haarauttama, kehittyneempi tekstieditori on nimeltään [[Vim]]. Nykyajan Linux-järjestelmissä Vi on yleensä [[symbolinen linkki|näennäisesti johdettu]] Vimiin. Lähinnä tämän takia tässä kirjoituksessa saatetaan termiä '''vi''' käyttää synonyyminä '''vim''':n suhteen. | ||
Vim ei ole ainut '''"vi-klooni"''', vaikka tunnetuin onkin. Muita '''"vi-klooneja"''' ovat mm. [[wikipedia:en:Elvis_(text_editor)|Elvis]] ja [[wikipedia:en:Nvi|nvi]]. | |||
==Aloittaminen== | |||
Vim saattaa olla melkoinen "kulttuurishokki" uusille käyttäjille. Siinä ei esimerkiksi ole valikkoriviä ollenkaan, ja kun käynnistät editorin, et pääsekään heti kirjoittamaan. Jopa poistuminen saattaa aiheuttaa päänvaivaa, jos ei tiedä mitä tekee. Vi on kuitenkin hyvä editori, jos sille uhraa hieman aikaa. | |||
===Toimintatilat=== | ===Toimintatilat=== | ||
'''Vim''' toimii erilaisissa '''toimintatiloissa''' (engl. mode, myöhemmin viitataan termiin pelkästään '''tila'''na). Näitä ovat mm. ''input''- eli syöttötila, ''command''- eli komentotila, ''visual''- eli maalaustila ja ''ex mode'' eli [[Vim#x-tila|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ä. '''"Vi-klooneissa"''' 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ä vi:n komennot ovat riippuvaisia kirjainkoosta. | Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä vi:n komennot ovat riippuvaisia kirjainkoosta. | ||
Kursoria liikuttavia | 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''. | ||
(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ä ''*''). | |||
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ä ''...''. | |||
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ä ''"''. | |||
Erikoisnäppäimet ja näppäinyhdistelmät kuten '''F1''', '''Home''', '''Control + End''' ja '''Shift + Enter''' ovat ilmaistu [[Vim#Näppäinkartoitus|näppäinkartoittamiseen]] sopivassa muodossa. (Esim. '''F1''' = '<F1>', '''Control + V''' = <C_v>, '''Enter''' = <CR>). | |||
====Aakkosnäppäinten komennot==== | ====Aakkosnäppäinten komennot komentotilassa==== | ||
a (Lisää tekstiä aloittaen heti kursorin oikealta puolelta) | a (Lisää tekstiä aloittaen heti kursorin oikealta puolelta) | ||
A (Lisää tekstiä rivin loppuun) | A (Lisää tekstiä rivin loppuun) | ||
b (Mene sana taaksepäin pysähtyen välimerkkeihin) | *b M(Mene sana taaksepäin pysähtyen välimerkkeihin) | ||
B (Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja) | *B M(Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja) | ||
c (Poistaa kursorinliikkeiden (motion) verran tekstiä ja syöttötilan) | c m (Poistaa kursorinliikkeiden (motion) verran tekstiä ja syöttötilan) | ||
C (Poistaa koko rivin tekstiä ja siirtyy syöttötilaan) | C (Poistaa koko rivin tekstiä ja siirtyy syöttötilaan) | ||
d (Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin) | "*d (Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin) | ||
D (Poistaa tekstin kursorista rivin loppuun) | "*D (Poistaa tekstin kursorista rivin loppuun) | ||
e (Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin) | *e M (Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin) | ||
E (Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--) | *E M (Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--) | ||
f (Etsi seuraava kirjain | *f M (Etsi seuraava kirjain ...) | ||
F (Etsi edellinen kirjain... ) | *F M (Etsi edellinen kirjain ...) | ||
g ([[Vi#g|Lisätoimintonäppäin]]) | g ([[Vi#g|Lisätoimintonäppäin]], tee toiminto ...) | ||
G ( | G (Siirtyy riville ... tai tiedoston loppuun ''(esim. '10G' -> siirry riville '10')'') | ||
h (Liikuttaa kursoria vasemmalle) | *h M (Liikuttaa kursoria vasemmalle) | ||
H (Liikuttaa kursorin tiedoston alkuun) | H M (Liikuttaa kursorin tiedoston alkuun) | ||
i (Lisää tekstiä heti kursorin kohdalle) | i (Lisää tekstiä heti kursorin kohdalle) | ||
I (Lisää tekstiä rivin alkuun) | I (Lisää tekstiä rivin alkuun) | ||
j (Liikuttaa kursoria alas) | *j M (Liikuttaa kursoria alas) | ||
J (Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon) | *J (Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon) | ||
k (Liikuttaa kursoria ylös) | *k M (Liikuttaa kursoria ylös) | ||
K (Ajaa kursorin alla olevan sanan [[man]]-komennon argumenttinä) | K (Ajaa kursorin alla olevan sanan [[man]]-komennon argumenttinä) | ||
l (Liikuttaa kursoria oikealle) | *l M (Liikuttaa kursoria oikealle) | ||
L (Liikuttaa kursorin tiedoston loppuun) | L M (Liikuttaa kursorin tiedoston loppuun) | ||
m (Merkitse rivi ...ksi ''(esim. 'ma' merkitsee rivin 'a'ksi, jolloin riville palaaminen onnistuu tempulla '<nowiki>'a</nowiki>')'') | m (Merkitse rivi ...ksi ''(esim. 'ma' merkitsee rivin 'a'ksi, jolloin riville palaaminen onnistuu tempulla '<nowiki>'a</nowiki>')'') | ||
M (Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan) | M M(Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan) | ||
n (Hae seuraava (esim f/F:n tai /:n kanssa käytettynä)) | *n M(Hae seuraava (esim f/F:n tai /:n kanssa käytettynä)) | ||
N (Hae edellinen) | *N M(Hae edellinen) | ||
o (Lisää uusi rivi ja tekstiä rivin alapuolelle) | o (Lisää uusi rivi ja tekstiä rivin alapuolelle) | ||
O (Lisää uusi rivi ja tekstiä rivin yläpuolelle) | O (Lisää uusi rivi ja tekstiä rivin yläpuolelle) | ||
p (Liittää viimeisimmän poistetun tai kopioidun ('y'anked) tekstin kursorin jälkeen) | "p (Liittää viimeisimmän poistetun tai kopioidun ('y'anked) tekstin kursorin jälkeen) | ||
P (Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle) | "P (Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle) | ||
q (Aloita makro ... (katso [[Vim#Makrottaminen]]) | q (Aloita makro ... (katso [[Vim#Makrottaminen|Makrottaminen]]) | ||
Q (Siirry x-tilaan (ex mode, katso [[Vim#x_tila)) | Q (Siirry x-tilaan (ex mode, katso [[Vim#x_tila|x-tila]])) | ||
r (Korvaa yksi merkki kursorin kohdalla) | r (Korvaa yksi merkki kursorin kohdalla merkillä ...) | ||
R (Ylikirjoita kursorista eteenpäin) | R (Ylikirjoita kursorista eteenpäin, sama kuin 'i<Insert>') | ||
s (Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin | "*s (Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin 'xi') | ||
S (Poista rivi ja siirry syöttötilaan, sama kuin | "*S (Poista rivi ja siirry syöttötilaan, sama kuin 'ddi') | ||
t (Mene seuraavaa kirjainta ... edeltävään merkkiin) | *t M (Mene seuraavaa kirjainta ... edeltävään merkkiin) | ||
T (Mene edellistä kirjainta ... seuraavaan merkkiin) | *T M (Mene edellistä kirjainta ... seuraavaan merkkiin) | ||
u (Kumoa edellinen muutos) | u (Kumoa edellinen muutos) | ||
U (Kumoa muutokset koko riviltä) | U (Kumoa muutokset koko riviltä) | ||
v (Siirry kirjaimia maalaavaan tilaan (visual mode)) | v (Siirry kirjaimia maalaavaan tilaan (visual mode)) | ||
V (Siirry rivejä maalaavaan tilaan, < | V (Siirry rivejä maalaavaan tilaan, <C_v> siirtyy suorakulmia (block) maalaavaan tilaan) | ||
w (Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin) | w M (Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin) | ||
W (Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina--) | W M (Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina--) | ||
x (Poista merkki kursorin alta) | "*x (Poista merkki kursorin alta) | ||
X (Poista edeltävä merkki) | "*X (Poista edeltävä merkki) | ||
y (Kopioi kursorinliikkeiden verran tekstiä) | "y m (Kopioi kursorinliikkeiden verran tekstiä) | ||
Y (Kopioi koko rivi) | "Y (Kopioi koko rivi) | ||
z ([[Vi#g|Lisätoimintonäppäin]]) | z ([[Vi#g|Lisätoimintonäppäin]], tee toiminto ...) | ||
Z (Sulje vim (ZZ tallentaa ja lopettaa, vrt. ':wq') ) | Z (Sulje vim (ZZ tallentaa ja lopettaa, vrt. ':wq', ZO lopettaa, vrt. ':q') ) | ||
å,Å,ä,Ä,ö,Ö (Vielä tyhjiä näppäimiä, käyttökohteita esim. [[Vim#Näppäinkartoittaminen|näppäinkartoitus]] | å,Å,ä,Ä,ö,Ö (Vielä tyhjiä näppäimiä, käyttökohteita esim. [[Vim#Näppäinkartoittaminen|näppäinkartoitus]] | ||
Helppo tapa opetella [[vim]]in peruskäyttö on '''vimtutor'''-ohjelma, joka tulee [[vim]]in 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 [ | Helppo tapa opetella [[vim]]in peruskäyttö on '''vimtutor'''-ohjelma, joka tulee [[vim]]in 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== |
muokkausta