linux:vim

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronach Poprzednia wersja
Nowa wersja
Poprzednia wersja
linux:vim [2014/11/02 19:09] – [inne] flamencolinux:vim [2022/05/22 10:38] (aktualna) – edycja zewnętrzna 127.0.0.1
Linia 1: Linia 1:
 ====== VIM ====== ====== VIM ======
 ===== Lista komend Vima ===== ===== Lista komend Vima =====
 +na podstawie [[http://blog.adiasz.pl/2008/02/03/vim-podstawowe-komendy/|tej strony]]
 ==== poruszanie się po dokumencie ==== ==== poruszanie się po dokumencie ====
  
Linia 77: Linia 77:
 '':#,#s/OLD/NEW/g'' – pomiędzy liniami # i # \\ '':#,#s/OLD/NEW/g'' – pomiędzy liniami # i # \\
 '':%s/OLD/NEW/g'' – w całym dokumencie \\ '':%s/OLD/NEW/g'' – w całym dokumencie \\
-'':%s/([0-9]+) OLD/1 NEW/g'' – w całym dokumencie z użyciem backreferencji (trzeba poprzez "" wyescapować znaki specjalne, następnie poprzez "1" wstawić wyciągnięte dane) \\+'':%s/([0-9]+) OLD/1 NEW/g'' – w całym dokumencie z użyciem backreferencji (trzeba poprzez ''""'' wyescapować znaki specjalne, następnie poprzez "1" wstawić wyciągnięte dane) \\
  
 ==== praca z danymi zewnętrznymi ==== ==== praca z danymi zewnętrznymi ====
Linia 89: Linia 89:
 '':r ! w3m http://en.wikipedia.org/wiki/Vi -dump'' – wczytanie do edytora zawartości strony internetowej \\ '':r ! w3m http://en.wikipedia.org/wiki/Vi -dump'' – wczytanie do edytora zawartości strony internetowej \\
  
-==== Praca z zakładkami ====+==== praca z zakładkami ====
  
-'':tabs'' – wyświetlenie informacjie o aktualnie otwartych zakładkach +'':tabs'' – wyświetlenie informacjie o aktualnie otwartych zakładkach \\ 
-'':tabnew'' – otwarcie pustej zakładki +'':tabnew'' – otwarcie pustej zakładki \\ 
-'':tabnew FILE'' – otwarcie pliku FILE w nowej zakładce +'':tabnew FILE'' – otwarcie pliku FILE w nowej zakładce \\ 
-'':tabf FILE'' – otwarcie pliku w nowej zakładce +'':tabf FILE'' – otwarcie pliku w nowej zakładce \\ 
-'':tabn'' – przejście do następnej zakładki +'':tabn'' – przejście do następnej zakładki \\ 
-''gt'' – przejście do następnej zakładki (działa w trybie NORMAL) +''gt'' – przejście do następnej zakładki (działa w trybie NORMAL) \\ 
-''gT'' – przejście do poprzedniej zakładki (działa w trybie NORMAL) +''gT'' – przejście do poprzedniej zakładki (działa w trybie NORMAL) \\ 
-''n gt'' – przejście do zakładki o numerze n (działa w trybie NORMAL) +''n gt'' – przejście do zakładki o numerze n (działa w trybie NORMAL) \\ 
-''n gT'' – cofnięcie się do zakładki znajdującej się w odległości n od aktualnej (działa w trybie NORMAL) +''n gT'' – cofnięcie się do zakładki znajdującej się w odległości n od aktualnej (działa w trybie NORMAL) \\ 
-'':tabp'' – przejście do poprzedniej zakładki +'':tabp'' – przejście do poprzedniej zakładki \\ 
-'':tabl'' – przejście do ostatniej zakładki +'':tabl'' – przejście do ostatniej zakładki \\ 
-'':tabc'' – zamknięcie aktualnej zakładki, gdy jest jedna karta, to nie będzie zamknięta +'':tabc'' – zamknięcie aktualnej zakładki, gdy jest jedna karta, to nie będzie zamknięta \\ 
-:tabo – zamknięcie wszystkich zakładek oprócz tej która jest aktualnie używana +'':tabo'' – zamknięcie wszystkich zakładek oprócz tej która jest aktualnie używana \\ 
-:tabd KOMENDA – wykonuje komendę na wszystkich otwartych zakładkach+'':tabd KOMENDA'' – wykonuje komendę na wszystkich otwartych zakładkach \\
  
-Polecam rewelacyjny VIM Tutorial. +==== okna ==== 
-===== Czyt Szyt komend Vim  ======+ 
 + 
 +'':split'' lub ''CTRL+w+s'' - podziel okno w poziomie \\  
 +'':vsplit'' lub ''CTRL+w+v'' - podziel okno w pionie \\ 
 +''CTRL+w+[h/j/k/l]'' - przechodzenie między oknami, gdzie kierunek to oczywiście ''h'', ''j'', ''k'' lub ''l''. \\ 
 +''CTRL + w + w'' -  przejdź do nast. okna w kolejce \\ 
 + 
 +Polecam rewelacyjny [[http://www.openvim.com/tutorial.html|VIM Tutorial]].
  
 ---- ----
  
 +===== Czyt Szyt komend Vim  ======
 +
 +==== Zaznaczanie kolumny ====
 +
 +W skrócie:
 +  CTRL+V → <Down>→<Down>→<Down>→<Down> → c → napisz → <ESC><ESC>
 +
 +  * Wejdź w tryb NORMALNY
 +  * Połóż kursor na początek tekstu do zaznaczenia
 +  * Naciśnij ''CTRL-V'' i kieruj kursor w dół zaznaczenia
 +  * Po zaznaczeniu wszystkich linijek naciśnij ''c''
 +  * Wpisz nowy tekst. Nie bój, że widać tylko w pierwszej linijce!
 +  * Uderz ''<ESC><ESC>''. Cały tekst się zmienił!!!
 ==== Jak wyjść z Vima ===== ==== Jak wyjść z Vima =====
  
-| :q[uit] | Zakończ Vim. //Nie// zadziała, jeżeli zostały wprowadzone zmiany. |+| :q[uit] | Zakończ Vim. Nie zadziała, jeżeli zostały wprowadzone zmiany. |
 | :q[uit]! | Wymuś zakończenie. Zakończ bez zapisywania zmian. | | :q[uit]! | Wymuś zakończenie. Zakończ bez zapisywania zmian. |
 | :cq[uit] | Zawsze zakończ bez wprowadzania zmian. | | :cq[uit] | Zawsze zakończ bez wprowadzania zmian. |
Linia 163: Linia 183:
 | D | Skasuj znaki począwszy od tego POD kursorem DO KOŃCA LINII | | D | Skasuj znaki począwszy od tego POD kursorem DO KOŃCA LINII |
 | {Visual}x lub\\  {Visual}d | Skasuj podświetlony tekst (w trybie WIZUALNYM), patrz-> [[#select|Zaznaczanie tekstu]]). | | {Visual}x lub\\  {Visual}d | Skasuj podświetlony tekst (w trybie WIZUALNYM), patrz-> [[#select|Zaznaczanie tekstu]]). |
-/*| {Visual}CTRL-H lub\\  {Visual} | W trybie WIZUALNYM When in Select mode: Delete the highlighted text |*/+/* | {Visual}CTRL-H lub\\  {Visual} | W trybie WIZUALNYM When in Select mode: Delete the highlighted text | */
 | {Visual}X lub\\  {Visual}D | Skasuj podświetlone linie. | | {Visual}X lub\\  {Visual}D | Skasuj podświetlone linie. |
 | :[range]d[elete] | Skasuj linię nr [range] (domyślnie: bieżąca linia) | | :[range]d[elete] | Skasuj linię nr [range] (domyślnie: bieżąca linia) |
Linia 204: Linia 224:
 ==== Kopiowanie i przesuwanie tekstu ===== ==== Kopiowanie i przesuwanie tekstu =====
  
-| "{a-zA-Z0-9.%#:-"} | Użyj rejestru {a-zA-Z0-9.%#:-"} dla następnego kasowania, kopiowania lub wklejania /*(użyj wielkich liter) (use uppercase character to append with delete and yank) ({.%#:} only work with put)*/. |+| "{a-zA-Z0-9.%#:-"} | Użyj rejestru {a-zA-Z0-9.%#:-"} dla następnego kasowania, kopiowania lub wklejania /* (użyj wielkich liter) (use uppercase character to append with delete and yank) ({.%#:} only work with put) */. |
 | :reg[isters] | Wyświetl zawartość wszystkich ponumerowanych i nazwanych rejestrów. | | :reg[isters] | Wyświetl zawartość wszystkich ponumerowanych i nazwanych rejestrów. |
 | :reg[isters] {arg} | Wyświetl zawartość ponumerowanych i nazwanych rejestrów wymienionych w {arg}. | | :reg[isters] {arg} | Wyświetl zawartość ponumerowanych i nazwanych rejestrów wymienionych w {arg}. |
-| :di[splay] [arg] | Tak samo jak '':registers''. | +| :di[splay] [arg] | Tak samo jak '':reg''. | 
-| ["x]y{motion} | Yank {motion} text [into register x]. | +| [x]y{motion} | Skopiuj tekst z linii bieżącej i nast. wskazanej przez {motion} do rejestru //x//. | 
-| ["x]yy | Yank [count] lines [into register x] | +/* | [x]yy | Skopiuj [count] lines [into register x] | */ 
-| ["x]Y | yank [count] lines [into register x] (synonym for yy). | +| [x]y[count] | Skopiuj [count] linii + bieżąca (do rejestru //x// jeśli wpisany). 
-| {Visual}["x]y | Yank the highlighted text [into register x] (for {Visual} see [[#select|Selecting Text]]). | +/* | [x]Y | yank [count] lines [into register x] (synonym for yy). | */ 
-| {Visual}["x]Y | Yank the highlighted lines [into register x] | +| {Visual}[x]y | Skopiuj podświetlony tekst [do rejestru //x//] (Tryb WIZUALNY {Visual} -> patrz [[#select|Zaznaczanie tekstu]]). | 
-| :[range]y[ank] [x] | Yank [range] lines [into register x]. | +| {Visual}[x]Y | Skopiuj podświetlone linie (nawet jeśli nie całe podświetlone) [do rejestru //x//] | 
-| :[range]y[ank] [x] {count} | Yank {count} linesstarting with last line number in [range] (defaultcurrent line), [into register x]. | +| :[range]y[ank] [x] {motion} Skopiuj [range] linii [do rejestru x] w kierunku {motion}. | 
-| ["x]p | Put the text [from register x] after the cursor [count] times. | +| :[range]y[ank] [x] {count} | Skopiuj {count} liniipoczynając od linii ostatniej w [range] (domyślnieaktualna linia), [do rejestru x]. | 
-| ["x]P | Put the text [from register x] before the cursor [count] times. | +| [x]p | Wklej tekst [z rejestru x] PO kursorze. | 
-| ["x]gp | Just like "p", but leave the cursor just after the new text. | +| [x]P | Wklej tekst [z rejestru x] PRZED kursorem. | 
-| ["x]gP | Just like "P", but leave the cursor just after the new text. | +| [x]gp | Jak "p", ale zostaw kursor zaraz PO wklejonym tekście. | 
-| :[line]pu[t] [x] | Put the text [from register x] after [line] (default current line). | +| [x]gP | Jak "p", ale zostaw kursor zaraz PO wklejonym tekście. | 
-| :[line]pu[t]! [x] | Put the text [from register x] before [line] (default current line). |+| :[line]pu[t] [x] | Wklej tekst [z rejestru x] PO linii nr [line] (domyślnie: aktualna linia). | 
 +| :[line]pu[t]! [x] | Wklej tekst [z rejestru x] PRZED linią nr [line] (domyślnie: aktualna linia). |
  
 ---- ----
  
-==== Undo/Redo/Repeat =====+==== Undo/Redo/Repeat/Cofnij/Ponów/Powtórz =====
  
-| u | Undo [countchanges. | +| u | Cofnij. | 
-| :u[ndo] | Undo one change. | +| :u[ndo| Cofnij jedną zmianę. | 
-| CTRL-R | Redo [countchanges which were undone. | +| :u[ndo][count] | Cofnij [count] zmian. | 
-| :red[o] | Redo one change which was undone. | +| CTRL-R | Ponów cofniętą zmianę. | 
-| U | Undo all latest changes on one line{Vi: while not moved off of it} +| :red[o| Ponów cofniętą zmianę. | 
-| . | Repeat last change, with count replaced with [count]. |+| :red[o][count] | Ponów [count] cofniętych zmian. | 
 +| U | Cofnij wszystkie ostatnie zmiany w danej linii. | 
 +| . | Powtórz ostatnią zmianę ile razy chcesz naciskając kropkę. |
  
 ---- ----
Linia 237: Linia 260:
 ==== Moving Around ===== ==== Moving Around =====
  
-  Basic motion commands+  Podstawowe komendy przemieszczania kursora
 +<code>
           k           k
         h   l         h   l
           j           j
- +</code> 
-| h or\\ | [count] characters to the left (exclusive). | +[count]h | [count] znaków w lewo. | 
-| l or\\  or\\ | [count] characters to the right (exclusive). | +[count]l | [count] znaków w prawo. | 
-| k or\\  or\\  CTRL-P | [count] lines upward +[count]lub\\ -(minus) lub\\ CTRL-P | [count] znaków w górę. 
-| j or\\  or\\  CTRL-J or\\  or\\  CTRL-N | [count] lines downward (linewise). | +[count]lub\\ +(plus) lub\\CTRL-J lub\\CTRL-N | [count] znaków w dół. | 
-| 0 | To the first character of the line (exclusive). | +| 0 | Do pierwszego znaku w linii. | 
-| &lt;Home&gt;To the first character of the line (exclusive). | +| &lt;Home&gt;Do pierwszego znaku w linii. | 
-| ^ | To the first non-blank character of the line +| ^ | Do pierwszej nie-spacji w linii. 
-| $ or\\  &lt;End&gt; To the end of the line and [count - 1] lines downward +| $ | Do końca linii. 
-| g0 or\\  g&lt;Home&gt;When lines wrap ('wrap on): To the first character of the screen line (exclusive)Differs from "0" when line is wider than the screen. When lines don't wrap ('wrapoff)To the leftmost character of the current line that is on the screen. Differs from "0" when the first character of the line is not on the screen. | +| g0 or\\  g&lt;Home&gt;Jeżeli wiersze się zawijają, idź do pierwszego znaku w linii ekranowejDziałinaczej niż ''0'' na ekranach różnej szerokości.Kiedy linie nie zawijają sięidź do znaku najbardziej po lewej w danej linii na ekranie. | 
-| g^ | When lines wrap ('wrap' on)To the first non-blank character of the screen line (exclusive)Differs from "^" when line is wider than the screen. When lines don't wrap ('wrapoff): To the leftmost non-blank character of the current line that is on the screen. Differs from "^" when the first non-blank character of the line is not on the screen. | +| g^ | Kiedy linie się zawijająidź do pierwszej nie-spacji na linii ekranowejJ.w. działinaczej niż ''^''. | 
-| g$ or\\  g&lt;End&amp;gr; When lines wrap ('wrap' on)To the last character of the screen line and [count - 1] screen lines downward (inclusive)Differs from "$" when line is wider than the screen. When lines don't wrap ('wrapoff): To the rightmost character of the current line that is visible on the screen. Differs from "$" when the last character of the line is not on the screen or when a count is used. | +| g$ | Kiedy linie się zawijająidź do ostatniego znaku w linii ekranowej. J.wdziałinaczej niż ''$'', które każe iść do końca linii tekstu. | 
-| f{char} | To [count]'th occurrence of {char} to the right. The cursor is placed on {char} (inclusive). | +| f{char} | Idź w prawo do wystąpienia znaku {char}. | 
-| F{char} | To the [count]'th occurrence of {char} to the left. The cursor is placed on {char} (inclusive). | +| F{char} | Idź w lewo do wystąpienia znaku {char}. | 
-| t{char} | Till before [count]'th occurrence of {char} to the rightThe cursor is placed on the character left of {char} (inclusive). +| t{char} | Idź w lewo do wystąpienia znaku {char}. Kursor stanie na znaku na lewo od {char} | 
-| T{char} | Till after [count]'th occurrence of {char} to the leftThe cursor is placed on the character right of {char} (inclusive). +| T{char} | Idź w lewo do wystąpienia znaku {char}. Kursor stanie na znaku na prawo od {char} | 
-| ; | Repeat latest f, t, F or [count] times. | +| ; | Powtarzaj ostatnie ''f, t, F lub T''. | 
-| , | Repeat latest f, t, F or in opposite direction [count] times. | +| , | Powtarzaj ostatnie ''f, t, F lub T'' w przeciwnym kierunku. | 
-| - &lt;minus&gt; | [count] lines upward, on the first non-blank character (linewise). | +/* | _ &lt;underscore&gt; | [count] - 1 lines downward, on the first non-blank character (linewise). | */ 
-| + or\\  CTRL-M or\\  &lt;CR&gt; | [count] lines downward, on the first non-blank character (linewise). | +| &lt;C-End&gt; or\\  G | Idź do ostatniej linii. |  
-| _ &lt;underscore&gt; | [count] - 1 lines downward, on the first non-blank character (linewise). | +| &lt;C-Home&gt; or\\  gg | Idź do pierwszej linii. | 
-| &lt;C-End&gt; or\\  G | Goto line [count], default last line, on the first non-blank character. | +| &lt;S-Right&gt; or\\  w | słowo naprzód (w prawo). Rozpoznaje znaki inne niż spacja. 
-| &lt;C-Home&gt; or\\  gg | Goto line [count], default first line, on the first non-blank character. | +| &lt;C-Right&gt; or\\  W | słowo naprzód (w prawo). Rozpoznaje tylko spacje. 
-| &lt;S-Right&gt; or\\  w | [count] words forward +| e | Na koniec słowa. Wg nie tylko spacji. 
-| &lt;C-Right&gt; or\\  W | [count] WORDS forward +| E | Na koniec słowa. Wg tylko spacji. |
-| e | Forward to the end of word [count] +
-| E | Forward to the end of WORD [count] |+
 | &lt;S-Left&gt; or\\  b | [count] words backward | | &lt;S-Left&gt; or\\  b | [count] words backward |
 | &lt;C-Left&gt; or\\  B | [count] WORDS backward | | &lt;C-Left&gt; or\\  B | [count] WORDS backward |
Linia 352: Linia 373:
  
  Daniel Gryniewicz / [[mailto:dang@fprintf.net|dang@fprintf.net]]  Daniel Gryniewicz / [[mailto:dang@fprintf.net|dang@fprintf.net]]
 +
  
 ===== Różne czyt-szyty ===== ===== Różne czyt-szyty =====
Linia 365: Linia 387:
 ===== vimrc ===== ===== vimrc =====
 {{:linux:vimrc.text|mój vimrc}} - nic ciekawego, skopiowałem go z [[http://vim.wikia.com/wiki/Example_vimrc|wiki vima]]. Mam zamiar poprawiać upload, gdy coś zmienię w tym pliku. Na razie mi się podoba. {{:linux:vimrc.text|mój vimrc}} - nic ciekawego, skopiowałem go z [[http://vim.wikia.com/wiki/Example_vimrc|wiki vima]]. Mam zamiar poprawiać upload, gdy coś zmienię w tym pliku. Na razie mi się podoba.
 +===== Pluginy do Vima =====
 +
 +
 +==== vim-templates ====
 +Bardzo fajoski. Szymele dokumentów znajdują się w katalogu ~/.vim/templates/ i mogą się nazywać jak bądź (więc nie tylko formatem, ale i innymi cechami mogą się różnić).
 +
 +Wywołanie:
 +
 +'':setf html'' czyli **:setf**SPACJA//nazwa szymelku//
 +
 +[[http://www.vim.org/scripts/script.php?script_id=1172|Źródełko]]
 +==== VIM-LATEXSUITE ====
 +
 +  * [[http://michaelgoerz.net/refcards/vimlatexqrc.pdf|cheat sheet]] - szybkie komendy
 +  * [[http://vim-latex.sourceforge.net/documentation/|PEŁNA DOKUMENTACJA]]
 +
 +LatexSuite potrafi ukryć (to fold) całe partie pliku ''.tex''. Odsłania się je tak:
 +
 +  * wejść w tryb NORMALNY (np. Esc)
 +  * najechać kursorem na znacznik zafoldowanej linii
 +  * napisać '':za''
 +==== INNE ====
 +
 +
 +  * [[http://karolsamborski.blogspot.com/2011/11/vim-ciekawsze-pluginy.html|ciekawe pluginy od Krzysztofa Samborskiego (nie jego autorstwa, tylko opis]]
 +===== Makra w Vimie =====
 +[[http://karolsamborski.blogspot.com/2011/11/makra-w-vimie.html| z tej strony]]
 +==== Tworzenie makr ====
 +Nagrywanie makra rozpoczynamy wciskając ''q'' oraz literę (''a-z''). Oznacza ona nazwę rejestru, do którego będą zapisywane wciskane klawisze. Ta informacja przyda nam się później do przypisywania skrótu klawiszowego. Gdy już rozpoczniemy nagrywanie to wykonujemy kolejno czynności, które chcielibyśmy powtarzać, a później kończymy nagrywanie wciskając klawisz ''q''. W tym momencie możemy wykonać makro wciskając ''@'' oraz literę, którą wybraliśmy przy nagrywaniu makra.
 +
 +Podam teraz przykład bardzo prostego makra. Będzie ono wstawiać zaznaczony tekst w cudzysłowy, czyli jak zaznaczymy tekst "Ala ma kota." i wykonamy makro to w efekcie dostaniemy "Ala ma kota.".
 +Cały trik polega na tym, że wycinamy zaznaczony tekst, wstawiamy cudzysłów, wklejamy tekst i wstawiamy cudzysłów. Wykonujemy więc kolejno:
 +  - zaznaczamy kawałek tekstu
 +  - rozpoczynamy nagrywanie makra "''a''": ''qa''
 +  - wycinamy tekst: ''c''
 +  - wstawiamy cudzysłów: ''"''
 +  - wychodzimy z trybu wstawiania: ''escape''
 +  - wklejamy wycięty tekst: ''p''
 +  - przechodzimy do trybu wstawiania: ''a''
 +  - wstawiamy cudzysłów: ''"''
 +  - wychodzimy z trybu wstawiania:''escape''
 +  - kończymy nagrywanie makra: ''q''
 +
 +Teraz możemy przetestować działanie naszego makra poprzez zaznaczenie dowolnego tekstu i wciśnięcie ''@a''.
 +
 +==== Przypisanie skrótu klawiszowego ====
 +Skróty tworzy się poleceniem ''map''. Jego składnia z grubsza wygląda tak:\\
 +'':map <klawisz> <sekwencja>'' \\
 +Aby więc zmapować jakieś makro potrzebujemy nagranej sekwencji. Jak już wspominałem wcześniej makra zostają zapisane do wybranego rejestru, tzn. jeżeli na początku wcisnęliśmy qa to nasza sekwencja znajduje się w rejestrze ''a''. Możemy więc w bardzo prosty sposób ją wyciągnąć. Mianowicie jak już wpiszemy np. '':map <C-t>'' to wciskamy ''<C-r>'' po czym naciskamy literę odpowiedniego rejestru czyli w naszym przypadku jest to ''a''. Sekwencja w ten sposób zostanie wklejona po czym pozostaje nam tylko zatwierdzić wciskając ''enter''.
 +
 +==== Zapisanie skrótu na stałe ====
 +Każde wykonane polecenie map jest pamiętane jedynie dopóki nie zamkniemy Vima. Aby temu zapobiec musimy dopisać wywołanie tego polecenia w pliku .vimrc. W tym celu otwieramy ów plik i dopisujemy: \\
 +''map <skrót> <sekwencja>'' \\
 +Jeżeli chcemy wkleić zawartość rejestru a do treści pliku to wystarczy poprzedzić komendę p kombinacją ''"<litera_rejestru>'' czyli w naszym wypadku wciskamy ''"ap''. \\
 +Nasza linijka powinna wyglądać mniej więcej tak: \\
 +''map <C-t> c" ^]pa"^]''
 +
 +=== Na koniec kilka uwag: ===
 +
 +  * Skrót ''<C-t>'' oznacza przytrzymanie przycisku Ctrl oraz wciśnięcie klawisza t,
 +  * Aby podejrzeć zawartość rejestrów bez wklejania można wywołać polecenie '':registers'',
 +  * Skrót ''<C-r>'' służący do wklejania zawartości rejestrów (i nie tylko ale o tym może innym razem) można wywołać także w trybie wprowadzania,
 +  * Do powtarzania tylko ostatniej czynność możemy użyć klawisza ''. (kropka)'' zamiast nagrywania makra, np. gdy chcemy po prostu wstawić jakiś tekst parę razy to wstawiamy go raz a potem ''. (kropka)'' będzie robić to za nas.
 +
  • linux/vim.1414951744.txt.gz
  • ostatnio zmienione: 2022/05/22 10:37
  • (edycja zewnętrzna)