Как стать автором
Обновить

Комментарии 84

Предложите, пожалуйста, хороший, желательно русскоязычный, туториал по этому редактору. И бумажную книжку — можно не совсем профильную, а и с другими темами, например. Спасибо.
Learning vi and Vim Editors — A.Robbins, E.Hannab & L.Lamb
Hacking Vim — K.Schulz
Вот еще интересная штука: vim-adventures.com и эта: vimgolf.com
Из русскоязычного, пожалуй это: rus-linux.net/MyLDP/BOOKS/Vim/prosto-o-vim.pdf

Вот еще полезная ссылка, может кому пригодится: net.tutsplus.com/articles/web-roundups/25-vim-tutorials-screencasts-and-resources/
«Просто о Vim» — 72 страницы
vim /usr/share/vim/vim7[version]/vimtutor[.lang]
можно просто в консоли vimtutor
это если локаль русская.
LANG=ru_RU.UTF-8 vimtutor
vimtutor ru
В свое время очень вдохновил пост на Хабре.
Удивляет кол-во до сих пор не освоивших его, ибо в каждой теме про него либо говорят, что хотят освоить, либо спрашивают литературу по нему.
Как это ни странно, куча народу на Виндах ссидит и не парится… юзают TextPad или NotePad++ и т.п., и про vim даже не слышали. «Все крутые пацаны рубятся в консоль, и только девчонки предпочитают ГУИ» — это моя половина так шутит.

Самое страшное в виме для новичка — это то, что выйти из него никак нельзя! Помню я этот кошмар 20 лет назад… На этом попытки изучения обычно и заканчиваются.

P.S. Написано с Debian Linux, чтоб не пинали за рекламу виндов…
Откровенно говоря, и на Линухе я предпочитаю использовать что-то типа Geany — нормальный редактор с полноценным GUI, а вим — только по необходимости.
Если бы vim был бы действительно не удобен, его бы не юзал никто. Я использую более 4х лет как единственный редактор для разработки, с тех пор как попробовал, ничего удобнее не видел. +Зачастую везде стоит, достаточно перетащить свой конфиг и вот уже рабочее место готово и настроено под меня (конфиг у меня под рукой всегда).

Освоить азы быстро, достаточно этому уделить минут 30 для начала (например заюзав учебник входящий в поставку — vimtutor).
А как вы решаете проблемы рефакторинга (например переименование метода во всех местах его вызова)?
В UNIX это и многое другое делается средствами операционной системы — sed, awk, egrep, find и т.д. Поэтому UNIX так любят программисты.
Ясно. Я как-то искал статью на Хабре, о том как перестать пользоваться своей GUI IDE и начать использовать что-то консольное… Но… не нашел. Может опубликуете?
class A {
void method1() {}
}

//…

class B {
void method1() {}
}

//…

void procedure() {
A a = new A();
B b = new B();

a.method1();
b.method1();
}

Нужно переименовать method1() в method2() в классе A, но не в классе B. Как это сделать этими утилитами?
Очевидно же, пользователи текстовых редакторов постигают дзен и
* Не пишут гавнокод, чтобы не было нужды в рефакторинге.
* Пишут код сразу без багов, чтобы бы не использовать костыли для дебага.

В вашем примере на лицо проблема в дизайне :D
Думаю, им тогда и системы контроля версий не нужны. Потому что у них нет версий, они сразу пишут финальный вариант продукта. И билдят его ровно один раз, когда всё написали.

PS: Чувствую приближение шуток про Чака Норриса.
Рефакторинг седом? Ох лол, люди каменного века, откуда вы такие?
НЛО прилетело и опубликовало эту надпись здесь
:%s/methodA/methodB/g примерно так
vim имеет два режима: всё портить и бибикать

© баш
Выйти из него можно даже новичку! Кого не спроси уже каждый знает про выход :q даже если не работал не разу с ним, ибо много раз уже везде эта тема поднималась и чуть ли не на каждом заборе написано как из него выйти. А выйти из него легко, достаточно включить память, но если нигде не читал этого ранее, то первый строка ответа гугла даст ответ и займёт это не больше 5 секунд.

