{"id":202,"date":"2018-01-21T21:40:02","date_gmt":"2018-01-21T21:40:02","guid":{"rendered":"http:\/\/labiol.xyz\/?p=202"},"modified":"2020-02-08T20:14:40","modified_gmt":"2020-02-08T20:14:40","slug":"vi-vim-krotki-tutorial","status":"publish","type":"post","link":"https:\/\/www.labiol.xyz\/index.php\/2018\/01\/21\/vi-vim-krotki-tutorial\/","title":{"rendered":"VI, VIM &#8211; kr\u00f3tki tutorial"},"content":{"rendered":"<p>Podstawowe polecenia:<\/p>\n<p><strong>Vim \u2013 edytor tekstu<\/strong><\/p>\n<p>Vim jest edytorem tekstu dzia\u0142aj\u0105cym w konsoli. Jest klonem popularnego na platformach UNIX edytora VI. Dok\u0142adniejsze informacje mo\u017cna odnale\u017a\u0107 na stronie\u00a0<a href=\"http:\/\/pl.wikipedia.org\/wiki\/Vim#VIM_kontra_VI\">http:\/\/pl.wikipedia.org\/wiki\/Vim#VIM_kontra_VI<\/a>.<\/p>\n<p>Do najwa\u017cniejszych zalet tego programu zaliczy\u0142bym:<\/p>\n<ul>\n<li>wieloplatformowo\u015b\u0107 \u2013 je\u015bli jest konsola, prawdopodobnie kto\u015b wpad\u0142 ju\u017c na pomys\u0142 aby zainstalowa\u0107 tam VIMa ew. VI<\/li>\n<li>znajomo\u015b\u0107 kilku podstawowych komend pozwala nam ju\u017c wygodnie pracowa\u0107 z programem; w po\u0142\u0105czeniu z wytnij i wklej na przyk\u0142ad z putty vi daje dobry komfort pracy nawet dla os\u00f3b przyzwyczajonych do narz\u0119dzi graficznych<\/li>\n<li>VIM nie modyfikuje plik\u00f3w w spos\u00f3b niewidoczny \u2013 mam przez to na my\u015bli to, \u017ce VIM nie dodaje dodatkowych niewidocznych znacznik\u00f3w gdzie\u015b na ko\u0144cu linii czy pliku; jakie jest to istotne wie ka\u017cdy, kto mia\u0142 przyjemno\u015b\u0107 konfiguracji program\u00f3w typu squidGuard<\/li>\n<\/ul>\n<p>Vima mo\u017cna lubi\u0107 b\u0105d\u017a nie. Fakt jest taki, \u017ce jego znajomo\u015b\u0107 \u2013 cho\u0107 podstawowa bardzo si\u0119 przyda ka\u017cdemu kto ma styczno\u015b\u0107 chocia\u017cby z systemem linux.<\/p>\n<p>Filozofia pracy w vimie jest troch\u0119 odmienna od na przyk\u0142ad tej w notatniku. W vimie jest kilka tryb\u00f3w pracy. Najbardziej generalne rozr\u00f3\u017cnienie to tryb wprowadzania komend i tryb edycji. Do tego pierwszego zawsze wchodzimy przez wci\u015bni\u0119cie znaku [ESC]. W drugim mo\u017cemy znale\u017a\u0107 si\u0119 wielorako, na przyk\u0142ad przez wci\u015bni\u0119cie i lub [shift]+A (wielko\u015b\u0107 A ma znaczenie). Poni\u017cej przedstawiam kilka komend. Przypominam, \u017ce wszystkie musz\u0105 by\u0107 wykonywane w trybie komend \u2013 po wci\u015bni\u0119ciu [ESC]:<\/p>\n<ul>\n<li><strong>dd\u00a0<\/strong>\u2013 kasuje wiersz w kt\u00f3rych znajduje si\u0119 kursor (analogicznie 3dd kasuje 3 wiersze),\u00a0<strong>x<\/strong>\u00a0\u2013 kasuje literk\u0119 nad kt\u00f3r\u0105 znajduje si\u0119 kursor (mo\u017cna 3x \u2013 analogicznie j.w.),\u00a0<strong>d)<\/strong>\u00a0\u2013 usuwa ca\u0142e zdanie od pozycji kursora,\u00a0<strong>d$<\/strong>\u00a0&#8211; usuwa ca\u0142e zdanie od pozycji kursora do ko\u0144ca wiersza,\u00a0<strong>c), d$<\/strong>\u00a0&#8211; analogicznie jak poprzednie, tylko przeprowadza edytor w tryb wprowadzania,\u00a0<strong>dgg<\/strong>\u00a0\u2013 usuwa wszystko od pozycji kursora wy\u017cej<\/li>\n<li><strong>[shift]+[A]<\/strong>,\u00a0<strong>[shift]+[I]<\/strong>\u00a0\u2013 przenosi odpowiednio kursor na koniec wiersza lub pocz\u0105tek ustawiaj\u0105c edytor w tryb edycji,\u00a0<strong>[O]<\/strong>,\u00a0<strong>[shift]+[O]<\/strong>\u00a0\u2013 przenosi kursor nad\/pod wiersz z kursorem tworz\u0105c kolejny wiersz<\/li>\n<li><strong>[V]<\/strong>\u00a0\u2013 przenosi w tryb zaznaczania tekstu,\u00a0<strong>[v] \u2013\u00a0<\/strong>przenosi w tryb zaznaczania i mo\u017cna zaznaczy\u0107 ka\u017cdy znak pojedy\u0144czo,\u00a0<strong>[Y]<\/strong>\u00a0\u2013 kopiuje lini\u0119 tekstu do schowka (podobnie\u00a0<strong>[2Y]<\/strong>,<strong>[10Y]<\/strong>),\u00a0<strong>[yG]\u00a0<\/strong>&#8211; kopiuje tekst od pozycji kursora do ko\u0144ca,\u00a0<strong>yw\u00a0<\/strong>&#8211; kopiuje wyraz,\u00a0<strong>y$\u00a0<\/strong>&#8211; kopiuje do ko\u0144ca akapitu,\u00a0<strong>[P]<\/strong>\u00a0\u2013 wkleja tekst za kursorem,\u00a0<strong>[p]<\/strong>\u00a0\u2013 wkleja tekst przed kursorem,\u00a0<strong>[yy]<\/strong>\u00a0\u2013 kopiuje bie\u017c\u0105cy wiersz,<\/li>\n<li><strong>\/<\/strong>\u00a0&#8211; szukanie,\u00a0<strong>[N]\u00a0<\/strong>\u2013 szukanie kolejnego wyst\u0105pienia wyra\u017cenia,\u00a0<strong>[shift]+[N]<\/strong>\u00a0\u2013 szukanie poprzedniego wyst\u0105pienia wyra\u017cenia<\/li>\n<li><strong>%<\/strong>\u00a0&#8211; szukanie nawiasu otwieraj\u0105cego i zamykaj\u0105cego (po ponownym naci\u015bni\u0119ciu),<\/li>\n<li><strong>:s\/KL\/kl<\/strong>\u00a0\u2013 zamiana tekstu,\u00a0<strong>:s\/KL\/kl\/g<\/strong>\u00a0\u2013 zamiana tekstu w ca\u0142ym tek\u015bcie<\/li>\n<li><strong>:help<\/strong>\u00a0&#8211; przenosi w system pomocy,\u00a0<strong>:q<\/strong>\u00a0\u2013 zamyka system pomocy,\u00a0<strong>:help temat\u00a0<\/strong>\u2013 szukanie ju\u017c konkretnego tematu<\/li>\n<li>\u0141\u0105czenie dw\u00f3ch wierszy: <strong>&lt;shift&gt; + J; lub g+J<\/strong><\/li>\n<li>Zamiana kolumny na wiersze i dodanie przecink\u00f3w: <code style=\"white-space: pre-wrap;\"><strong>:%s\/\\n\/,\/<\/strong><\/code><\/li>\n<li>Wklejanie do vim (shift+insert lub ppm) cz\u0119sto ko\u0144czy si\u0119 zgubieniem formatowania. Tekst wygl\u0105da tragicznie i nic w nim nie wida\u0107. Aby temu zaradzi\u0107 (wy\u0142aczy\u0107 autoformatowanie, przenoszenie wierszy, wci\u0119cia) nale\u017cy przed wklejeniem wpisa\u0107<strong> set: paste<\/strong> a po wklejeniu <strong>set:nopaste<\/strong>.<\/li>\n<\/ul>\n<p>Oczywi\u015bcie VIM daje znacznie wi\u0119cej mo\u017cliwo\u015bci. Odsy\u0142am do podr\u0119cznika systemowego. My\u015bl\u0119, \u017ce znajomo\u015b\u0107 powy\u017cej opisanych polece\u0144 pozwala na wygodne poruszanie si\u0119 po programie. Wygodna jest r\u00f3wnie\u017c funkcja putty, mo\u017cemy zaznacza\u0107 tekst w oknie (co kopiuje materia\u0142 do schowka) i wkleja\u0107 go prawym przyciskiem myszy.<\/p>\n<p>Dla wszystkich korzystaj\u0105cych z\u00a0<strong>debiana<\/strong>. Po instalacji dystrybucji domy\u015blnie dysponujemy zainstalowanym programem vi (nie vim). Instalacja vim poleceniem: aptitude install vim. W\u0142\u0105czenie pod\u015bwietlania sk\u0142adni: echo &#8220;syntax on&#8221; &gt; ~\/.vimrc<\/p>\n<p>Uwagi do powy\u017cszego materia\u0142u prosz\u0119 przesy\u0142a\u0107 do mnie.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Podstawowe polecenia: Vim \u2013 edytor tekstu Vim jest edytorem tekstu dzia\u0142aj\u0105cym w konsoli. Jest klonem popularnego na platformach UNIX edytora VI. Dok\u0142adniejsze informacje mo\u017cna odnale\u017a\u0107 na stronie\u00a0http:\/\/pl.wikipedia.org\/wiki\/Vim#VIM_kontra_VI. Do najwa\u017cniejszych zalet tego programu zaliczy\u0142bym: wieloplatformowo\u015b\u0107 \u2013 je\u015bli jest konsola, prawdopodobnie kto\u015b wpad\u0142 ju\u017c na pomys\u0142 aby zainstalowa\u0107 tam VIMa ew. VI &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3,2],"tags":[],"class_list":["post-202","post","type-post","status-publish","format-standard","hentry","category-freebsd","category-linux","category-vmware"],"_links":{"self":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=202"}],"version-history":[{"count":6,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/202\/revisions"}],"predecessor-version":[{"id":606,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/202\/revisions\/606"}],"wp:attachment":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}