Upload
ivan-evtukhovich
View
2.759
Download
0
Embed Size (px)
DESCRIPTION
Рассказ о том, какой крутой редактор vim
Citation preview
Vim or DieИван Евтухович
Оверсан-Скалаксиhttp://scalaxy.ru
http://railsclub.ru
Win or Die
Vim = победа
Без «священных»войн
Конструктивно
По-делу
Стиральнаямашина
Посудомоечнаямашина
Водопровод
Дурацкие ответы
● Большую часть времени я не мою посуду● Я привык к одноразовым тарелкам● Стирать белье мне приходится редко● Мои носки не так и воняют● Мне не сложно сходить по воду● В конце-концов можно протереться влажным
полотенцем
Почему вы до сих пор не используете
Слепой десятипальцевый
метод?
Bram Moolenaar
Перемещения
h j k l ← ↓ ↑ →
PageUp Ctrl-B
PageDown Ctrl-F
½ PageUp Ctrl-U
½ PageDown Ctrl-D
↓ Ctrl-E↑ Ctrl-Y
HML
Home 0, ^
Center gm
End $
Ctrl← b, B, ge, gE
Ctrl→ w, W, e, E
Режимы Vim
● Normal mode (Ctrl-C, Esc)● Visual mode (v, V, Ctrl+V)● Insert mode● Command-line mode (:)● другие
:help vim-modes
Вставка● i, a — вставка до/после курсора● I, A — вставка в начале/конце строки● o, O — вставка с новой строки спереди/сзади● R — вставка в режиме замены
● Ctrl-C — выход в «нормальный» режим
Tabвсе команды дополняются <Tab>
● :help дополняется <Tab>
set wildmenu
set wildmode=list:longest
set wcm=<Tab>
:e<Tab> - на следующем слайде
:q — выйти:w — сохранить текущий файл:wq или :x — сохранить и выйти:e — открыть для редактирования:tabe — открыть в новом табе:split — открыть в новом окне
Самый сложный вопрос
Удаление и копирование
● D — удалить до конца строки● x — удалить символ● dd — удалить строчку (100dd — сто строк)● yy — скопировать строку (yw, ye)● P, p — вставить скопированное до или после
УЖАС!!!!
Мышь — зло!!!
Стрелки — зло!!!
Конец доклада
< 0,17%
Живем ли мы зря?
Поиск
/текст/Text.*Mate ..вно/Хочу \d\$/def funcname
nN*
Добавить в ~/.vimrcset hlsearchset incsearch
Поставить plugin IndexedSearch
:%s/\(ema.s\|tex.mat.\)/vim (\1 — sux)/
1. % - где искать (1,100 500,$)2. \(ema.s\|tex.mat.\) - RegExp3. \1 — первое соответствие ( )
everybodylovesvim
%s/.*/def \0^M get_from_outersystem(:\0)^Mend^M/
def everybody get_from_outersystem(:everybody)end
def loves get_from_outersystem(:loves)end
def vim get_from_outersystem(:vim)end
:grep pattern * -ri:cl:cn:cp:copen
И еще...
● автодополнение● подсветка синтаксиса● фолдинг● автоотступы● undo/redo (U, Ctrl-R)● цветовые схемы● назначить клавиши для всего (но лучше
стандарт)● написать скрипт для всего (даже на ruby)
Табы
● :tabe filename● :tabnew● :[n]tabnext ([n]gt)● :tabprevious (gT)
Окна
● :split filename● :vsplit filename● Ctrl-W h,j,k,l — перемещение между окнами● Ctrl-W q — закрыть окно
Аргументы строки
vim 1.txt 2.txt 3.txt
:n:p:args
Буферы
:buffers, :ls — список всех буферов:bn:bp[n]Ctrl-^ - переход к буферу (альтернативному)
:TOhtml
А как вы пишете в ваш блог?
:vertical diffsplit 1.txt 2.txt
Макросы
q a j 0 i ( Ctrl-C $ a ) q
10 @ a
Метки
mamA`a'A
:jumpsCtrl-I Ctrl-O
% - переход по соответствующим скобкам (MatchIt — do..end)
Никого не хочу агитировать
Для настоящих мужчин
Tim Pope
● vim-pathogen● vim-rails● vim-fugitive● vim-haml● vim-cucumber● vim-surround
Vim-pathogen
● Способ управления плагинами для vim● Каждый плагин в своей папке● Посмотреть можно здесь● Для счастья надо 2 файла:
● update_bundles● .vimrc
Плагины
● snipmate● surround● tcomment (gc)● fugitive● gist
vim-rails
● :Rfind● gf — перейти к файлу (учитывая контекст)● :A, :AT, :AV — перейти к альтернативному
файлу● :R, :RT, :RV — перейти к связанному файлу
● :R[TV]view / :Rlayout● :Rmodel● :Rcontroller● :Rmigration● :Rfixtures● :Rspec / :Runittest● :Rhelper● :Rlib● :Rjavascript / :Rstylesheet● :Rextract
NerdTree
TagList
Помощь:help anything
Vim никогда нельзя выучить до конца
Лучший способ понять Vim — это практика
Реклама
Платные курсы по VimДорого!Долго!
Вопросы
Спасибо за внимание
@evtuhovich