Вышел Vim 7.4

    Спустя 3 года и более тысячи патчей, состоялся релиз одного из самых популярных текстовых редакторов Vim.


    Из основных улучшений:
    • Улучшена поддержка Python
    • Движок regexp стал быстрее
    • Улучшена подсветка и форматирование кода Javascript и XML
    • Возможность сохранения выбранных областей в системный буфер обмена
    • Поддержка использования системного буфера обмена в качестве регистра по умолчанию
    • Реализовано автодополнение при вводе аргументов команды :language
    • Для разработки расширений на Lua добавлена поддержка привязки данных к структурам Vim

    Также исправлено множество ошибок и внесены мелкие улучшения.

    Полный список улучшений:
    :help version7.4

    Ссылки для загрузки:
    MS-Windows: gvim
    Unix: Mercurial + sources
    Mac: MacVim

    Помочь проекту: vim.org/sponsor

    :wq
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 84
    • +7
      Предложите, пожалуйста, хороший, желательно русскоязычный, туториал по этому редактору. И бумажную книжку — можно не совсем профильную, а и с другими темами, например. Спасибо.
    • 0
      Удивляет кол-во до сих пор не освоивших его, ибо в каждой теме про него либо говорят, что хотят освоить, либо спрашивают литературу по нему.
      • +2
        Как это ни странно, куча народу на Виндах ссидит и не парится… юзают TextPad или NotePad++ и т.п., и про vim даже не слышали. «Все крутые пацаны рубятся в консоль, и только девчонки предпочитают ГУИ» — это моя половина так шутит.

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

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

            Освоить азы быстро, достаточно этому уделить минут 30 для начала (например заюзав учебник входящий в поставку — vimtutor).
            • +2
              А как вы решаете проблемы рефакторинга (например переименование метода во всех местах его вызова)?
              • 0
                В UNIX это и многое другое делается средствами операционной системы — sed, awk, egrep, find и т.д. Поэтому UNIX так любят программисты.
                • +1
                  Ясно. Я как-то искал статью на Хабре, о том как перестать пользоваться своей GUI IDE и начать использовать что-то консольное… Но… не нашел. Может опубликуете?
                  • +6
                    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. Как это сделать этими утилитами?
                    • +9
                      Очевидно же, пользователи текстовых редакторов постигают дзен и
                      * Не пишут гавнокод, чтобы не было нужды в рефакторинге.
                      * Пишут код сразу без багов, чтобы бы не использовать костыли для дебага.

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

                        PS: Чувствую приближение шуток про Чака Норриса.
                    • +5
                      Рефакторинг седом? Ох лол, люди каменного века, откуда вы такие?
                      • 0
                        Это не делается через программы для работы с текстом — они не способны выполнять анализ кода: ничего не знают о контексте.
                      • +5
                        :%s/methodA/methodB/g примерно так
                  • +15
                    vim имеет два режима: всё портить и бибикать

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

                      PS И консоль это не круто, это удобно!
                      • +1
                        Для меня было главное что консоль — это «системно-незатратно» и соответственно быстро, а уже потом понимаешь насколько это удобно. А с vim-ом, mc, и всякими top — подобными утилитами и подавно :)
                        • 0
                          — Кого не спроси уже каждый знает про выход :q
                          ТЕПЕРЬ — да.
                          Я лет 7 назад я с ним пару часов мучался, пока компьютер не перезагрузил.
                        • +5
                          Нажал ctrl+c, увидел надпись:
                          image

                          Очень сложно.
                      • 0
                        Вы забываете прописные истины:
                        Vim никогда нельзя изучить до конца.
                        Лучший способ понять Vim — это практика.

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

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

                          Либо надо поставить в систему, сделав make install, либо вспоминать старую добрую слаку, хотя б на виртуальной машине поднять )
                          • 0
                            Ура! Вот и замена стандартному FAR'овскому редактору нашлась)
                            • +11
                              Долго же вы искали :)
                              • 0
                                Да я и не искал особо) С Colorer'ом в FAR'е вполне удобно писать скрипты на Python/Perl, для остального есть IDE. А тут вот оказывается и Vim есть виндовый)
                                • 0
                                  Да он даже под дос есть )
                                  • 0
                                    Помимо vim, откройте для себя волшебный мир pyCharm и phpStorm… :)
                                  • +1
                                    Небось, только недавно с Dos Navigator'а перешёл, а тут на тебе, опять переход :)
                                  • 0
                                    (удалено)
                                  • +4
                                    Возможность сохранения выбранных областей в системный буфер обмена


                                    А раньше было нельзя?

                                    "+y
                                    "*y
                                    • 0
                                      Видимо имеется в виду по дефолту, но надо поставить посмотреть. Пока для меня в этой версии нет ничего важного, подожду появления в репозитории и после гляну.
                                      • +3
                                        Ну так и по дефолту можно было настроить:
                                        " use system clipboard (but not the middle-click mouse clipboard undex X11)
                                        set clipboard=unnamedplus
                                        
                                        • 0
                                          Вы, видимо, немного не в курсе, что считается «изменением в версии 7.4». А именно этими изменениями считаются все изменения сделанные в патчах 7.3.001 и более поздних вплоть до релиза. В самой первой версии 7.3 указанной вами функциональности не было, она появилась только в версии 7.3.074.
                                          • 0
                                            Видимо, не в курсе.
                                            • 0
                                              Я, до того как написал анонс беты vim-7.4 (то есть, пока не возникла необходимость узнать, что именно нужно писать в анонсе), тоже был не в курсе. Но, чтобы у людей не возникло недоумения как у вас, в начале списка изменений было написано «(указаны измения с версии 7.3.000)» — зная, что ещё десять минут назад я сам не знал о таком правиле, предупредить ситацию легче лёгкого.
                                    • +5
                                      Где можно приобрести дрель с поддержкой Javascript, Python и XML?
                                      • 0
                                        Отзовитесь кто установил, никакие плагины не сломались?
                                        • +1
                                          Чему там ломаться. Собрал, работает всё что попробовал. Использую 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'
                                          
                                          • 0
                                            Кстати, как вам clang-complete? Я им пользуюсь, но впечатления смешанные. На маленьких программках все норм. Но если взять что-нибудь большое (boost например), то начинает тупить. Дополнение появляется через секунду-две, причем не всегда правильно.
                                            • +2
                                              Попробуй YouCompleteMe.
                                              • 0
                                                Спасибо за наводку. Попробовал и пользуюсь до сих пор.
                                                • 0
                                                  Тоже на него перешёл, удобнейшая вещь. Даже удалось небольшой hotfix в основную ветку YCM слить.
                                                  • 0
                                                    Вас тоже после этого просили Google CLA подписать?
                                                    • 0
                                                      Да, перед принятием патча просили. Про CLA в последнее время много разговоров. Впрочем, гугловый называют относительно хорошим по сравнению с каноникловым.
                                              • +1
                                                На C++ пишу редко, но разок для интереса пробовал этот модуль с qt — да, подтормаживает. На Си особенных тормозов не было. В целом хорошая штука.
                                              • 0
                                                Кстати, для репозиториев на гитхабе можно не указывать полный путь. Можно писать так:
                                                Bundle 'tpope/vim-fugitive'
                                                • 0
                                                  Почему минус? Это из оф. документации Vundle. Или тут какие-то подводные камни?
                                                  • 0
                                                    В этом варианте строка «git» повторяется 0¹ раз, а в варианте автора количество повторений удалось довести до трёх. Такое демонстративное пренебрежение божественной системой контроля версий оскорбляет её фанатов.

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

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

                                                        Впрочем, я не слишком хорошо знаю эту кухню с кодировками, особенно на Windows. У меня просто везде UTF-8. Хотя в тестах моих дополнений в Wine вроде set encoding=utf-8 и scriptencoding utf-8 во всех скриптах было достаточно.
                                                • +1
                                                  New Vim 7.4, soon. Its mostly because the patchlevel is going to exceed 999
                                                  • 0
                                                    Сломалась кодировка сообщений (messages) при переходе на 7.4 c 7.3. В _vimrc:
                                                    set encoding=utf-8
                                                    set langmenu=en_US.UTF-8
                                                    set guifont=Courier_New:h10

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

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

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

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

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

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

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