Pull to refresh

Comments 21

На каком языке в основном пишете, если не секрет? Просто для статистики.
Сейчас в основном на С++ и Python.
И это очень логично. Кажется, что Vim наиболее пригоден как раз именно для этих языков. Для C++ потому что трудно написать хорошую IDE для такого сложного языка, а для Python — потому что для него написаны очень качественные и функциональные плагины.
Что меня прежде всего привлекает в Vim, так это отсутствие необходимости использовать мышь, скорость работы с текстом и его гибкость (одина возможность настроить Vim в зависимости от содержимого ftplugin чего стоит). Но скажу честно, что пользуюсь далеко не всеми его возможностями.
Vim – лучший текстовый редактор в мире. Но я ним не пользуюсь. Вернее, пользуюсь, но когда нужно отредактировать один файл.

Мне кажется, глупо не пользоваться преимуществами графических интефейсов и мощью семантического анализа IDE, учитывая, что для большинства из них есть симуляция Vim в том или ином виде: Intellij IDEA, Eclipse, ST, Atom. Даже для Emacs. IdeaVIM, например, поддерживает macros, remapping (limited), marks, buffers и многое другое. То есть можно очень даже неплохо жить, и при этом не краснеть когда тебе на code review говорят, что эта переменная не используется, или что она при неких обстоятельствах может быть не инициализированна. И не мучиться с GitGutter, который обновляет состояние раз в вечность.

В идеальном мире у Vim был бы API, который бы позволял подключать к нему внешние редакторы. Если я правильно понимаю, к этому стремятся ребята из NeoVIM.
А демонстрацию \r\n вместо простого \n в конце строки сложно добавить?
Технически сложности быть не должно, потому что нужно лишь добавить еще одно регулярное выражение. Только навскидку не могу сказать к какой опции это можно привязать, чтобы подсветка срабатывала корректно. Спасибо за идею.
Если в файле везде CRNL, то никаким регулярным выражением вы ничего не сделаете: файл будет открываться с setlocal fileformat=dos с преобразованием CRNL полностью в перенос строки. Если нет, то ^M в конце и без подсветки обычно заметить несложно, в регуляных выражениях можно использовать \r.
Хотя регулярное выражение $ будет подсвечивать часть строки за последним символом. Только без дополнительного условия «использовать только если &l:fileformat is# "dos"» подсвечиваться конец будет всегда.
Спасибо за информацию. Я как раз думал над этим вопросом.

Получается, что подсветка в этом случае вообще не особенно нужна, если я правильно понял первый коментарий.
Подсветка — нет, скорее всего пользователь не поймёт, что подсвечивается и почему (если только это не смешанный CRNL/NL файл). Вот сообщение о том, что &l:fileformat is# 'dos' при открытии сделать можно, вместе с описанием «а что это такое» и «как исправить» (и «как отключить предупреждение»).

Подсвечивать ^M в тексте всё же можно — «замечаемость» его сильно зависит от используемой цветовой схемы. С моим wombat256mod это особых проблем не доставляло, хотя там и нет кричащего фона. В стандартной схеме ^M похож на комментарий, что ещё заметнее. Проблем нету в основном потому, что ^M либо нет вообще, либо он есть везде (при вставке из старой Opera, к примеру). Так что мой комментарий всё же относится к моему опыту.

Я бы рекомендовал подсвечивать все управляющие символы, а не \r. Во всех известных мне языках программирования их можно заменить на что‐то из печатных символов, а проблем при использовании VCS или cat они доставить могут (VCS может счесть, что файл является бинарным, а в терминале они не зря называются управляющими).
Спасибо за дельные предложения. Насчет предупреждения:
Вот сообщение о том, что &l:fileformat is# 'dos' при открытии сделать можно, вместе с описанием «а что это такое» и «как исправить» (и «как отключить предупреждение»).

я бы сделал это ненавязчивым echo со ссылками на соответствующий help.
Несколько плагинов по теме, которые могут пригодиться:
sleuth — автоматическое определение tabstop, shiftwidth, softtabstop, expandtab
better-whitespace — подсветка лишнего/неправильного whitespace, а так же функция для удаление такового
indent-guides — подверстка отступов пробелами и табами
Подсветка пробельных символов в конце строки

setlocal list listchars=eol:¬,trail:_
Я знаю про эту опцию и долго ей пользовался, но в плагине сделал универсальную функцию для всех паттернов.
А зачем в github releases помещать README? Обычно туда помещают часть CHANGELOG (что изменилось по сравнению с предыдущим выпуском) и/или какую‐нибудь производную от него (к примеру, где сломана совместимость и как это исправить).
Спасибо за совет. Учту на будущее.

Если только CHANGELOG добавлять, то он у меня получается чересчур короткий от версии к версии, поэтому и вложил README.
Так это хорошо. Есть страничка github.com/aserebryakov/filestyle/releases, на которой сейчас много копий README. А в предложенном варианте там будет нормальный, полный CHANGELOG.

Собственно поэтому в powerline я changelog не веду — достаточно того, что список изменений есть на Github и есть полностью его копия в описании изменений в master ветке.
Вышла версия 0.6.1. Доступна на GitHub и Vim.org.

Починена проблема переопределения функций в случае если используется Vundle.
Вышла версия 0.7.0

Доступна на GitHub и Vim.org.

Новые возможности:

  • Исправление ошибок формата (экспериментальная фича)
  • Глобальное выключение плагина
Sign up to leave a comment.

Articles