Как установить разную ширину вкладки в зависимости от того, какой раздел в файле редактируется (в VIM)? - PullRequest
0 голосов
/ 14 октября 2019

В VIM я работаю над файлами javascript, где код JS смешивается с JSX. Например:

const nodeData = data.node.data;

if (nodeData.lastReadings.length > 0) {
    rows.push(
      <tr key="readings">
        <td>Last readings</td>
        <td></td>
        <td></td>
      </tr>,
    );

    nodeData.lastReadings.forEach((reading, idx) => {
        if(reading.value > 0) {
            rows.push(
              <tr key={i}>
                <td>{reading.label}</td>
                <td>{reading.value}</td>
                <td>{reading.actions}</td>
              </tr>
            )
        }
    });
}

Теперь для частей JS я бы хотел, чтобы ширина табуляции составляла 4 пробела, но для частей JSX (этот HTML-код выглядит как код) я бы хотел, чтобы ширина табуляции составляла 2 пробела. Есть ли какие-либо настройки / плагины, которые позволили бы мне достичь этого?

Моя версия VIM 8.0.

1 Ответ

1 голос
/ 15 октября 2019

Если различные части могут быть идентифицированы с помощью различных групп синтаксиса , мой плагин OnSyntaxChange позволяет настроить пользовательские пользовательские события, которые запускаются, когда вы включаете / выключаете такой синтаксис. Затем вы можете определить :autocmd s, чтобы манипулировать значениями 'softtabstop' и 'shiftwidth' в соответствии с вашими предпочтениями.

Если не существует синтаксического скрипта, который мог бы обрабатывать как JS, так и JSX, мой плагин SyntaxRange может назначить другой синтаксис для областей в буфере. Это потребует уникальных шаблонов для определения начала / конца таких областей или же ручного процесса вызова его команды :SyntaxInclude.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...