Обновить

Emacs На Практике

Emacs

Проблема



Проблема в том, что переменные среды в Windows XP ограничены 1024 символами. Для большинства пользователей это не представляет проблемы, но для некоторых, в числе которых оказался я, проблемы начались внезапно. Программы, которые я использовал до этого в командной строке вдруг перестали находится. Поиск в интернете подсказал, что скорее всего проблема в ограничении на длину переменных среды.

Попробуем это исправить используя Emacs.



Решение



Так как запущен Emacs посмотрим что там у нас в переменной PATH



Очень много всего. Тем более, что многие пути включают в себя полное название директории, например, C:\Program Files или C:\Documents and Settings. Проверим длину



Понятно что неплохо было бы все это подсократить. Сделаем это прямо из Emacs. В версии для Windows присутствует функция w32-short-file-name, которая является интерфейсом к Win32 API функции и при вызове ее со строкой содержащей путь к файлу, возвращает путь в так называемом формате 8.3.

Для начала разобьем нашу переменную PATH на составляющие.



Применим к каждому элементу списка функцию w32-short-file-name и соберем элементы обратно в строку, используя ';' как соединиитель, с помощью функции mapconcat.



Проверим длину получившейся строки



Все равно получившаяся строка слишком длинная. Но можно удалить повторяющиеся элементы с помощью delete-dups. Разобьем строку обратно на элементы, удалим дубликаты и соберем обратно с помощью mapconcat. В этот раз бы применили функцию identity, которая возвращает сам элемент списка.



Длина нам вполне подходит и мы можем уже использовать эту строку. Распечатаем ее во временный буфер



Перейдем в получившееся окно C-x o и скопируем строку C-a, C-s ", Ret, C-space, C-s ", Ret, M-w





Откроем Свойства Компьютера, перейдем на вкладку Advanced, затем Environment Variables, перейдем в переменные системы, пролистаем до переменной Path, и поменяем ее значение на новое



Вуаля. Программы в командной строке снова работают.

Хотя главное, конечно же, чтобы работал Emacs.
Теги:emacsemacs-tipsemacs-lisptips and tricks
Хабы: Emacs
Рейтинг +9
Количество просмотров 3k Добавить в закладки 4
Комментарии
Комментарии 5

Похожие публикации

Junior Clojure Developer
от 70 000 до 150 000 ₽Health SamuraiСанкт-ПетербургМожно удаленно
Information Security Officer
до 275 000 ₽SmartTel PlusМожно удаленно
Business Development Representative
от 1 000 $MixRankМожно удаленно
IOS/Android Engineer [Mobile team]
от 5 000 до 6 500 $Coins.phМожно удаленно

Лучшие публикации за сутки