Vim

Practical Vim: Edit Text at the Speed of Thought (2015) by Drew Neil

Practical Vim: Edit Text at the Speed of Thought (2015) by Drew Neil

New Page

Vim Guide [DRAFT]


Vim Commands: A Beginner Guide with Examples

Поиск:

Вставка:

Горизонтальная навигация:

Вертикальная навигация:

Операторы:

Опции:

A Vim Guide for Intermediate Users

В IDE обычно используются вкладки для управления файлами. Vim использует другой путь для отображения и организации открытых файлов. Тут есть 4 уровня абстрации: буфферы, окна, табы и списки аргументов

Ничего не понял( Зачем? Для чего?


Mapping Keystrokes:

Если сделать :nmap w dd, то клавиша w будет удалять строку как dd
Но если мы теперь захотим перемещаться по тексту per words то нужно замапить w на другую клавишу
Если мы сделаем :nmap v w, то v тоже будет удалять строку, потому что мы замапили v на w которая замаплена на dd (v, w, dd - удаляют строку)
Чтобы такого не происходило нужно делать :nnoremap v w, и клавиша v будет двигать кусор вперед пословно
nnoremap:


Jumping:

:jumps - покажет список сохраненных позиций
Screenshot_2021_02_02-12_49_03-2022-08-04-at-18jumps.png


Changes:
:changes - покажет изменения
Screenshot_2021_02_02-12_49_03-2022-08-04-at-changes.png


Methods jumping:


Single Repeat:


Macro:

@@ - повторить последний выполненный макрос


History:

Аналогичные команды:


Undo Tree:
Vim хранит не просто список изменений, он хранит целое дерево
То есть если мы сделаем три изменения в файле, потом два раза нажмем u (отменим два из трех изменения) и сделаем новые изменения, то в будущем мы сможем восстановиться в любое из всех сделанных изменений
Ванильный Vim не имеет удобного механизма работы с этим, поэтому такие фишки реализуются через плагины
Мы можем указать Vim'у куда и сколько изменений сохранять

set undofile
set undodir=~/.vim/undo

" number of undo saved
set undolevels=10000 

Screenshot_2021_02_02-12_49_03-2022-08-04-at-undosaves.png


Plugins:
Простой менеджер плагинов - https://github.com/junegunn/vim-plug
В конфиге (~/.config/nvim/init.vim) между call plug#begin('~/.vim/plugged') и call plug#end() добавляем (напр.) Plug 'moll/vim-bbye
А потом в Vim :PlugInstall