Pull to refresh

Comments 18

От полного перехода на (n)vim меня как раз останавливает vim script. (E)lisp как-то чище и роднее как таковой. Прочитал, вроде не все так страшно, осталось найти время на дальнейшее углубленное вкуривание. Сейчас пользуюсь Evil mode, есть большие вопросы к производительности (говорят, правда, что если тот же функциональный набор плагов повесить на вим, будет так же лагать)

Автор, отличная статья, спасибо!


Я тоже последнюю неделю интенсивно использую emacs из за org-mode. Думаю не перейти ли совсем. Так-то это, конечно, невозможно, но с появлением evil-mode (нормального текстового редактора) всё меняется.


я использовал df для выхода из режима вставки

Как же вы будете теперь писать статьи про Dwarf fortress? ;)

VimScript не самый лучший язык, префиксы переменных и функций главный wtf per minute, но писать плагины и тем более конфиги на нем в полне можно. А вот elisp для меня, это какое то безумие. Везде эти скобки, какие то названия типа setq, конструкции типа (+ 1 2). Скажу честно, дальше бездумного копи-паста я не осилил.

В Lisp оператор пишется слева, а операнды — справа. Всего лишь дело привычки. Зато писать выражения вида:


(+ 1 2 3 4 5 6 7 8 9)

намного приятнее)

А что вы имеете ввиду под производительностью? Скорость запуска редактора или выполнение каких-то операций? Последнее как-то не замечаешь, а для первого придумали autoload.

Даже такие базовые вещи как построчный скролл при синтакс хайлайте тупят. Конкретно для ruby очень подбешивает. Плагинов по минимуму.
UFO landed and left these words here

Поясните, что вы имеете ввиду. Если есть что-то быстрее, чем


  1. Нажать триггер
  2. Ввести запрос
  3. Нажать ентер

то с радостью добавлю это в свой плагин.

UFO landed and left these words here

Я намеренно отказался от горячих клавиш, так как на видео не видно, что нажимается. Ввод команды не только нагляднее, но и предоставляет базовый howto. О возможности забиндить команду на комбинацию клавиш не знает разве что совсем юный vim'ер.

Весьма занимательно. Наверняка работать удобнее чем с :vimgrep. Возьму плагин и статью себе на заметку.
Зависимость от Vim8 — это фейл. Большинство давно уехало на Neovim.

Причина зависимости от vim 8 указана в статье. В коде всего пара вызовов timer_start, которые очень легко убрать, но что делать с курсором в такое случае — я не знаю. А где вы прослеживаете предпочтения сообщества?

В основном reddit, github. Активность на https://github.com/neovim/neovim. То же количесто звезд — 21К у неовим против 8К у вим. Такие монстры как Shougo переписыват свои плагины под nvim.

сорри, промазал окошком) это ответ на вопрос выше

Что вы имеете в виду под «затирает»? Пользуюсь Fzf довольно долгое время и с таким не сталкивался.

У меня наблюдается следующий процесс: когда вызываю команду, fzf перерисовывает экран и предлагает список вариантов. После выбора пункта из списка, fzf возвращается в vim и вызывает соответствующий обработчик. Когда я заканчиваю работу и выхожу из vim, то история вводимых команд отсутствует. Это не критично, конечно же, просто иногда там может быть полезная информация — вывод команды git, например.

Отличная идея с плагином!


Подскажите, пожалуйста, как он в сравнении с fzy?


fzy is a fast, simple fuzzy text selector for the terminal with an advanced scoring algorithm.

Из README от fzy:


fzy attempts to present the best matches first. The following considerations are weighted when sorting:
It prefers consecutive characters: file will match file over filter.
It prefers matching the beginning of words: amp is likely to match app/models/posts.rb.
It prefers shorter matches: abce matches abcdef over abc de.
It prefers shorter candidates: test matches tests over testing.

Извините, что ответ только сейчас — на сайте в последнее время бываю не часто. Целью создания собственного плагина было желание иметь систему под себя, алгоритм, который отвечал моим, сугубо специфичным критериям. Из опыта использования fzf, стало ясно что его нечеткий поиск скорее мешает, чем помогает, поэтому от данной фичи я отказался, ну и банально — это сложнее. Собственно, это первое отличие от fzy. Алгоритм прост настолько, насколько может быть — это регулярные выражение, те самые, которые в состоянии переварить unix'овый grep. С производительностью тоже не всё так хорошо, как могло бы быть. При печатании любого символа, все строки (а их может быть довольно много) передаются в stdin grep'а, так что на сравнительно небольших объемах данных порядка 100к уже будут подвисания. Но поскольку весь спектр моих задач плагин покрывает, переписывать модель нет никакого желания. Вывод можете сделать сами, я лишь дам пару подсказок: если нужен нечеткий поиск или у вас много файлов, то лучше использовать fzf или fzy. Если нравится дизайн, превью, расширяемость, то можете обратить внимание на плагин.

Sign up to leave a comment.

Articles