PS И консоль это не круто, это удобно!
Для меня было главное что консоль — это «системно-незатратно» и соответственно быстро, а уже потом понимаешь насколько это удобно. А с vim-ом, mc, и всякими top — подобными утилитами и подавно :)
— Кого не спроси уже каждый знает про выход :q
ТЕПЕРЬ — да.
Я лет 7 назад я с ним пару часов мучался, пока компьютер не перезагрузил.
НЛО прилетело и опубликовало эту надпись здесь
Ctrl+Z
killall -9 vim
:)
OMG! Что у Вас со шрифтами?!
А что такого? Нормальный терминальный шрифт.
НЛО прилетело и опубликовало эту надпись здесь
Это только добавляет ему теплоты и ламповости.
Вы забываете прописные истины:
Vim никогда нельзя изучить до конца.
Лучший способ понять Vim — это практика.

п.с:
Сам начал его использовать, когда то, как IDE для Python-а в связке с python-mode. В результате теперь всё резактируется в vim.
1) Люди рождаются и растут.
2) Не у всех желание освоить vim появляется непосредственно при прикосновении к клавиатуре.
Скачал тарбол. Потом сделал
# apt-get build-dep vim

После сборки командой make, запустил ./src/vim
Не хочет выполнять команду
:help version7.4

Либо надо поставить в систему, сделав make install, либо вспоминать старую добрую слаку, хотя б на виртуальной машине поднять )
Ура! Вот и замена стандартному FAR'овскому редактору нашлась)
НЛО прилетело и опубликовало эту надпись здесь
Да я и не искал особо) С Colorer'ом в FAR'е вполне удобно писать скрипты на Python/Perl, для остального есть IDE. А тут вот оказывается и Vim есть виндовый)
НЛО прилетело и опубликовало эту надпись здесь
Помимо vim, откройте для себя волшебный мир pyCharm и phpStorm… :)
Небось, только недавно с Dos Navigator'а перешёл, а тут на тебе, опять переход :)
НЛО прилетело и опубликовало эту надпись здесь
Видимо имеется в виду по дефолту, но надо поставить посмотреть. Пока для меня в этой версии нет ничего важного, подожду появления в репозитории и после гляну.
Ну так и по дефолту можно было настроить:
" use system clipboard (but not the middle-click mouse clipboard undex X11)
set clipboard=unnamedplus
Вы, видимо, немного не в курсе, что считается «изменением в версии 7.4». А именно этими изменениями считаются все изменения сделанные в патчах 7.3.001 и более поздних вплоть до релиза. В самой первой версии 7.3 указанной вами функциональности не было, она появилась только в версии 7.3.074.
Видимо, не в курсе.
Я, до того как написал анонс беты vim-7.4 (то есть, пока не возникла необходимость узнать, что именно нужно писать в анонсе), тоже был не в курсе. Но, чтобы у людей не возникло недоумения как у вас, в начале списка изменений было написано «(указаны измения с версии 7.3.000)» — зная, что ещё десять минут назад я сам не знал о таком правиле, предупредить ситацию легче лёгкого.
Где можно приобрести дрель с поддержкой Javascript, Python и XML?
Отзовитесь кто установил, никакие плагины не сломались?
Чему там ломаться. Собрал, работает всё что попробовал. Использую vundle для управления модулями, как минимум эти работоспособны:
Bundle 'abolish.vim'
Bundle 'clang-complete'
Bundle 'git://github.com/ervandew/supertab.git'
Bundle 'git://github.com/wikitopian/hardmode.git'
Bundle 'git://github.com/altercation/vim-colors-solarized.git'
Bundle 'git://github.com/scrooloose/nerdtree.git'
Bundle 'git://github.com/scrooloose/nerdcommenter.git'
Bundle 'git://github.com/troydm/easybuffer.vim.git'
Bundle 'git://github.com/tpope/vim-surround.git'
Bundle 'git://github.com/tpope/vim-unimpaired.git'
Bundle 'git://github.com/tpope/vim-repeat.git'
Кстати, как вам clang-complete? Я им пользуюсь, но впечатления смешанные. На маленьких программках все норм. Но если взять что-нибудь большое (boost например), то начинает тупить. Дополнение появляется через секунду-две, причем не всегда правильно.
Спасибо за наводку. Попробовал и пользуюсь до сих пор.
Тоже на него перешёл, удобнейшая вещь. Даже удалось небольшой hotfix в основную ветку YCM слить.
Вас тоже после этого просили Google CLA подписать?
Да, перед принятием патча просили. Про CLA в последнее время много разговоров. Впрочем, гугловый называют относительно хорошим по сравнению с каноникловым.
На C++ пишу редко, но разок для интереса пробовал этот модуль с qt — да, подтормаживает. На Си особенных тормозов не было. В целом хорошая штука.
Кстати, для репозиториев на гитхабе можно не указывать полный путь. Можно писать так:
Bundle 'tpope/vim-fugitive'
Почему минус? Это из оф. документации Vundle. Или тут какие-то подводные камни?
В этом варианте строка «git» повторяется 0¹ раз, а в варианте автора количество повторений удалось довести до трёх. Такое демонстративное пренебрежение божественной системой контроля версий оскорбляет её фанатов.

