Rekisteröitymätön käyttäjä
Ero sivun ”Vim” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Lisäsin maininnan NeoVimistä ja linkin siihen. Paransin kirjoitusasua.
V (keskustelu | muokkaukset) p (Polishing it. Taulukointi aika pitkälle Vim-automaatiota :)) |
(Lisäsin maininnan NeoVimistä ja linkin siihen. Paransin kirjoitusasua.) |
||
(44 välissä olevaa versiota 19 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{ 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 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 on [[ | |||
Nykyajan Linux-järjestelmissä | ==vi== | ||
<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== | ||
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. | 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 === | |||
Vimin peruskäyttöä neuvotaan artikkelissa [[Vimin peruskäyttö]]. | |||
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 === | |||
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=== | ===Toimintatilat=== | ||
'''Vim''' toimii erilaisissa | '''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== | ||
Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä | 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''. | ||
( | (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''). | Joitain komentoja voidaan kertoa lisäämällä niiden eteen numeroita. (Esim. '3de' on tulokseltaan identtinen edellisen esimerkin kanssa, listauksissa ilmaistu ominaisuutena ''K''). | ||
Rivi 29: | Rivi 55: | ||
(Esim. '''F1''' = '<F1>', '''Control + V''' = <C_v>, '''Enter''' = <CR>). | (Esim. '''F1''' = '<F1>', '''Control + V''' = <C_v>, '''Enter''' = <CR>). | ||
=== Peruskomennot === | |||
{| | |||
|'''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 <tt>tiedosto</tt> | |||
|- | |||
|: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=== | |||
{| | |||
{| | |||
|- | |- | ||
!Komentomerkki | !'''Komentomerkki''' | ||
!R | !'''R''' | ||
!K | !'''K''' | ||
!M/m | !'''M/m''' | ||
!Selitys | !'''Selitys''' | ||
|- | |- | ||
|a || || || || Lisää tekstiä aloittaen heti kursorin oikealta puolelta | |a || || || || Lisää tekstiä aloittaen heti kursorin oikealta puolelta | ||
Rivi 48: | Rivi 119: | ||
|B || ||X||M|| Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja | |B || ||X||M|| Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja | ||
|- | |- | ||
|c || || ||m|| Poistaa kursorinliikkeiden (motion verran tekstiä ja | |c || || ||m|| Poistaa kursorinliikkeiden (motion) verran tekstiä ja siirtyy syöttötilaan | ||
|- | |- | ||
|C || || || || Poistaa koko rivin tekstiä ja siirtyy syöttötilaan | |C || || || || Poistaa koko rivin tekstiä ja siirtyy syöttötilaan | ||
Rivi 100: | Rivi 171: | ||
|O || || || || Lisää uusi rivi ja tekstiä rivin yläpuolelle | |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 ('y'anked) tekstin kursorin jälkeen | ||
|- | |- | ||
|P ||X|| || || Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle | |P ||X|| || || Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle | ||
Rivi 106: | Rivi 177: | ||
|q || || || || Aloita makro ... | |q || || || || Aloita makro ... | ||
|- | |- | ||
|Q || || || || Siirry | |Q || || || || Siirry ex-tilaan (ex mode) | ||
|- | |- | ||
|r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ... | |r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ... | ||
Rivi 126: | Rivi 197: | ||
|v || || || || Siirry kirjaimia maalaavaan tilaan (visual mode) | |v || || || || Siirry kirjaimia maalaavaan tilaan (visual mode) | ||
|- | |- | ||
|V || || || || Siirry rivejä maalaavaan tilaan, <C_v> siirtyy suorakulmia (block maalaavaan tilaan | |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 kursorin seuraavaan sanaan pysähtyen välimerkkeihin | ||
Rivi 142: | Rivi 213: | ||
|z || || || || Lisätoimintonäppäin, tee toiminto ... | |z || || || || Lisätoimintonäppäin, tee toiminto ... | ||
|- | |- | ||
|Z || || || || Sulje | |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== | ==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== | |||
*[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] | |||
{{Kehitysympäristöt}} | |||
[[Luokka:Tekstieditorit]] | |||
[[ | [[pl:Vim]] |