Системный администратор хостинга
0,0
рейтинг
10 августа 2013 в 23:42

Разработка → Вышел Vim 7.4

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


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

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

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

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

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

:wq
Амет Умеров @Amet13
карма
22,2
рейтинг 0,0
Системный администратор хостинга
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (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

        Очень сложно.
        • +2
          В дополнение, еcли просто запустить vim также видна надпись как из него выйти:
          habrastorage.org/storage2/aaa/69f/40e/aaa69f40eafa68ea1740d65488d2e2aa.png
          • +1
            Ctrl+Z
            killall -9 vim
            :)
        • –4
          OMG! Что у Вас со шрифтами?!
          • +2
            А что такого? Нормальный терминальный шрифт.
            • –1
              Он несглаженный
              • +3
                Я вам скажу страшное, но некоторым людям не нравится это сглаженное мыло. Такие дела.
              • +3
                Это только добавляет ему теплоты и ламповости.
    • 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 как-то становится мейнстримом.

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