¹ Или 1, но только для некоторых дополнений.
Извиняюсь, случайно нажал.
Да, короткая запись удобнее. Когда конфиг писался, ещё не знал что так можно.
Только что установил 7.4 — по-умолчанию стоит cp-1251 установка Unicode приводит к нечитабельному тексту. У вас какая ОС?
Установка UTF-8 когда и к нечитабельному тексту где? Делать set encoding=utf-8 где‐либо, кроме vimrc, совершенно не рекомендуется, т.к. приводит к тому, что строки, уже хранящиеся в памяти, становятся неправильными.

И, кстати, Vim всегда брал и сейчас берёт кодировку из окружения. Я не помню, чтобы что‐то здесь менялось (что точно менялось — работа с именами файлов и, возможно, переменными окружения).
Устанавливаю set encoding=utf-8 в _vimrc (Windows 7). На данный момент прикрутил поддержку Unicode так, как рассказывается в статье.
Если это не GVim, то могут быть проблемы с кодировкой терминала. А GVim в Windows тоже на GTK? А то я вижу подозрительный файл src/gui_w32.c. Может ему нужна соответствующая &termencoding.

Впрочем, я не слишком хорошо знаю эту кухню с кодировками, особенно на Windows. У меня просто везде UTF-8. Хотя в тестах моих дополнений в Wine вроде set encoding=utf-8 и scriptencoding utf-8 во всех скриптах было достаточно.
НЛО прилетело и опубликовало эту надпись здесь
Сломалась кодировка сообщений (messages) при переходе на 7.4 c 7.3. В _vimrc:
set encoding=utf-8
set langmenu=en_US.UTF-8
set guifont=Courier_New:h10

Для решения, для использования английского в сообщениях, в `_vimrc` файл на самый верх:
language English_United States

Помогло в vim 7.4 под Windows 8.
Зря они по моему так сильно на питон завязываются.
Почему?

И ещё: не «они». Есть один разработчик (я), который решил улучшить поддержку любимого языка (Python). Если найдётся другой разработчик — будет улучшена поддержка другого языка. Вероятно, это будет lua. Сам Брам в силу отсутствия времени на улучшение поддержки какого‐либо языка был вынужден выбирать из двух вариантов: первое, улучшить поддержку Python, второе, не улучшать ничего вообще. «Завязывания» нету: VimL по‐прежнему единственный язык, необходимо присутствующий во всех сборках Vim. Python по‐прежнему может быть отключён.
Круто, никак не ожидал что сам автор изменения ответит! :) В таком ключе оно конечно все хорошо и ничего не ухудшает.

Когда я читал предварительные логи изменений VIM мне показалось что взят курс на питон, учитывая что VimL вроде как испытывает проблемы с производительностью можно было бы ожидать что многие плагины будут на питоне. Мне показалось это немного опасной тенденцией, например на windows у меня нет питона по умолчанию и не хотелось бы такой зависимости для Vim.
Это мода, а не официальный курс. По сравнению с VimL, Python быстр, Python поддерживает больше возможностей, Python прост. Тенденция перезда дополнений на Python началась задолго до того, как я написал свой RFC с новыми интерфейсами и, кажется, ещё до того, как я добавил vim.bindeval. Говорить об официальном курсе следует только после того, как в стандартную поставку включат дополнения для общего пользования¹ на нём, а этого, как мне кажется, не произойдёт.

¹ Автодополнение для Python, находящееся в стандартной поставке, требует наличия поддержки Python. То же самое относится к Ruby (но дополнение соответственно на Ruby).
Спасибо за разъяснения, я немного успокоился и меньше опасаться за vim.

Я в VIM ценю скорость/отзывчевость, когда не бывает такого как в IDE что набираешь символ и приходится ждать когда какой-нибудь autocomplete прогрузится. С некоторыми дополнениями (autocomplete, linters) Vim теряет это свойство и поэтому от таких приходится отказываться. Та политика что есть сейчас она кажется разумной, когда интерпретатор и рантайм большого интерпретируемого языка не загружается автоматически (только по желание тех кто сознательно на это идет).
Помимо него и VimL можно писать на Lua, Perl, Tcl, Ruby и Scheme. Просто Python как-то становится мейнстримом.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации