Vim or die

Ivan Evtukhovich
Ivan EvtukhovichConsultant at Express 42
Vim or Die
Иван Евтухович
Оверсан-Скалакси
http://scalaxy.ru
http://railsclub.ru
Win or Die
Vim = победа
Без «священных»
войн
Конструктивно
По-делу
Стиральная
машина
Посудомоечная
машина
Водопровод
Дурацкие ответы
● Большую часть времени я не мою посуду
● Я привык к одноразовым тарелкам
● Стирать белье мне приходится редко
● Мои носки не так и воняют
● Мне не сложно сходить по воду
● В конце-концов можно протереться влажным
полотенцем
Почему вы до сих пор не
используете
Слепой
десятипальцевый
метод?
Vim or die
Bram Moolenaar
Перемещения
h j k l
← ↓ ↑ →
PageUp Ctrl-B
PageDown Ctrl-F
½ PageUp Ctrl-U
½ PageDown Ctrl-D
↓ Ctrl-E
↑ Ctrl-Y
H
M
L
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> - на следующем слайде
Vim or die
:q — выйти
:w — сохранить текущий файл
:wq или :x — сохранить и выйти
:e — открыть для редактирования
:tabe — открыть в новом табе
:split — открыть в новом окне
Самый сложный вопрос
Удаление и копирование
● D — удалить до конца строки
● x — удалить символ
● dd — удалить строчку (100dd — сто строк)
● yy — скопировать строку (yw, ye)
● P, p — вставить скопированное до или после
УЖАС!!!!
Мышь — зло!!!
Стрелки — зло!!!
Конец
доклада
< 0,17%
Живем ли мы зря?
Поиск
/текст
/Text.*Mate ..вно
/Хочу d$
/def funcname
n
N
*
Добавить в ~/.vimrc
set hlsearch
set incsearch
Поставить plugin IndexedSearch
:%s/(ema.s|tex.mat.)/vim (1 — sux)/
1. % - где искать (1,100 500,$)
2. (ema.s|tex.mat.) - RegExp
3. 1 — первое соответствие ( )
everybody
loves
vim
%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
Vim or die
И еще...
● автодополнение
● подсветка синтаксиса
● фолдинг
● автоотступы
● 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 or die
Аргументы строки
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
Метки
ma
mA
`a
'A
:jumps
Ctrl-I Ctrl-O
% - переход по соответствующим скобкам
(MatchIt — do..end)
Никого не хочу
агитировать
Vim or die
Vim or die
Vim or die
Vim or die
Для настоящих мужчин
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-ruby
● подсветка
● автодополнение по (Ctrl-X Ctrl-O)
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
Дорого!
Долго!
Derek Wyatt
http://vimeo.com/user1690209
Eclipse
● Vrapper
● eclimd
Вопросы
Спасибо за внимание
evtuhovich@gmail.com
@evtuhovich
1 of 73

Recommended

По колено в Си++ г... коде by
По колено в Си++ г... кодеПо колено в Си++ г... коде
По колено в Си++ г... кодеTatyanazaxarova
340 views3 slides
Debug php apps with xdebug in PHPstorm by
Debug php apps with xdebug in PHPstormDebug php apps with xdebug in PHPstorm
Debug php apps with xdebug in PHPstormАндрей Стадник
483 views25 slides
Devel::PPAP by
Devel::PPAPDevel::PPAP
Devel::PPAPRuslan Zakirov
877 views25 slides
Двойная (каскадная) шаблонизация в Django by
Двойная (каскадная) шаблонизация в DjangoДвойная (каскадная) шаблонизация в Django
Двойная (каскадная) шаблонизация в DjangoSergei Erjemin
203 views20 slides
Hf labs education day. rocket science by
Hf labs education day. rocket scienceHf labs education day. rocket science
Hf labs education day. rocket scienceOlga Kiseleva
3.3K views16 slides
Методы поиска уязвимостей by
Методы поиска уязвимостейМетоды поиска уязвимостей
Методы поиска уязвимостейsolertia
1.1K views51 slides

More Related Content

What's hot

Систематизация экспрешнов в IE by
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IERoman Komarov
319 views15 slides
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assembler by
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assemblerCiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assembler
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assemblerCiklum Ukraine
297 views19 slides
Android emulators features by
Android emulators featuresAndroid emulators features
Android emulators featuresRoman Butok
633 views24 slides
урок2 by
урок2урок2
урок2ssuserea1bb3
81 views18 slides
Вредные советы программистам by
Вредные советы программистамВредные советы программистам
Вредные советы программистамDenis Kovalev
312 views15 slides
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai... by
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...Unigine Corp.
799 views22 slides

What's hot(16)

Систематизация экспрешнов в IE by Roman Komarov
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IE
Roman Komarov319 views
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assembler by Ciklum Ukraine
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assemblerCiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assembler
CiklumCPPSat: Anton Kukoba_Reassembling and restoring C/C++ from assembler
Ciklum Ukraine297 views
Android emulators features by Roman Butok
Android emulators featuresAndroid emulators features
Android emulators features
Roman Butok633 views
Вредные советы программистам by Denis Kovalev
Вредные советы программистамВредные советы программистам
Вредные советы программистам
Denis Kovalev312 views
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai... by Unigine Corp.
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...
Unigine Corp. 799 views
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013 by Moscow.pm
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Moscow.pm1.4K views
Пожиратели памяти в WordPress by Konstantin Kovshenin
Пожиратели памяти в WordPressПожиратели памяти в WordPress
Пожиратели памяти в WordPress
Konstantin Kovshenin12.4K views
Нетривиальная обработка ошибок by oelifantiev
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибок
oelifantiev523 views
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах by CodeFest
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидахCodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
CodeFest1.3K views
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013 by Unigine Corp.
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Unigine Corp. 779 views
Ошибка. Осознание, примирение, извлечение пользы. Вадим Макишвили by Транслируем.бел
Ошибка. Осознание, примирение, извлечение пользы. Вадим МакишвилиОшибка. Осознание, примирение, извлечение пользы. Вадим Макишвили
Ошибка. Осознание, примирение, извлечение пользы. Вадим Макишвили

Viewers also liked

Развитие DevOps/NoOps инструментов. Что было, что есть, что будет. by
Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.
Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.Ivan Evtukhovich
1.3K views50 slides
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ... by
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...Экспресс-Обзор
1.3K views39 slides
бытовая химия и аксессуары by
бытовая химия и аксессуарыбытовая химия и аксессуары
бытовая химия и аксессуарыhiindo
3.9K views25 slides
Kurnosova_21102015 by
Kurnosova_21102015Kurnosova_21102015
Kurnosova_21102015Inga Knysh
2K views22 slides
Indesit и Hotpoint by
Indesit и HotpointIndesit и Hotpoint
Indesit и HotpointE-event
1.9K views23 slides
GrandOVita by
GrandOVitaGrandOVita
GrandOVitaAvgustina Leopoldovna
559 views22 slides

Viewers also liked(20)

Развитие DevOps/NoOps инструментов. Что было, что есть, что будет. by Ivan Evtukhovich
Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.
Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.
Ivan Evtukhovich1.3K views
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ... by Экспресс-Обзор
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...
Рынок стиральных машин в России 2013: итоги 2012 и 1 полугодия 2013, прогноз ...
бытовая химия и аксессуары by hiindo
бытовая химия и аксессуарыбытовая химия и аксессуары
бытовая химия и аксессуары
hiindo3.9K views
Kurnosova_21102015 by Inga Knysh
Kurnosova_21102015Kurnosova_21102015
Kurnosova_21102015
Inga Knysh2K views
Indesit и Hotpoint by E-event
Indesit и HotpointIndesit и Hotpoint
Indesit и Hotpoint
E-event1.9K views
Glosario N° 1 2016 by Panamá
Glosario N° 1  2016Glosario N° 1  2016
Glosario N° 1 2016
Panamá543 views
Презентация для сайта Sms training 2015 казахстан by E-event
Презентация  для сайта Sms training 2015 казахстанПрезентация  для сайта Sms training 2015 казахстан
Презентация для сайта Sms training 2015 казахстан
E-event627 views
Cушильные и стирально сушильные машины by Avgustina Leopoldovna
Cушильные и стирально сушильные машиныCушильные и стирально сушильные машины
Cушильные и стирально сушильные машины
Эксклюзивные технологии стиральных машин by Avgustina Leopoldovna
Эксклюзивные технологии стиральных машинЭксклюзивные технологии стиральных машин
Эксклюзивные технологии стиральных машин
Вопросы и ответы. стиральные машины. by Avgustina Leopoldovna
Вопросы и ответы. стиральные машины.Вопросы и ответы. стиральные машины.
Вопросы и ответы. стиральные машины.

Similar to Vim or die

ДАМП - VIM для вёрстки by
ДАМП - VIM для вёрсткиДАМП - VIM для вёрстки
ДАМП - VIM для вёрсткиOleg Mokhov
1.1K views76 slides
About Python by
About PythonAbout Python
About PythonYury Yurevich
890 views24 slides
Ruby - или зачем мне еще один язык программирования? by
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Pavel Tsukanov
6.3K views50 slides
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,... by
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
20.1K views66 slides
Clojure #2 (2014) by
Clojure #2 (2014)Clojure #2 (2014)
Clojure #2 (2014)Alexander Podkhalyuzin
632 views82 slides
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси by
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиMail.ru Group
144 views74 slides

Similar to Vim or die(15)

ДАМП - VIM для вёрстки by Oleg Mokhov
ДАМП - VIM для вёрсткиДАМП - VIM для вёрстки
ДАМП - VIM для вёрстки
Oleg Mokhov1.1K views
Ruby - или зачем мне еще один язык программирования? by Pavel Tsukanov
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
Pavel Tsukanov6.3K views
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,... by Yandex
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Yandex20.1K views
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси by Mail.ru Group
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Mail.ru Group144 views
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut... by corehard_by
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
corehard_by136 views
Фундаментальные основы разработки под iOS. Павел Тайкало by Stanfy
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
Stanfy3K views
Использование cygwin для автоматизации процессов тестирования в Windows by SQALab
Использование cygwin для автоматизации процессов тестирования в WindowsИспользование cygwin для автоматизации процессов тестирования в Windows
Использование cygwin для автоматизации процессов тестирования в Windows
SQALab1.4K views
Yeoman generator своими руками by chaykaborya
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими руками
chaykaborya4.3K views
JavaScript: хороший тон клиентской разработки by GetDev.NET
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
GetDev.NET4.7K views
Romanova techforum bash by kuchinskaya
Romanova techforum bashRomanova techforum bash
Romanova techforum bash
kuchinskaya446 views
Groovy presentation. by Infinity
Groovy presentation.Groovy presentation.
Groovy presentation.
Infinity 767 views

More from Ivan Evtukhovich

Микросервисы: откуда столько шума? by
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?Ivan Evtukhovich
853 views33 slides
Микросервисы: откуда столько шума? by
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?Ivan Evtukhovich
961 views37 slides
Жизнь консалтинга в мире DevOps by
Жизнь консалтинга в мире DevOpsЖизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOpsIvan Evtukhovich
721 views33 slides
DevOps и системы управления конфигурацией. SECON 2015 by
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015Ivan Evtukhovich
1.6K views33 slides
Куда движется управление инфраструктурой by
Куда движется управление инфраструктуройКуда движется управление инфраструктурой
Куда движется управление инфраструктуройIvan Evtukhovich
1.3K views22 slides
Повторяемость для котиков: библиотекарь и книжная полка by
Повторяемость для котиков: библиотекарь и книжная полкаПовторяемость для котиков: библиотекарь и книжная полка
Повторяемость для котиков: библиотекарь и книжная полкаIvan Evtukhovich
546 views20 slides

More from Ivan Evtukhovich(11)

Микросервисы: откуда столько шума? by Ivan Evtukhovich
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?
Ivan Evtukhovich853 views
Микросервисы: откуда столько шума? by Ivan Evtukhovich
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?
Ivan Evtukhovich961 views
Жизнь консалтинга в мире DevOps by Ivan Evtukhovich
Жизнь консалтинга в мире DevOpsЖизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOps
Ivan Evtukhovich721 views
DevOps и системы управления конфигурацией. SECON 2015 by Ivan Evtukhovich
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich1.6K views
Куда движется управление инфраструктурой by Ivan Evtukhovich
Куда движется управление инфраструктуройКуда движется управление инфраструктурой
Куда движется управление инфраструктурой
Ivan Evtukhovich1.3K views
Повторяемость для котиков: библиотекарь и книжная полка by Ivan Evtukhovich
Повторяемость для котиков: библиотекарь и книжная полкаПовторяемость для котиков: библиотекарь и книжная полка
Повторяемость для котиков: библиотекарь и книжная полка
Ivan Evtukhovich546 views
Нетрадиционное использование Ruby и PostgreSQL by Ivan Evtukhovich
Нетрадиционное использование Ruby и PostgreSQLНетрадиционное использование Ruby и PostgreSQL
Нетрадиционное использование Ruby и PostgreSQL
Ivan Evtukhovich1.4K views
Git для продолжающих by Ivan Evtukhovich
Git для продолжающихGit для продолжающих
Git для продолжающих
Ivan Evtukhovich1.4K views
Распределенные системы контоля версия на примере git by Ivan Evtukhovich
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере git
Ivan Evtukhovich657 views

Vim or die