2016-11-01 01:18:11 +00:00
---
category: tool
2024-10-20 21:46:35 +00:00
tool: Vim
2016-11-01 01:18:11 +00:00
contributors:
- ["RadhikaG", "https://github.com/RadhikaG"]
translators:
- ["Adam Bobowski", "https://github.com/Bobowski"]
lang: pl-pl
filename: LearnVim-pl.txt
---
2017-06-01 09:31:14 +00:00
[Vim ](http://www.vim.org )
2024-04-20 07:57:37 +00:00
(Vi IMproved) jest klonem popularnego edytora vi dla systemów Unix.
Zaprojektowany z myślą o prędkości edycji i zwiększeniu produktywności jest
wszechobecny na systemach UNIXopodobnych. Posiada wiele skrótów klawiszowych
do szybkiej nawigacji do wybranych miejsc w plikach oraz szybkiej edycji
2016-11-01 01:18:11 +00:00
danych fragmentów.
## Podstawy nawigacji w Vim
```
vim < nazwapliku > # Otwórz < nazwapliku > w vim
:q # Zamknij vim
:w # Zapisz aktualny plik
:wq # Zapisz i wyjdź z vim
:q! # Wyjdź bez zapisywania
# ! *wymusza* wykonanie :q, dlatego nie wykonuje zapisu
:x # Zapisz i wyjdź, krótszy odpowiednik :wq
u # Cofnij operację
CTRL+R # Powtórz operację
h # Przesuń kursor w lewo
j # Przesuń kursor w dół
k # Przesuń kursor w górę
l # Przesuń kursor w prawo
# Poruszanie w obrębie jednej lini
0 # Skocz do początku linii
$ # Skocz do końca linii
^ # Skocz do pierwszego niebiałego znaku
# Wyszukiwanie w tekście
/slowo # Zaznacza wszystkie wystąpienia słowa za kursorem
?slowo # Zaznacza wszystkie wystąpienia słowa przed kursorem
n # Przemieszcza kursor do następnego wystąpienia słowa
N # Przemieszcza kursor do poprzedniego wystąpenia słowa
:%s/foo/bar/g # Zamień 'foo' na 'bar' w każdej linii tekstu
:s/foo/bar/g # Zamień 'foo' na 'bar' w aktualnej linii
# Skoki do znaków
f< znak > # Skocz do przodu i zatrzymaj się na < znak >
2024-04-20 07:57:37 +00:00
t< znak > # Skocz do przodu i zatrzymaj się przed < znak >
2016-11-01 01:18:11 +00:00
2024-04-20 07:57:37 +00:00
# Na przykład,
2016-11-01 01:18:11 +00:00
f< # Skocz do przodu i zatrzymaj się na <
t< # Skocz do przodu i zatrzymaj się przed <
2024-04-20 07:57:37 +00:00
2016-11-01 01:18:11 +00:00
# Moving by word
w # Przesuń kursor do przodu o jedno słowo
b # Przesuń kursor do tyłu o jedno słowo
e # Przesuń kursor do końca aktualnego słowa
# Inne znaki do przemieszczania się
gg # Skocz na początek pliku
G # Skocz na koniec pliku
:NUM # Skocz do linii o numerze NUM
H # Skocz na górę ekranu
M # Skocz na środek ekranu
L # Skocz na dół ekranu
```
2024-04-20 07:57:37 +00:00
## Tryby
2016-11-01 01:18:11 +00:00
Vim oparty jest na koncepcji **trybów** .
Command Mode - (Tryb komend) vim zaczyna w tym trybie, używany do nawigacji i wpisywania komend
Insert Mode - (Tryb wprowadzania) używany do wprowadzania zmian w pliku
Visual Mode - (Tryb wizualny) używany do zaznaczania tekstu i wykonywania komend na nim
2024-04-20 07:57:37 +00:00
Ex Mode - (Tryb Ex)
2016-11-01 01:18:11 +00:00
```
i # Przechodzi to trybu wprowadzania, przed pozycją kursora
a # Przechodzi do trybu wprowadzania, za pozycją kursora
v # Przechodzi do trybu wizualnego
: # Przechodzi do trybu ex
< esc > # Wychodzi z dowolnego aktywnego trybu do trybu komend
# Kopiowanie i wklejanie tekstu
y # Skopiuj zaznaczony tekst
yy # Skopiuj aktualną linię
d # Usuń zaznaczony tekst
dd # Usuń aktualną linię
p # Wklej skopiowany tekst za kursorem
P # Wklej skopiowany tekst przed kursorem
x # Usuń znak pod kursorem
```
## 'Gramatyka' vim'a
Vim można traktować jako zbiór komend w formacie 'Akcja-Modyfikator-Obiekt', gdzie:
Akcja - jedna z dostępnych akcji
Modyfikator - w jaki sposób wykonywana jest akcja
Obiekt - obiekt na którym wykonywana jest akcja
Kilka ważnych przykładów Akcji, Modyfikatorów i Obiektów:
```
# 'Akcje'
2024-04-20 07:57:37 +00:00
2016-11-01 01:18:11 +00:00
d # Usuń
c # Zmień
y # Skopiuj
v # Zaznacz
# 'Modyfikatory'
i # W środku
a # Dookoła
NUM # Liczba
f # Szuka czegoś i zatrzymuje się na tym
t # Szuka czegoś i zatrzymuje się przed tym
/ # Znajduje napis od kursora naprzód
? # Znajduje napis przed kursorem
# 'Obiekty'
w # Słowo
s # Zdanie
p # Paragraf
b # Blok
2024-04-20 07:57:37 +00:00
2016-11-01 01:18:11 +00:00
# Przykładowe 'zdania'
d2w # Usuń 2 słowa
cis # Zmień w zdaniu
yip # Skopiuj paragraf w którym jest kursor
ct< # Zamień na <
d$ # Usuń tekst do końca linii
```
## Pewne skróty i triki
<!-- TODO: Dodać więcej! -->
```
> # Zrób wcięcie zaznaczonego bloku
< # Usuń wcięcie zaznaczonego bloku
2024-04-20 07:57:37 +00:00
:earlier 15m # Przywróć dokument do stanu z przed 15 minut
2016-11-01 01:18:11 +00:00
:later 15m # Odwróć efekt poprzedniej komendy
ddp # Zamień kolejnością kolejne linie, dd potem p
2016-11-01 01:24:51 +00:00
. # Powtórz poprzednią komendę
2016-11-01 01:18:11 +00:00
```
## Makra
Makra są właściwie nagrywanymi akcjami. Gdy zaczynasz nagrywać makro, nagrywa ono
**każdą** akcję i komendę jaką wykonasz do momentu przerwania nagrywania.
Wywołanie makra wykonuje dokładnie te same operacje w tej samej kolejności.
```
qa # Zacznij nagrywać makro 'a'
q # Przerwij nagrywanie
@a # Odtwórz makro 'a'
```
### Konfiguracja ~/.vimrc
Plik .vimrc może być użyty do skonfigurowania Vim'a przy jego starcie
Poniżej zamieszczono przykładowy plik ~/.vimrc:
2024-04-20 07:57:37 +00:00
```vim
2016-11-01 01:18:11 +00:00
" Przykładowy ~/.vimrc
2024-04-20 07:57:37 +00:00
" 2016.10
2016-11-01 01:18:11 +00:00
" Wymagane aby korzystać z opcji iMproved
set nocompatible
" Na podstawie typu pliku włącza inteligentne wcięcia i inne.
filetype indent plugin on
" Włącz podkreślanie składni
syntax on
" Lepsze uzupełnianie składni komend
set wildmenu
" Wyszukiwanie będzie ignorować wielkość liter poza przypadkami gdy użyjemy wielkich liter
set ignorecase
set smartcase
" Po otwarciu pliku gdzie nie jest zdefiniowane zachowanie wcięć
" zostanie zachowane wcięcie takie samo jak w aktualnej linii
set autoindent
" Wyświetlaj numer lini
set number
" Opcje wcięć, zmień w zależności od osobistych upodobań
" Szerokość TAB w spacjach
set tabstop=4
" Liczba spacji w TAB podczas edycji
set softtabstop=4
" Liczba spacji gdy wykonywane są operacje wcięcia (>> i < < )
set shiftwidth=4
" Zamieniaj tabulatory na spacje
set expandtab
" Aktywuj inteligentne tabulatory i spacje do wcięć i wyrównań
set smarttab
```
### Odniesienia [ENG]
[Vim | Home ](http://www.vim.org/index.php )
`$ vimtutor`
[A vim Tutorial and Primer ](https://danielmiessler.com/study/vim/ )
[What are the dark corners of Vim your mom never told you about? (Stack Overflow thread) ](http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about )
[Arch Linux Wiki ](https://wiki.archlinux.org/index.php/Vim )