- Published on
Neovim – Podstawy pracy z potężnym edytorem dla programistów
- Authors
- Name
- juro.lowQ
- @juro.lowQ
Neovim – Podstawy pracy z potężnym edytorem dla programistów
Neovim to jeden z najpotężniejszych edytorów kodu, który dzięki swojej elastyczności i pluginom, takim jak Lazy czy Telescope, może znacząco usprawnić Twoją pracę. W tym wpisie omówię podstawowe operacje w Neovimie, tryby pracy, skróty klawiszowe oraz konfigurację z użyciem kickstart.nvim i Telescope.
1. Otwieranie plików
Otwieranie plików w Neovimie jest proste i intuicyjne. Oto podstawowe polecenia:
nvim filename.txt # Otwiera konkretny plik
nvim . # Otwiera eksplorator w bieżącym katalogu
nvim file1.txt file2.txt # Otwiera wiele plików naraz
W istniejącej sesji możesz otwierać pliki bez wychodzenia:
:e filename.txt # Otwiera plik w bieżącej sesji
:edit filename.txt # To samo co :e
:Explore # Otwiera wbudowany eksplorator plików
Wskazówka: Polecam plugin Oil.nvim zamiast :Explore
– jest szybszy i bardziej intuicyjny. Możesz go dodać przez menedżer pluginów Lazy.
2. Nawigacja w pliku
Gdy masz otwarty plik, kluczowe jest opanowanie nawigacji w trybie normalnym. Neovim używa specyficznych skrótów, które z początku mogą wydawać się nietypowe, ale z czasem stają się naturalne.
- Podstawowa nawigacja:
h
,j
,k
,l
– poruszanie się w lewo, w dół, w górę, w prawo (zamiast strzałek).w
– skok do początku kolejnego słowa.b
– skok do początku poprzedniego słowa.Ctrl+d
,Ctrl+u
– przewijanie o pół strony w dół lub w górę.Shift+{
,Shift+}
– skok do początku lub końca akapitu.
Wskazówka: Jeśli nawigacja hjkl wydaje się trudna, spróbuj wyłączyć strzałki w konfiguracji, by zmusić się do ich używania – to przyspieszy naukę!
3. Zamykanie Neovima
Gdy masz dość pracy, możesz zamknąć Neovima w prosty sposób:
:q
– zamyka bieżący bufor (jeśli nie ma niezapisanych zmian).Shift+ZZ
– szybkie zapisanie i zamknięcie.Shift+ZQ
– szybkie zamknięcie bez zapisywania.
Uwaga: Unikaj przypadkowego generowania losowych haseł, próbując zamknąć Neovima bez znajomości skrótów – :q
to Twój przyjaciel!
4. Tryby pracy w Neovimie
Neovim opiera się na kilku trybach pracy, które są kluczowe dla jego filozofii:
- Tryb normalny: Służy do nawigacji i wykonywania akcji na tekście. Domyślny tryb po otwarciu pliku. Używasz
hjkl
do poruszania się, a komend jak:w
do zapisu. - Tryb insert: Włączasz go, by wpisywać tekst, podobnie jak w standardowych edytorach. Przechodzisz do niego przez:
i
– wstawianie przed kursorem.I
– wstawianie na początku linii.a
– wstawianie za kursorem.A
– wstawianie na końcu linii.
- Tryb wizualny: Służy do zaznaczania tekstu. Włączasz go przez:
v
– tryb wizualny (zaznaczanie jak myszką, ale klawiaturą).Ctrl+v
– tryb wizualny blokowy (dla całych linii lub kolumn).Alt+v
– tryb blokowy (zależny od konfiguracji).
- Tryb komend: W trybie normalnym wpisujesz
:
i wykonujesz polecenia, np.:w
(zapis),:q
(zamknij).
Wskazówka: Klawisz Esc
wraca do trybu normalnego lub kończy akcję. Jeśli się zgubisz, wciśnij Esc
i spróbuj ponownie.
5. Pierwsze komendy, które musisz znać
Zacznij od tych poleceń, by lepiej zrozumieć Neovima:
:Tutor
– Interaktywny poradnik o podstawach nawigacji i trybach.:help
– Otwiera dokumentację Neovima, idealną do nauki zaawansowanych funkcji.
6. Konfiguracja z kickstart.nvim
Jeśli jeszcze nie skonfigurowałeś Neovima, polecam kickstart.nvim – minimalistyczną konfigurację, która zawiera wszystko, czego potrzebujesz na start. Pobierz plik init.lua
z repozytorium:
https://github.com/nvim-lua/kickstart.nvim
Ścieżki do konfiguracji:
- Windows:
~/AppData/Local/nvim/init.lua
- Linux/macOS:
~/.config/nvim/init.lua
Skopiuj zawartość init.lua
z kickstart.nvim do swojego pliku konfiguracyjnego. Autor konfiguracji omawia jej szczegóły w filmie:
https://www.youtube.com/watch?v=m8C0Cq9Uv9o
Po uruchomieniu Neovima z kickstart.nvim powinieneś zobaczyć menedżer pluginów Lazy. Jeśli nie, wpisz :Lazy
. Aby zsynchronizować pluginy, użyj:
Shift+S
lub:Lazy sync
7. Telescope – Potężne narzędzie do zarządzania projektem
Telescope to jeden z najpotężniejszych pluginów w ekosystemie Neovima, umożliwiający szybkie wyszukiwanie plików, projektów, buforów czy pomocy. Jest domyślnie zawarty w kickstart.nvim. Poniżej znajdziesz przykładową konfigurację Telescope z mojego setupu, z dodanymi skrótami i ustawieniami:
return {
'nvim-telescope/telescope.nvim',
tag = '0.1.8',
dependencies = {
{ 'nvim-lua/plenary.nvim' },
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
{ 'nvim-telescope/telescope-ui-select.nvim' },
},
config = function()
require('telescope').setup({
defaults = {
file_ignore_patterns = {
"node_modules",
".git",
"^.git/",
"^node_modules/",
"^.venv/",
"^build/",
"^dist/",
"%.pyc$",
"%.o$",
"%.a$",
"%.swp$",
"%.bak$",
"%.blend%.%d+$",
"**/.rclone/*",
},
},
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown(),
},
},
})
require('telescope').load_extension('ui-select')
end,
keys = {
{ "<leader>sh", "<cmd>Telescope help_tags<CR>", desc = "[S]earch [H]elp" },
{ "<leader>sk", "<cmd>Telescope keymaps<CR>", desc = "[S]earch [K]eymaps" },
{ "<leader>sf", "<cmd>Telescope find_files<CR>", desc = "[S]earch [F]iles" },
{ "<leader>ss", "<cmd>Telescope builtin<CR>", desc = "[S]earch [S]elect Telescope" },
{ "<leader>sw", "<cmd>Telescope grep_string<CR>", desc = "[S]earch current [W]ord" },
{ "<leader>sg", "<cmd>Telescope live_grep<CR>", desc = "[S]earch by [G]rep" },
{ "<leader>sd", "<cmd>Telescope diagnostics<CR>", desc = "[S]earch [D]iagnostics" },
{ "<leader>sr", "<cmd>Telescope resume<CR>", desc = "[S]earch [R]esume" },
{ "<leader>so", "<cmd>Telescope oldfiles<CR>", desc = "[S]earch Recent Files" },
{ "<leader><leader>", "<cmd>Telescope buffers<CR>", desc = "[ ] Find existing buffers" },
{ "<leader>ff", "<cmd>Telescope find_files<CR>", desc = "Tele✨: Find files" },
{ "<leader>fg", "<cmd>Telescope live_grep<CR>", desc = "Tele✨: Live grep" },
{ "<leader>fh", "<cmd>Telescope help_tags<CR>", desc = "Tele✨: Help tags" },
{ "<leader>fb", "<cmd>Telescope buffers<CR>", desc = "Tele✨: Buffers" },
{
"<leader>fn",
function()
require('telescope.builtin').find_files({
search_dirs = {
"C:/Users/LOWq_53/AppData/Local/nvim/",
"C:/Users/LOWq_53/AppData/Local/nvim-lowq53/",
},
hidden = True,
})
end,
desc = 'Tele:✨ Nvim.lua'
},
}
}
Kluczowe skróty Telescope
<leader>fn
– Szybkie wyszukiwanie plików w katalogu konfiguracji Neovima, np.init.lua
. Ustawieniehidden = true
pozwala zobaczyć ukryte pliki, np..gitignore
.<leader>ff
– Wyszukiwanie wszystkich plików w projekcie.<leader>fg
– Wyszukiwanie tekstu w plikach (live grep).<leader>fb
– Przełączanie między otwartymi buforami.
Wskazówka: Dodaj własne search_dirs
w konfiguracji Telescope, by szybko otwierać pliki z innych projektów, np. folderów kodu.
8. Personalizacja i potencjał Neovima
Neovim to nie tylko edytor, ale prawdziwa bestia, którą możesz przekształcić w potężne narzędzie dzięki odpowiednim ustawieniom i pluginom. Oto kilka kluczowych aspektów, które warto poznać:
- Podstawowe ustawienia: W pliku
init.lua
możesz skonfigurować podstawowe opcje, np.vim.opt.number = true
(numery linii),vim.opt.tabstop = 2
(rozmiar tabulacji) czyvim.g.mapleader = ','
(zmiana klawisza lider na przecinek). To punkt startowy do personalizacji workflow. - Autosave: Aby włączyć automatyczne zapisywanie, dodaj do
init.lua
:vim.api.nvim_create_autocmd("TextChanged", { command = "write" })
. Dzięki temu każdy zapis w trybie insert automatycznie zapisze plik, co chroni przed utratą danych. - Pluginy z kickstart.nvim: Kickstart.nvim zawiera podstawowe pluginy, takie jak treesitter (dla podświetlania składni), lsp-zero (dla wsparcia języków programowania) czy Comment.nvim (do szybkiego komentowania kodu). Możesz je rozszerzyć, dodając np. harpoon do zarządzania zakładkami projektowymi.
- Debugowanie: Debugowanie w Neovimie to zaawansowany temat, ale warto zacząć od pluginu nvim-dap (dostępnego w kickstart.nvim). Umożliwia on integrację z debuggerami dla języków takich jak Python czy C++. Aby zacząć, skonfiguruj adapter debugera w
init.lua
i przetestuj z prostym projektem. To na mojej liście do zgłębienia, ale społeczność oferuje świetne poradniki, np. na GitHubie. - Potencjał Neovima: Dzięki pluginom społeczności i profesjonalnym narzędziom, Neovim z minimalistycznego edytora staje się potężnym IDE. Możesz dodać przezroczyste tło (
vim.opt.winblend = 20
) i ustawić tapetę w terminalu dla efektu wizualnego. Z odpowiednią konfiguracją Neovim staje się prawdziwym monstrum produktywności – lekkim, szybkim i w pełni dostosowanym do Twoich potrzeb.
9. Dlaczego warto używać Neovima?
Neovim to nie tylko edytor – to środowisko, które możesz dostosować do swoich potrzeb. Dzięki pluginom jak Telescope i konfiguracjom jak kickstart.nvim, możesz stworzyć workflow, który przyspieszy Twoją pracę nad kodem, dokumentami czy skryptami. Zacznij od :Tutor
, eksperymentuj z pluginami i nie bój się dostosowywać init.lua
– to serce Twojego Neovima!