Atom / vi-обработка пробелов

Я ищу альтернативу TextMate для моей IDE выбора. Я пробовал множество других IDE и полюбил Atom, но я все еще испытываю эту особенно отягчающую проблему.

После того, как мы отправляем наши проекты на наши рабочие сервера, и нам нужно сделать правки через vi на сервере, пробелы всегда более серьезны в vi, чем это было в графической среде IDE. Например в TextMate это выглядит как:

function foo(){
    var bar;
    if($this)
         ...
    else
         ...
}

Тогда в vi это похоже на это:

function foo(){
                var bar;
                if($this)
                        ...
                else
                        ...
}

Кажется, что TextMate кодирует пробелы в другой кодировке, которую vi распознает как более существенную, чем она есть на самом деле. Это почти как vi удваивает все пробелы в графической среде IDE. Это единственная причина для поиска другой IDE.

Atom не так плохо об этом, но он по-прежнему представляет аналогичные проблемы. При открытии файлов в Atom, которые были отредактированы с TextMate, пробелы полностью испорчены, а также. Мы используем отступ табуляции как наше внутреннее соглашение кодирвоания в отличие от отступа 2-космоса. Это больше не будет такой проблемой, как только мы остановимся на новой IDE, но мой вопрос заключается в следующем:

Есть ли плагин или настройка, которую нужно настроить так, чтобы пробелы обрабатывались одинаково через vi и графические IDE? Специфически в атоме

Я открыт для других предложений для IDE, которые совместимы из коробки и разделяют функциональность, похожую на TextMate или Atom. Мы также пробовали скобки, SublimeText и несколько других.

1 ответ

  1. Похоже, вы жалуетесь, что ширина отступа левого поля не согласована между редакторами или между членами вашей команды (или, возможно, обоими).

    Нет общего решения этой проблемы, которое вы можете магически применить. Есть несколько вещей, которые вы можете попробовать.

    1. Получите консенсус в вашей команде о том, как сделать отступ.

      Если вы ожидаете последовательности, все должны участвовать и соглашаться, что это значит.

    2. Стандартизируйте пробелы для отступов вместо вкладок.

      Символы табуляции по своей природе имеют переменную ширину, поскольку каждый человек может выбрать способ их отображения. По этой причине, вы можете просто удалить их и использовать пространство отступа вместо этого. Код всегда будет отображаться одинаково.

      Некоторые люди жалуются на эту идею, говоря, что они не хотят, чтобы ударить пробел все время. Но современные текстовые редакторы справляются с этим за вас; вы все еще можете использовать свою клавишу tab, и она работает просто отлично.

      Во многих современных редакторах это называется «soft tabs».

      В Vim вы можете получить этот эффект, используя что — то вроде

      :set tabstop=4 shiftwidth=4 softtabsstop=4 expandtab
      

      (Замените свой номер… 2, 8, все, что ваша команда соглашается.)

    3. Вы можете попробовать EditorConfig .

      EditorConfig позволяет создать файл параметров, который будет использоваться редакторами для настройки различных объектов, включая отступы.

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

      Некоторые команды помещают файл EditorConfig в репо кода, чтобы он был легко доступен.

    Что касается того, какой редактор / IDE использовать, то это ортогонально этому вопросу, действительно. Вы столкнетесь с этой проблемой, когда будет задействовано более двух текстовых редакторов или членов команды.