Обсуждение двух тем «священной войны» одновременно

Переходим к делу: текстовые редакторы *и* вкладки против пробелов! Оооо!

В моей жизни есть Mac. Они регулярно получают обновления. За последние пару дней получили Монтерей версии 12.3. Это казалось в основном без происшествий… пока я не пошел редактировать что-то, используя свой маленький скрипт-оболочку.

У меня уже давно есть эта штука под названием «е». Это глупый маленький скрипт, который служит для нескольких вещей. Он запускает мой редактор с заданным файлом и запускает его с правильными аргументами, чтобы отключить перенос строк и сделать так, чтобы клавиша [TAB] фактически помещалась в два пробела.

Почему скрипт, а не .nanorc? Ну, я думаю, это предшествует тому, что у них есть этот файл. Кроме того, есть один нюанс: я много работал с Makefiles, как и до того, как я сделал свой инструмент сборки C++ без Makefile, и в этом контексте вам *на самом деле нужны* нешуточные символы табуляции ^I. Это единственный разделитель, который можно использовать при написании последующих частей правила.

Итак, мой тупой скрипт большую часть времени использовал «-w -E -T 2», за исключением случаев, когда он запускался в Makefile, и в этот момент он пропускал эти аргументы. Достаточно просто, не так ли?

Я давно использую этот скрипт как на Linux-машинах, так и на Mac, и на Mac он просто сломался. Теперь я получаю жалобу на то, что «E» и «T» не являются допустимыми аргументами, а затем выдает «возможные начальные аргументы для редактора pico». Чего ждать?

пико вернулся? Да, действительно, на Mac с версии 12.3 пико действительно вернулся. Чтобы убедиться, что мне не померещилось, я отследил машину, которая еще не была обновлена, и проверил ее. Конечно же, на самом деле это был нано, а не пико.

macOS до 12.3 имел pico в качестве символической ссылки, указывающей на nano.

В macOS 12.3 есть символическая ссылка nano… указывающая на pico!

Для тех, кто не в этом мире, pico был составной частью почтового клиента Pine, отделенной от себя. В течение многих лет у него были странные проблемы с лицензированием, и, как правило, его было не так просто найти. Возможно, из-за этого и был запущен nano. Раньше он был довольно близок с точки зрения функций и поведения, но в какой-то момент нано разошлось. Он научился превращать клавишу [TAB] в некоторое количество пробелов, как если бы вы нажимали клавишу пробела столько раз. пико не было.

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

Обновление macOS 12.3 незаметно переключило базовую систему с nano 2.0.6 на pico 5.09, поэтому, если вы используете эти переключатели, вам не повезло. Мой совет, если вы заботитесь о таких вещах, — возьмите nano от Macports или что-то еще и забудьте об использовании стандартного редактора. Вот что я собираюсь сделать. По крайней мере, мне не нужно перепрограммировать свои пальцы, так как «e foo» по-прежнему остается «e foo», независимо от того, что оно в конечном итоге вызывает внизу.

Что касается отсутствия фичи в самом пико, то это как-то странно, правда. Если вы покопаетесь в источнике, у них есть этот random.c с функцией под названием tab, которая утверждает, что «имитирует табуляцию» с использованием пробелов. Тем не менее, я не могу найти ни одного места, где бы он вызывался с магическими значениями, которые заставляли бы его вести себя таким образом.

Это также старая школа C, восходящая к 80-м, и мне не очень хочется тратить на нее слишком много времени, так что может быть какой-то способ.

Меня не удивило бы, если бы этот переключатель был просто большим количеством Apple, удаляющей GPL-вещи из своей ОС — pico, похоже, использует лицензию Apache. В какой-то момент они заменили bash на zsh (лицензия MIT) (я думаю, Big Sur), а теперь это? Тогда ладно.

Leave a Comment

Ваш адрес email не будет опубликован.