Ero sivun ”Vim” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (malline)
(Lisäsin maininnan NeoVimistä ja linkin siihen. Paransin kirjoitusasua.)
 
(36 välissä olevaa versiota 17 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{ Ohjelma | nimi=Vi IMproved | kuva=[[Kuva:vim.png]] | kuvateksti= | lisenssi=[[GPL]]-yhteensopiva | käyttöliittymä=teksti | kotisivu=[http://www.vim.org www.vim.org] }}
{{ Ohjelma | nimi=Vi IMproved | kuva=[[Kuva:vim.png]] | kuvateksti= | lisenssi=[[GPL]]-yhteensopiva/[http://vimdoc.sourceforge.net/htmldoc/uganda.html#license VIM-lisenssi] | käyttöliittymä=teksti | kotisivu=[http://www.vim.org www.vim.org] }}
[[Kuva:Gvim.png|250px|thumb|[[Gvim]], Vimin [[GTK|GTK-versio]].]]


Vim (Vi Improved) on Bram Molenaarin vi-editorin pohjalta kehittämä, tekstitilassa toimiva [[tekstieditori]]. Vimistä on myös saatavilla graafiset versiot [[gvim]] ja [[kvim]].
'''Vim''' (Vi Improved) on Bram Moolenaarin <tt>vi</tt>-editorin pohjalta kehittämä, tekstitilassa (tai pääteikkunassa) toimiva [[tekstieditori]]. Vimistä on myös saatavilla graafiset versiot [[gvim]] ja [[kvim]]. Vimistä on myös haarautunut [https://neovim.io NeoVim]. Vaikka useissa jakeluissa käyttäjäystävällisempiä tekstieditoreita löytyykin yltäkyllin, etenkin etäjärjestelmissä <tt>vi</tt> löytyy ainoana vaihtoehtona, joten sen käytön opettelu maksaa itsensä takaisin.


==Vi==
==vi==
Vi on [[wikipedia:fi:Bill_Joy|Bill Joy]]n vuonna 1976 [[BSD]]:lle kehittämä vi-tekstieditorin alkuperäisversio. Nykyajan Linux-järjestelmissä Vi on yleensä [[symbolinen linkki]] Vimiin. 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]].
<tt>vi</tt> on [[wikipedia:fi:Bill_Joy|Bill Joy]]n vuonna 1976 [[BSD]]:lle kehittämä <tt>vi</tt>-tekstieditorin alkuperäisversio. vi pohjautuu ex-[[rivieditori]]in, joka pohjautuu [[ed]]iin. Nykyajan Linux-järjestelmissä <tt>vi</tt> on yleensä [[symbolinen linkki]] Vimiin. Vim ei ole ainut <tt>vi</tt>-klooni, vaikka tunnetuin onkin. Muita <tt>vi</tt>-klooneja ovat mm. [[wikipedia:en:Elvis_(text_editor)|Elvis]] ja [[wikipedia:en:Nvi|nvi]].
 
<tt>vi</tt>-toteutusten toiminnallisuus määritellään [http://pubs.opengroup.org/onlinepubs/009604499/utilities/vi.html IEEE:n Unix-standardissa].


==Aloittaminen==
==Aloittaminen==
Rivi 10: Rivi 13:


=== Oppiminen ===
=== Oppiminen ===
Vimin peruskäyttöä neuvotaan artikkelissa [[Vimin peruskäyttö]].


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 komentotilassa ''':help [aihe]''' esimerkiksi ''':help copy'''. Erityisesti [[Debian]]-pohjaisissa [[jakelu]]issa ei Vimin oletusasennuspaketin mukana toimiteta ohjeita ja valmiita asetustiedostoja. Ohjeet saa tällöin käyttöön asentamalla paketin vim-runtime tai vim-common. 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 <code>vimtutor</code>-ohjelma, joka tulee Vimin mukana. Pika-apua jonkin näppäimen/komennon/tehtävän suhteen saat kirjoittamalla komentotilassa ''':help [aihe]''' esimerkiksi ''':help copy'''. Erityisesti [[Debian]]-pohjaisissa [[jakelu]]issa ei Vimin oletusasennuspaketin (vim-tiny) mukana toimiteta ohjeita eikä valmiita asetustiedostoja. Ohjeet saa käyttöön asentamalla laajemman Vim-version, esimerkiksi paketin vim tai vim-gtk. 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 Studion laajennuspalikan ViEmun kotisivu).
====Pelien avulla oppiminen====
* PacVim: <span class="plainlinks archwiki-template-pkg" style=font-family:monospace; font-size:11.375px; line-height:18.2px; font-weight:bold;>[https://aur.archlinux.org/packages/pacvim-git pacvim-git]</span><sup><small>AUR</small></sup> | git: [https://github.com/jmoon018/PacVim github.com/jmoon018/PacVim]
* Vim Adventures: [https://vim-adventures.com/ vim-adventures.com]
* Vim Genius: [http://www.vimgenius.com/ vimgenius.com]
* Vim Snake: [https://vimsnake.com/ vimsnake.com] | git: [https://github.com/patmood/vim_snake/ github.com/patmood/vim_snake]


=== Käynnistäminen ===
=== Käynnistäminen ===
Rivi 27: Rivi 36:
  vim tiedosto1 tiedosto2
  vim tiedosto1 tiedosto2
Tällöin kun ensimmäinen tiedosto suljetaan, aloitetaan toisen tiedoston muokkaaminen.
Tällöin kun ensimmäinen tiedosto suljetaan, aloitetaan toisen tiedoston muokkaaminen.


===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. Kirjoitustilaan pääsee painamalla i- tai INSERT-näppäintä.
'''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 [[ex]]-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. Kirjoitustilaan pääsee painamalla i- tai INSERT-näppäintä.


==Komennot==
==Komennot==
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 ominaisuutena ''M'') voidaan käyttää joidenkin komentojen kanssa rajaamaan komennon toiminta-aluetta. Komennot jotka vastaanottavat '''tai tarvitsevat''' kursorinliikkeitä toimiakseen, ilmaistaan ominaisuutena ''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''.
Rivi 79: Rivi 87:
|:e
|:e
|Muokkaa tiedostoa uudelleen, ei tallenna muutoksia
|Muokkaa tiedostoa uudelleen, ei tallenna muutoksia
|-
|:e tiedosto
|Avaa muokattavaksi tiedoston <tt>tiedosto</tt>
|-
|-
|:we!
|:we!
Rivi 85: Rivi 96:
|:u
|:u
|Peruu viimeisimmän muutoksen
|Peruu viimeisimmän muutoksen
|-
|:redo tai Ctrl-R
|Tekee perutun muutoksen uudelleen
|}
|}


===Aakkosnäppäinten komennot komentotilassa===
===Aakkosnäppäinten komennot komentotilassa===
Rivi 164: Rivi 177:
|q || || || || Aloita makro ...
|q || || || || Aloita makro ...
|-
|-
|Q || || || || Siirry x-tilaan (ex mode)
|Q || || || || Siirry ex-tilaan (ex mode)
|-
|-
|r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ...
|r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ...
Rivi 200: Rivi 213:
|z || || || || Lisätoimintonäppäin, tee toiminto ...
|z || || || || Lisätoimintonäppäin, tee toiminto ...
|-
|-
|Z || || || || Sulje vim (ZZ tallentaa ja lopettaa, vrt. ':x', ZQ lopettaa, vrt. ':q!')
|Z || || || || Sulje Vim (ZZ tallentaa ja lopettaa, vrt. ':x', ZQ lopettaa, vrt. ':q!')
|-
|-
|å,Å,ä,Ä,ö,Ö || || || || Vielä tyhjiä näppäimiä, käyttökohteita esim. näppäinkartoitus
|å,Å,ä,Ä,ö,Ö || || || || Käyttämättömiä näppäimiä, vapaana esimerkiksi käyttäjän omille määrityksille
|}
|}


==Katso myös==
==Katso myös==
*[[nvim]]
*[[Emacs]]
*[[Emacs]]
*[[Joe]]
*[[Nano]]
*[[Nano]]
*[[Pico]]
*[[Pico]]
*[[Vimin peruskäyttö]]
==Kirjallisuutta==
*[https://iccf-holland.org/click5.html Painettua kirjallisuutta, joista ICCF saa osansa]
*[https://www.truth.sk/vim/vimbook-OPL.pdf Vim 5.7:lle kirjoitetun 600-sivuisen kirjan PDF-versio, julkaistu vuonna 2001]
*[https://skrolli.fi/2015.3.botti.pdf Vim-artikkeli Skrolli-lehdessä (s.26)]
==Aiheesta muualla==


==Linkkejä==
*[http://ex-vi.sourceforge.net/ The Traditional Vi]
*[http://ex-vi.sourceforge.net/ The Traditional Vi]
*[https://www.vim.org/ Vimin kotisivu]
*[https://www.vim.org/6k/features.fi.txt Vim selitettynä kuudessa kilotavussa]


*[http://www.vim.org/ Vimin kotisivu]
{{Kehitysympäristöt}}
[[Luokka:Tekstieditorit]]


[[Luokka:Tekstieditorit]]
[[pl:Vim]]

Nykyinen versio 19. huhtikuuta 2024 kello 12.03

Vi IMproved

Käyttöliittymä teksti
Lisenssi GPL-yhteensopiva/VIM-lisenssi
Kotisivu www.vim.org
Gvim, Vimin GTK-versio.

Vim (Vi Improved) on Bram Moolenaarin vi-editorin pohjalta kehittämä, tekstitilassa (tai pääteikkunassa) toimiva tekstieditori. Vimistä on myös saatavilla graafiset versiot gvim ja kvim. Vimistä on myös haarautunut NeoVim. Vaikka useissa jakeluissa käyttäjäystävällisempiä tekstieditoreita löytyykin yltäkyllin, etenkin etäjärjestelmissä vi löytyy ainoana vaihtoehtona, joten sen käytön opettelu maksaa itsensä takaisin.

vi[muokkaa]

vi on Bill Joyn vuonna 1976 BSD:lle kehittämä vi-tekstieditorin alkuperäisversio. vi pohjautuu ex-rivieditoriin, joka pohjautuu ediin. Nykyajan Linux-järjestelmissä vi on yleensä symbolinen linkki Vimiin. Vim ei ole ainut vi-klooni, vaikka tunnetuin onkin. Muita vi-klooneja ovat mm. Elvis ja nvi.

vi-toteutusten toiminnallisuus määritellään IEEE:n Unix-standardissa.

Aloittaminen[muokkaa]

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. Vim on kuitenkin hyvä editori, jos sille uhraa hieman aikaa.

Oppiminen[muokkaa]

Vimin peruskäyttöä neuvotaan artikkelissa Vimin peruskäyttö.

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 komentotilassa :help [aihe] esimerkiksi :help copy. Erityisesti Debian-pohjaisissa jakeluissa ei Vimin oletusasennuspaketin (vim-tiny) mukana toimiteta ohjeita eikä valmiita asetustiedostoja. Ohjeet saa käyttöön asentamalla laajemman Vim-version, esimerkiksi paketin vim tai vim-gtk. Näppärän muistilapun voi tulostaa itselleen täältä [1] (Kyseessä siis Microsoft Visual Studion laajennuspalikan ViEmun kotisivu).

Pelien avulla oppiminen[muokkaa]

Käynnistäminen[muokkaa]

Vim käynnistetään yksinkertaisesti komennolla

vim tiedosto

Jos Vim on jostain syystä kaatunut tiedostoa muokatessa, muokkausta jatketaan komennolla

vim -r tiedosto

Muokkaaminen voidaan aloittaa suoraan riviltä N komennolla

vim +N tiedosto

ja tiedoston lopusta komennolla

vim + tiedosto

Muokkaaminen voidaan aloittaa myös kohdasta, jossa tietty merkkijono esiintyy ensimmäisen kerran komennolla

vim +/merkkijono tiedosto

Useampia tiedostoja voidaan muokata komennolla

vim tiedosto1 tiedosto2

Tällöin kun ensimmäinen tiedosto suljetaan, aloitetaan toisen tiedoston muokkaaminen.

Toimintatilat[muokkaa]

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 ex-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. Kirjoitustilaan pääsee painamalla i- tai INSERT-näppäintä.

Komennot[muokkaa]

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 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ä).

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 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 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>).

Peruskomennot[muokkaa]

Komento Kuvaus
ZZ tai :wq tai :x Tallentaa ja poistuu
:w Tallentaa tiedoston
:w tiedosto Tallentaa tiedoston nimellä tiedosto
:w! Tallentaa tiedoston nimellä jättäen tarkistamatta mm. kirjoitusoikeudet
:a,bw tiedosto Tallentaa tiedot riviltä a riville b nimellä tiedosto
:a,bw>>tiedosto Tallentaa tiedot riviltä a riville b tiedoston tiedosto loppuun
:q Poistuu tallentamatta
:q! Pakottaa poistumaan tallentamatta
:e Muokkaa tiedostoa uudelleen, ei tallenna muutoksia
:e tiedosto Avaa muokattavaksi tiedoston tiedosto
:we! Muokkaa tiedostoa uudelleen, tallentaa muutokset ennen uudestaan muokkausta
:u Peruu viimeisimmän muutoksen
:redo tai Ctrl-R Tekee perutun muutoksen uudelleen

Aakkosnäppäinten komennot komentotilassa[muokkaa]

Komentomerkki R K M/m Selitys
a Lisää tekstiä aloittaen heti kursorin oikealta puolelta
A Lisää tekstiä rivin loppuun
b X M Mene sana taaksepäin pysähtyen välimerkkeihin
B X M Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja
c m Poistaa kursorinliikkeiden (motion) verran tekstiä ja siirtyy syöttötilaan
C Poistaa koko rivin tekstiä ja siirtyy syöttötilaan
d X X Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin
D X X Poistaa tekstin kursorista rivin loppuun
e X M Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin
E X M Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--
f X M Etsi seuraava kirjain ...
F X M Etsi edellinen kirjain ...
g Lisätoimintonäppäin, tee toiminto ...
G Siirtyy riville ... tai tiedoston loppuun (esim. '10G' -> siirry riville '10')
h X M Liikuttaa kursoria vasemmalle
H M Liikuttaa kursorin näytettävän tekstiosan alkuun
i Lisää tekstiä heti kursorin kohdalle
I Lisää tekstiä rivin alkuun
j X M Liikuttaa kursoria alas
J X Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon
k X M Liikuttaa kursoria ylös
K Ajaa kursorin alla olevan sanan man-komennon argumenttinä
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 ''a')
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 ex-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. ':x', ZQ lopettaa, vrt. ':q!')
å,Å,ä,Ä,ö,Ö Käyttämättömiä näppäimiä, vapaana esimerkiksi käyttäjän omille määrityksille

Katso myös[muokkaa]

Kirjallisuutta[muokkaa]

Aiheesta muualla[muokkaa]

v  k  m
Kehitysympäristöt
Perinteiset Komentorivi | Tekstieditorit | Vim | Emacs
GNOME Anjuta
KDE KDevelop
JAVA Borland JBuilder | EclipseNetBeans
muut Geany | JeditLazarus
web ElectronBluefish