эффективное использование vim: «from the very begining»

    «Для меня vi это Дзен.
    Использование vi — это практика дзена.
    Каждая команда является коаном.
    Полный смысла для пользователя,
    Бессмысленный для непосвященного.
    Вы познаете истину каждый раз когда вы его используете.»
    --reddy@lion.austin.

    на сколько хорошо ты знаешь язык vim?
    посмотри на клавиатуру,
    можешь ли ты сказать что выполняет каждая буква?
    как много ты знаешь?
    как много используешь?



    Доброго всем времени суток, я хотел бы написать цикл статей о работе с редактором vim, это моя первая статья (совсем совсем первая) и я хотел бы начать с азов: режиме вставки, режиме команд, загрузке и сохранении файлов и тп. Он предназначен помочь новичкам развить свои навыки, с помощью которых они смогут использовать vim более эффективно.

    >c-x< означает Ctrl-X, те удерживая клавишу Ctrl нажмите клавишу x. Вы можете получить информацию о большинстве команд, используемых здесь, набрав :help command в редакторе vim, где command — это команда по которой в хотите получить справку.

    Итак, для vim имеет три режима:
    решим комманд — копирование\вставка\удаление\форматирование текст и тп
    режим вставки — режим ввода текста
    режим выделения — ясно из названия =)
    Esc — отмена текущего действия\выход в режим команд

    При открытии файла вы автоматически попадаете в режим команд, с него и начнем.

    Эффективное перемещение


    ты используешь h/j/k/l для перемещения?
    или до сих пор живешь в мире «GUIarrows ?»
    если да — переучись
    сохрани для себя бесконечные километры движений до стрелок и «home» клавиш


    В основном, вы должны тратить как можно меньше времени в режиме вставки, потому что этот режим действует как тупой редактор. Именно поэтому новички проводят так много времени в режиме вставки — он делает использование vim проще. Но настоящая мощь vim скрыта в использовании командного режима! Вы поймете: чем вы лучше знаете vim, тем меньше времени вы будете проводить в режиме вставки.

    Используйте h, j, k и l



    Первым шагом к эффективному редактированию будет отвыкание от использования клавиш курсора. Одним из преимуществ модульного дизайна vim — это то что вам нет надобности перемещать свои руки назад-впред между клавишами курсора и обычными клавишами; когда в в режиме команд буквы h, j, k, l соответствуют направлениям влево, вниз, вверх и вправо. Конечно, необходимо некоторое время для практики, но вы увидите разницу в скорости как только попробуете.

    Используйте комбинации для перемещения курсора в текущей строке



    Большинство редакторов имеют только простые команды для перемещения курсора (влево, вправо, вверх, вниз, в начало линии и в ее конец, и тп). Vim имеет очень продвинутые команды для управления курсором; эти команды называются комбинациями(orig: «motions»). Когда курсор передвигается от одной точки текста в другой, текст между этими точками (включая их самих) считается «пропущенным»(orig: «moved over»)(этот термин будет важен позже)

    fx передвинуть курсор вперед (forward) к следующему вхождению символа x в текущей строке(конечо же x — любой символом). Это безумно полезная команда. Вы можете напечатать; для того что бы повторить последнюю команду f, которою вы ввели.
    tx тоже что и описанною выше, но при этом курсор устаналивается прямо перед символом, а не на сам символ.
    Fx передвинуть курсор назад (backward) к спредыдущему вхождению символа x в текущей строке
    w передвинуть курсор вперед на одно слово
    b передвинуть курсор назад на одно слово
    0 передвинуть курсор на начало текущей строки
    ^ передвинуть курсор на первый символ в текущей строке
    $ передвинуть курсор на конец текущей строки


    Печатаем эффективно



    Используем авто-завершение слов.



    Vim имеет очень хорошую систему авто-дополнения слов. Это означает что вы можете напечатать часть длинного слова, нажимаете клавишу и vim завершает слово за вас. Например если у вас есть переменная называющаяся iAmALongAndAwkwardVarName где-либо в вашем коде, вы вероятнее всего не очень захотите печатать целиком такое имя при каждом использовании.

    Для использования авто-завершения слов просто напечатайте несколько первых букв (например iAmAL) и нажмите >c-n< либо >c-p<.

    Эффективный переход в режим вставки


    Сколькими методами ты можешь перейти в режим вставки?
    давай посмотрим i I o O s S a A c C?
    и r R для полного ассортимента
    и это только одиночные буквы....

    Большинство новых пользователей vim переходят в режим вставки с помощью нажатия клавиши i. Это работает, но часто довольно неэффективно, поэтому vim имеет несколько команд для перехода в режим вставки. Перечислим несколько самых популярных:
    i вставить текст слева от текущего
    I вставить текст в начало строки
    a вставить текст справа от текущего символа
    A вставить текст в конец текущей строки
    o создать новую строку под текущей и вставить текст в новую строку
    O создать новую строку над текущей и вставить текст в новую строку
    c{motions} удалить текст помеченый как «пропущенный» и вставить текст для замены. Например c$ удалит текст от позиции курсора до конца строки и перейдет в режим вставки (проще говорят c = change что означает изменить). Удаленный текст перенесется в буфер обмена и в последствии может быть вставлен
    d{motions} тоже что и c{motions}, но без перехода в режим вставки (d — delete)


    Эффективно передвигаемся по файлу


    как ты двигаешься
    в начало\конце файла? gg/G
    на 100, 1546, n-ю строку? 100G, 1546G, nG
    на первый не пустой символ в строке? ^
    в следуйщей строке? >CR<
    в предыдущей? — (минус)


    Vim имеет множество команд, которые могут вас послать в любое место (так что не обижайтесь если что=), в вашем файле — очень редко возникает необходимость прокручивать вручную сквозь дебри текста.
    Вот несколько ииз наиболее полезных движений:

    >c-f&rt передвинуться вперед(forward) на один экран
    >c-b&rt переместиться назад(backward) на один экран
    G передвинуть курсор в конец файла
    numG передвинуть курсор на линию номер num( например, 10G передвинуть курсор на линию номер 10)
    gg переместить курсор в начало файла
    H передвинуть курсор наверх экрана
    M передвинуть курсор в центр экрана
    L передвинуть курсор вниз экрана


    так же вы можете расставлять метки в буфере:
    m — создать метку , указывающую на текущую позицию курсора.
    ` — установить курсор на метке . Обратите внимание — ковычка обратная `
    ' — установить курсор на одну линию с меткой `. или '. — установить курсор в позицию где были произведены последние изменения (разницу между ` и ' см выше)
    `` — переход между двумя последними позициями


    — метка будет локальной
    — глобальной
    :marks — выводит список все меток

    Для тех кто намертво сегодня ночью решил таки слезть с notepad++ (простите, для тех кто еще не сталкивался с метками) я хотел бы привести небольшой псевдо пример, забегая немного на перед:

    только напишу, что
    u — undo
    >c-R< — rendo

    открываем c:\windows\system.ini
    5G — идем на 5-ю сточку
    ma — ставим марку «a»
    15G — идем на 15-ю стоку
    c'a — меняем текст по своему усмотрению

    после произведенных изменений идем в режим команд (Esc)
    10G — см выше
    mb — см выше
    d'b — d = delete

    опять идем в режим вставки
    >c-v< — режим выделения (о нем чуть позже, просто хочу показать всю мощь вима)
    4j — j — сдвиг курсора вниз nj — означает повторить сдвиг n раз
    4>> — сдвиг текста вправо, n>> аналогично nj
    20G — идем на 20-ю строчку
    ='a — чудеса авто-форматирования? =)

    идем в режим вставки
    :q! — выйти не сохраняя изменений
    если вы считаете что вим уже освоен — нужно вводить просто :wq (не советую, но попробовать можно)



    Поиск слов в тексте



    * перейти в следующее упоминание текущего слова в файле(Например, если курсор указывает на слово «вася», то он переместится на следующее упоминание этого слова в вашем файле)
    # тоже самое что и *, но передвигает на предыдущее упоминание
    /text начиная от курсора ищет следующее упоминание строки text и переходит к ней. Для выполнения поиска необходимо нажать enter. Для повторного выполнения последнего поиска нажмите n (next)
    ?text тоже что и /text, но поиск идет в обратную сторону


    Эффективно передвигаем блоки текста



    Используйте визуальное выделение и подходящий режим выделения



    Существуют три основных режима визуального выделения (режимы подсветки текста). Эти режимы активируются следующим образом:

    v посимвольный режим выделения. Этот режим используется большинством людей, поэтому попробуйте попрактиковаться перед тем как пробовать остальные.
    V построчный режим выделения. В этом режиме выделяются всегда целые линии. Это намного удобнее в случае если вы хотите выделить несколько линий
    >c-v< блочный режим выделения. Безумно мощное средство, доступное в небольшом количестве редакторов. Вы можете выделить прямоугольный блок с любым текстом внутри и он будет подсвечен.

    Все обычные команды управления курсором также работают. Например команда vwww — переведет vim в режим посимвольного визуального редактирования и выделит следующие три слова. Команда Vjj — переведет vim в режим посимвольного визуального редактирования и выделит текущую строку и две строки под ней.

    Вырезание и вставка из режима визуального выделения



    Вероятно, после того как вы выделите какой-то участок текста, у вас возникнет желание что-либо с ним сделать, иначе зачем бы вам понадобилось его выделять? Вот несколько полезных команд которые можно использовать над выделенным участком текста:

    d вырезать(удалить) выделенный текст и поместить его в буфер обмена
    y скопировать (yank) помеченный текст в буфер обмена
    c вырезать помеченный текст и поместить его в буфер обмена. Эта команда действует аналогично команде d, но оставляет редактор в режиме вставки

    Вырезание и вставка из режима не визуального выделения



    Если вы знаете что вам необходимо вырезать или скопировать, то вы можете совершить данные операции без перехода в режим визуального выделения. Это сбережет ваше время

    d{motion} — вырезать текст помеченный как «пропущенный» и поместить его в буфер обмена. Например команда dw вырежет слово, а команда dfS вырежет текст начиная с позиции курсора и заканчивая следующим символом S, который встретится в текущей строке, включая сам символ S
    y{motion} скопировать «пропущенный» текст
    c{motion} вырежет «пропущенный» текст и оставит редактор в режиме вставки
    dd вырежет текущую строку
    yy скопиует текущую строку
    cc вырежет текущую строку и оставит редактор в режиме вставки
    D вырежет текст от позиции курсора и до конца текущей строки
    Y скопировать весь текст, подобно yy. (Это конечно нестандартно, вы можете использовать y$ для действияя которое вы могли ожидать от команды Y)
    C вырезать текст от курсора до конца строки и оставить редактор в режиме вставки
    x вырезать текущий символ (действует подобно backspaсe)
    s вырезать текущий символ и оставить редактор в режиме вставки

    Для вставки поместите курсор в место куда вы хотите вставить текст и нажмите на клавишу p

    Избегайте повторения своих действий



    Удивительная команда .



    В vim, нажатие . (точка) будет вызывать повторение последней введенной команды. Например, если последняя команда была dw(удалить слово), после нажатия. в режиме команд vim удалит еще одно слово.

    Использование счетчиков



    Счетчики — это очередной мощный и сохраняющий ваше время инструмент. Любые команды могут быть предварены числом. Это число указывает сколько раз необходимо повторить команду. Вот несколько примеров:
    3j переведет курсор на 3 строки вниз
    10dd удалить 10 строк
    y3f" скопирует текст от курсора до третьей кавычки после курсора на текущей строке.


    всем спасибо за внимание
    если честно — то я хотел написать больше (не затронул тему макросов, регистров, дополнительных модулей и тп), но из ходя из объема, я думаю пока что будет достаточно
    если у меня хватит кармы — обещаю напсать продолжение =)

    от себя добавлю — тяжело в учении легко в бою, по началу для меня вим казался чем-то ужасно сложным и нагроможденным, постоянно чего-то хотел, не давал просто вводить текст =)
    сейчас — я просто не могу набирать текст где-то в блокноте и тп. Даже почту отсылаю через вим.

    ps незаметно для всех хочу подблагодорить человека кто в первый познакомил меня linux'oм и с vim'ом, можно сказать благодоря ему родилась эта статья, thank you Roman Romanchuck, к сожелению давно с тобой не общался
    pss просьба — не пинайте сильно, плохо пишу, но стараюсь!!
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 114
    • +13
      не поверите, 3,5 часа убил на пост )
      • –7
        а 2 секунды на хабракат пожалели :)
        • –15
          Сомнительное достижение.
          • +3
            и более чем сомнительный комент
          • 0
            Многое из описанного есть во встроенном интерактивном учебнике vimtutor.
            • НЛО прилетело и опубликовало эту надпись здесь
            • –4
              Хабракат! А то сейчас заминусуют.
              • 0
                та да. я бы советовал после "При открытии файла вы автоматически попадаете в режим команд, с него и начнем."
                • +3
                  спасибо
                  в первый раз пишу, забыл (
              • 0
                Vim - это сила, да. Но не каждый найдет в себе силы изучать его возможности. Можно сравнить vim с диким и своенравным скакуном, обуздать которого найдутся силы далеко не у каждого, но зато тот, кто сможет это сделать, станет по настоящему лихим наездником! :)
                • +11
                  Почему-то сразу вспомнилась старая шутка:
                  "vi имеет 2 режима работы: портить тект и пипикать" Ж) Но опять ж, это для тех, кто только в начале великого пути освоения всех премудростей и возможностей редактора сего.
                  • 0
                    Интересно, у скольки человек в первый запуск vi удалось завершить его без перезагрузки?)
                    • 0
                      А что тут сложного? Лично я через полчаса нажал Alt+F2 и сделал killall.
                      • 0
                        Не знаю, я в 10 лет, установив слаку с дискет(попутно убив раздел с виндой естесственно ^_^) не догадался это сделать). С учетом что команды я знал только досовские)
                        • 0
                          Вру даже, не в 10 было, а в 8. То бишь 10 лет назад.
                          • 0
                            На пресс-конференцию к звезде нужно приходить подготовленным!
                            • 0
                              Линупс это не макось же) Тут я звезда ^_^
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • –1
                        You are a blithering idiot! Emacs is the worst editor ever
                        invented! I learned vi and I've never needed anything else!
                        :wq!
                        ^[kdd:w!q!ZZ
                        ^C^D.exit
                        quit
                        logout
                    • +3
                      Есть отличная штука для освоения vim — vimtutor. Представляет собой курс занятий с нарастающей сложностью. В Убунту, вроде, есть сразу, но если ругнётся, то просто: sudo apt-get install vimtutor
                      • 0
                        Неплохой tutor по vim написал Andrei Zmievski. Хоть он и с уклоном на PHP, можно почерпнуть много интересного.

                        VIM for (PHP) Programmers
                        http://www.gravitonic.com/do_download.php?download_file=talks/php-quebec-2007/vim-for-php-programmers.pdf

                        Доп файлы с настройками: http://www.gravitonic.com/do_download.php?download_file=other/andrei-vim-files.tar.gz
                        • 0
                          http://www.moolenaar.net/vim.html
                          Seven habits of effective text editing 2.0
                          You can watch the video on Google Video. The presentation is about 45 minutes, with the Q&A it is about 80 minutes.
                          If you can't get Google Video to work, you can also download the DIVX file. Warning: this is 507 Mbyte!.
                          • 0
                            Мне кажется что часть этого топика это перевод из первой ссылки на
                            VIM for (PHP) Programmers
                            http://www.gravitonic.com/do_download.php?download_file=talks/php-quebec-2007/vim-for-php-programmers.pdf
                          • +2
                            Нужно ещё обязательно упомянуть про text-objects. Это объекты, которые можно использовать в командах в качестве {motion}, хотя они как бы и не motion. Например когда курсор находится на любой букве слова вы можете написать daw и удалить слово целиком и последующий за ним пробел. das удалит предложение, в каком бы месте предложения не находился курсор, а dap — параграф. Для программистов особенно полезными будут объекты a[, i[, a(, i(, a{, i{ и т.д. Пример использования — нужно скопировать в буфер то, что находится между фигурными скобками — нажимаем yi{ , весь блок включая фигурные скобки — ya{ . Подробнее — :help text-objects.
                            • 0
                              у меня где-то была подробрка хороших труков для вима, собранная с разных сайтов, в следуйщем посте я постораюсь раскрыть эту тему, думаю нам всем будет интерестно
                              • 0
                                Огромное спасибо за Ваш комментарий!
                              • +2
                                Vim - прекрасный редактор. Спасибо за статью!
                                • 0
                                  Спасибо, пишите еще.
                                  • 0
                                    от давнего пользователя vim + в карму :)
                                    • 0
                                      Спасибо. Добавил в букмарки, буду юзать вместо vimtutor, если что-нить забуду =)
                                      • +1
                                        Используя vi стараюсь поскорее добраться до :wq
                                        • 0
                                          ну и зря =)
                                          Помне так vim дико удобная штука. Гораздо удобнее "модных" ee и nano. (от последнего меня вообще дико тошнит)
                                          • +1
                                            Просто он откровенно "негуманоидный".
                                            Привыкнуть, конечно, можно к чему угодно.
                                            • 0
                                              посмотрел ee и nano, гуманоидностью там вообще не пахнет, в отличие от vim, и это несмотря на перезагрузку в первый раз :)
                                              • +1
                                                кривые изучения различных редакторов
                                          • +1
                                            Vi-подобные редакторы трудны из-за того, что основаны на режимах, при всей красоте. О вреде режимов много сказано специалистами по интерфейсам, даже если не закапываться глубоко, а почитать Раскина.
                                            • +1
                                              Если не читать Раскина, а пользоваться такими редакторами, то прелесть этого подхода станет очевидной. Я переехал на emacs, но о vim вспоминаю с теплотой. Это был _самый_ удобный текстовый редактор.
                                              • 0
                                                Почитать всё-таки имеет смысл - cам пользуюсь иногда именно vi, но _понимаю_ что в нём хорошо, а что - не очень.
                                                • 0
                                                  Надо просто знать историю создания оного, и понимать, почему вим такой, какой он есть. И исходя из этого учится им пользоваться.
                                                  • 0
                                                    Это само собой...
                                                    Скорее всего, то, что я имею в виду, позволило бы не рекомендовать vi и vim некоторому типу людей.
                                                • 0
                                                  Можно вопрос - а почему перешли на Emacs? Интересно.
                                                  • 0
                                                    А у емакса самый удобный язык :)
                                                    Просто захотелось чего то нового. Да и как не крути, vim - это только текстовый редактор, чего не скажешь о emacs.
                                                    • +1
                                                      В операционной системе "емакс" уже появился нормальный текстовый редактор? ;)
                                                      • +1
                                                        Ато ^_^
                                                        И даже неплохой :)
                                                        • +1
                                                          И назывется он, видимо, vim.
                                                        • –1
                                                          послушай, брут, тебе не надоело в каждой теме посвященной vim или emacs повторять одну и ту же, мягко говоря, глупую шутку о том, какой "хреновый" оказывается редактор в emacs? :)
                                                          • 0
                                                            Этот холивар должен быть вечным! :)
                                                      • 0
                                                        потому что по-настоящему хорошо vim умеет делать только две вещи - бибикать и всё портить.
                                                  • 0
                                                    Большое спасибо за статью! Несмотря на то, что давно использую вим, узнал и для себя много нового.
                                                    • +1
                                                      (размахивает флагом c надписью «Emacs рулит!»)
                                                      …хотя, безусловно, вы молодец;)
                                                      • 0
                                                        Когда-то давно уходил с вима на емакс.
                                                        После того как начали болеть кисти от постоянной распальцовки C-f, C-b и других более "раскидистых" кибиндингов — стал использовать viper-mode. Подумал и ушел обратно на вим. :)
                                                        Мысль моя такая — если использовать стандартное GUIшное управление: стрелки, Home, End и т.д., то емакс — суперский редактор. При каноническом использовании (руки уходят с home row по минимуму) он превращается в прогрессирующую боль в кистях от его использования.
                                                        Так что, вива модальные редакторы! Вива вим! :-)
                                                        • 0
                                                          первая и главная рекомендация от гуру, которую встречал на каждом втором если не первом сайте посвященному emacs - перебиндить caps lock и ctrl. Положа руку на сердце такой ребиндинг не то что руки, мозг не перенес.
                                                          • 0
                                                            Ну так и я капслок сделал контролом. Помогло конечно, но не сильно. :)
                                                      • 0
                                                        По поводу hjkl vs стрелки. Весьма спорно. Пользуюсь вимом уже около 2 лет. Так вот как показывает практика при активном редактирвоании текста, стрелки оказываются удобнее, хотя бы потому, что они работают во всех режимах. То есть не надо каждый раз выходить из режима вставки в нормальный.
                                                        • 0
                                                          Просто vi появился до появления курсорных клавиш и сейчас может работать на терминалах, на которых эти клавиши отсутствуют... То есть, тот факт что он поддерживает курсорные клавиши , видимо, как-то указывает, что использование курсорных клавиш смысла не лишено :)
                                                          • 0
                                                            Да, но это совсем не обозначает, что использование hjkl принесет реально больше удобства, чем традиционные клавиши-стрелки :) Да и режимы скорее всего были сделаны из-за этих самых терминалов. И они на самом деле и не самая удачная идея :) Просто реальных конкурентов у вима с его возможностями (одно дополнение слов и всего на свете чего стоит) не так много. Емакс в расчёт не берем, он тоже весьма специфичен.
                                                            • 0
                                                              Я тоже думаю, что не принесёт :)
                                                              Vi редактор академический, с богатой историей и амбициями, а эта штука, с абсурдным дублированием, называется в науке интерфейсов монотонностью. Разработчики про неё, скорее всего, знают :)
                                                            • 0
                                                              Безусловно это настолько круто в 2008 году, чтобы до сих пор тащить с собой наследие "аппарата Бодо".
                                                              • 0
                                                                Может быть, это нерешительность разработчиков..
                                                            • +1
                                                              Все-таки hjkl полезны. Даже сейчас слишком часто сталкиваюсь на зоопарке UNIX'ов (от HP-UX до FreeBSD) с тем, что стрелки не работают адекватно.
                                                            • 0
                                                              "решим комманд" - наверное режим?
                                                              • 0
                                                                и наверное команд? :)
                                                                • 0
                                                                  да режим команд :)
                                                                  ps править не буду, слетят все > < - а c ними было много мороки
                                                              • +1
                                                                Люди дорогие! У меня есть еще немного интересной эксклюзивной информации по vi - но к сожалению не хватает немного кармы, что бы опубликовать ее в свой блог.
                                                                Кого-нибудь не затруднит приподнять ее немного выше плинтуса? Опубликую тогда сегодня же, спасибо.
                                                                • 0
                                                                  и что фотки чашкой с командами ВИМ это "немного эксклюзивной информации по vi" хм... понятно, почему такая карма у вас :)
                                                                • 0
                                                                  нет надобности перемещать свои руки назад-впред между клавишами курсора и обычными клавишами

                                                                  А эффективный выход из режима вставки предусмотрен? Или сэкономленное на стрелках время придётся тратить на бесконечные потягушки к клавише Esc?
                                                                  • +1
                                                                    http://allaboutvim.blogspot.com/2008/04/esc-vim.html
                                                                    • 0
                                                                      Спасибо, прочитал. Вариант с ii привлекательнее всего, но как тогда набирать слова с двумя буквами i?
                                                                      • 0
                                                                        Ты много знаешь таких слов? )
                                                                        • 0
                                                                          название какой-нибудь переменной в коде, того-же цикла
                                                                          • 0
                                                                            Ага, может... только я что-то ещё ни разу подобного не встречал =)
                                                                            Это всё равно что русские слова сочетанием ыы, кроме разве что "гыыы"
                                                                            • 0
                                                                              for (int i...) {
                                                                              for (int ii...) {
                                                                              }
                                                                              }

                                                                              или допустим интерфейс для итератора IIterator

                                                                              глупость, конечно, но встретить вполне себе можно :)
                                                                    • 0
                                                                      >Или сэкономленное на стрелках время придётся тратить на бесконечные потягушки к клавише Esc?
                                                                      :imap
                                                                      ? =)
                                                                      и расстояние от правой руки до Esc бриже чем от левой руки до кнопочек ))
                                                                      • 0
                                                                        Но ведь можно нажимать Ctrl + [ , а не тянуться к Esc.
                                                                      • 0
                                                                        Супер, спасибо большое. Давно пользуюсь вимом, а многих вещей в нем не знал. Например,что есть автодополнение.
                                                                        • +1
                                                                          сейчас - я просто не могу набирать текст где-то в блокноте и тп. Даже почту отсылаю через вим.

                                                                          Это вы просто emacs не пробовали ;)

                                                                          Статья на отлично просто. Я хоть и из противоположного лагеря, но всё равно приятно, что потихоньку люди начинают использовать правильные вещи, и причем не только использовать, но и понимать, почему они правильные.
                                                                          • 0
                                                                            >Это вы просто emacs не пробовали ;)
                                                                            ))))))))
                                                                            ждем ваших статей =)
                                                                            • 0
                                                                              может как-нибудь попробую

                                                                              не могу придумать, с чего начать - the church of emacs такая большая, то просто теряешься.
                                                                          • 0
                                                                            Лучшее руководство по vi ИМХО от IBM:
                                                                            http://www.ibm.com/developerworks/edu/l-… (требуется регистрация)

                                                                            Вот в итоге что получится такой листок:
                                                                            http://www.ibiblio.org/web-gentoo/images…
                                                                            • 0
                                                                              спасибо, прекрасный пост, vi - религия :)
                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                • 0
                                                                                  кто смотрит на клавиатуру, тому проще дотянуться до стрелочек, ну и hjkl приходится учиться, как работе со стрелками впрочем, лучше для этого игры подходят, я обучался на вимовском тетрисе
                                                                                • 0
                                                                                  Приглашаю всех в блог vim: http://habrahabr.ru/blog/vim/
                                                                                  • +1
                                                                                    Тогда и я приглашу :)
                                                                                    http://allaboutvim.blogspot.com/
                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                      • 0
                                                                                        Рад, что блог кому-то оказался полезен )
                                                                                  • +7
                                                                                    • 0
                                                                                      О, еще кому-то приснилась таблица Менделеева!
                                                                                    • –2
                                                                                      Что касается эффективного использования vim…

                                                                                      Вот знаете, говорят: Internet Explorer — это программа для скачивания Оперы или на худой конец Firefox’а?

                                                                                      Так и vim — это программа для настройки конфигов, чтобы можно было скачать mcedit или nano.
                                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                                        • +1
                                                                                          Успехи мегавиммера говорят сами за себя:

                                                                                          David Rayner (zzapper) 15 Years of Vi + 6 years of Vim and still learning 21Jun08 : Last Update


                                                                                          Вы хотите иметь инструмент, который вы не будете знать даже после 21 года практики? Причём это всего лишь редактор текстов? Vi/vim не нужен нормальным людям, тем, которые не всосали его с молоком терминального доступа к SunOS или BSD 4.2 в восьмидесятых годах. Автор вима приложил _все_ усилия для того, чтобы сохранить аутентичность ви-ая со статусной строкой, модами и прочим, добавив лишь пару существенное изменений, такие как окна и визуальное выделение. ЗАЧЕМ знать, что «s/joe/e+1» поставит курсор на один символ за найденным? Неужели это проще, чем нажать стрелку вправо после «/joe»? Я не понимаю, как это может нравится.

                                                                                          P.S. Сам использую исключительно vim, но только потому, что знаю vi, и мне лень разучивать название текущего оконного редактора в очередном дистрибутиве.
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                            • 0
                                                                                              Меня толкнул на изучение этих систем простой факт, что альтернатив не было. Был только vi. А что касается силы привычки... Я, честно, даже не задумывался. Как-то vi и vi, просто не было как-то нужды ни в чём ином. Для меня лично его недостатки компенсируются тем, что он 1) есть в любой системе, даже однодискетной, 2) быстро запускается, и самое главное, 3) я его знаю. Но знаю я его не потому, что выбрал его знать в качестве ментального упражнения, а потому, что мне пришлось, когда выбора не было.

                                                                                              Я могу согласиться, что всё прочее это унылый отстой. Но это не причина агитировать свежий народ за нечто, изготовленное в 1976 году. Вдумайтесь, почему "visual" сократили до "vi"? Потому что при скорости терминальной линии 40 бод длина команд немаловажна. Это же относится к интерфейсу, почему весь экран чистый, для пустых строчек скупые тильды, а статус снизу? Чтобы уже можно было читать, пока экран обновляется. 30 лет прошло.
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                            • 0
                                                                                              ЗАЧЕМ знать, что «s/joe/e+1» поставит курсор на один символ за найденным? Неужели это проще, чем нажать стрелку вправо после «/joe»? Я не понимаю, как это может нравится.
                                                                                              Кому-то кстати это может быть проще. Смотрите, если вам нужно сделать это много раз, то проще один раз дописать e+1 в конец строки поиска и каждый раз нажимая n попадать куда надо, чем нажимать постоянно nel, не так ли? ;) Но знать это всем и каждому конечно же не обязательно. Главное понять идею и знать, что можно сделать. Как это делать можно найти в :help тогда, когда будет необходимость :)
                                                                                          • 0
                                                                                            На мой взгляд Vim удобнее емакса тем что ненадо постоянно зажимать Ctrl,Shit,Alt и растягивать пальцы как пианист чтоб выполнить какую то простую команду, котора в Виме вводится через ":". Ещё Вим удобен тем что написан на элегантной С-шке, а Емакс на противном ЛИСПе.
                                                                                            А недостаток Вима это отсутствие грамотной работы и управления проектами, как ето есть у IDE'шек, хотя есть плагины и инструменты которые помогают управлять проектом, все таки это не то....
                                                                                            • 0
                                                                                              З.Ы.:Маленькая поправка
                                                                                              "x вырезать текущий символ (действует подобно backspaсe)" на самом деле подобно delete.
                                                                                              И ещё вы не упомянули об motion command >> и "
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                • 0
                                                                                                  Для emacs есть вот такая штука, правда не знаю насколько она полноценно эмулирует Vim.
                                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                • 0
                                                                                                  Vim - вещь! Спасибо за перевод )
                                                                                                  • 0
                                                                                                    Извините, я не в теме, но почему некоторые говорят vim, а некоторые vi ?
                                                                                                    • +1
                                                                                                      vim - это расширенный вариант vi.
                                                                                                      vim - Vi IMproved, a programmers text editor
                                                                                                  • 0
                                                                                                    А меня в свое время еще ed'у и ted'у учили — вот это были инструменты для настоящих парней, ничего лишнего :) Правда, sed потом пришлось самому учить ;(
                                                                                                    А потом, помню, кто-то пытался что-то вроде редактора в стиле TurboVision под Линукс писать. Получилось что?
                                                                                                    А сколько нажатий на клавиши сэкономил бы IntelliSense, если бы он был реализован там, где всё ещё эффективно используют vim? :))
                                                                                                    • 0
                                                                                                      Есть 2 варианта по поводу Vim + IntelliSense.
                                                                                                      1. Vim Intellisense. До студийного конечно не дотягивает, то намного сильнее встроенного.
                                                                                                      2. ViEmu. Эмуляция Vim в редакторе Visual Studio. При этом работают как родной студийный IntelliSense, так и подсказки Visual Assist (и наверное ReSharper должен работать, я им не пользуюсь). Недостаток в том, что стоит денег и не полностью эмулирует Vim.
                                                                                                      • 0
                                                                                                        В 7 виме есть аналог IntelliSense
                                                                                                      • +1
                                                                                                        На Turbo Vision похож mcedit из комплекта Midnight Commander
                                                                                                      • 0
                                                                                                        Я вот давно хотел спросить --- а есть ли готовые сборки vim'а как IDE для какого-нибудь языка программирования? Я пока видел только одну (скверноватую) попытку --- редактор питона Pida.
                                                                                                        • 0
                                                                                                          Есть плагины, облегчающие написание программ на определённом языке. Например, я пишу на перле и у меня установлен perl-support — он позволяет, например, проверять синтаксис, запускать и отлаживать скрипты, вставлять куски кода, читать документацию и т. д.
                                                                                                          perl-support.vim implements a Perl-IDE for Vim/gVim. It is written to considerably speed up writing code in a consistent style.

                                                                                                          This is done by inserting complete statements, comments, idioms, code snippets, templates, comments and POD documentation. Reading perldoc is integrated. Syntax checking, running a script, starting a debugger and a profiler can be done by a keystroke.

                                                                                                          Есть аналогичная штуковина для баша. Про питон не знаю. Хотя никто ж не мешает запускать нужные программы, не выходя из вима.
                                                                                                        • –1
                                                                                                          Позорник. Тупо спиздить большУю часть презентации Змиевского, перевести, как автоматический переводчик и даже не написать, что это перевод — позор.
                                                                                                          • НЛО прилетело и опубликовало эту надпись здесь

                                                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.