73
Vim or Die Иван Евтухович

Vim or die

  • Upload
    -

  • View
    142

  • Download
    0

Embed Size (px)

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

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

Вопросы

Спасибо за внимание

[email protected]

@evtuhovich