Как установить формат приглашения командной строки из макроса?
Как установить формат приглашения командной строки из макроса?
Как установить формат приглашения командной строки из макроса?
Как его получить нашел: Far.GetConfig("Cmdline.PromptFormat")
Но нет команды Far.SetConfig().
Как его получить нашел: Far.GetConfig("Cmdline.PromptFormat")
Но нет команды Far.SetConfig().
Last edited by HaRT on Tue 17 Jul, 2018 12:42, edited 1 time in total.
Reason: Убрано спец. оформление Темы (Значок)
Reason: Убрано спец. оформление Темы (Значок)
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как установить формат приглашения командной строки из макроса?
Её нет, поскольку среди разработчиков есть мнение, что это была бы опасная фича.
Конкретно я полагаю, что не более опасная, чем многое другое, но уважаю другие мнения.
Есть ещё одна важная причина - недокументированность большинства установок, что позволяет делать изменения и не бояться, что поломаются плагины/макросы.
Last edited by Shmuel on Tue 17 Jul, 2018 13:41, edited 1 time in total.
Как установить формат приглашения командной строки из макроса?
Shmuel, понятно.
А другим способом можно это как-то сделать, кроме как Keys("F9 O и так далее")?
Интересует изменение приглашения текущей сессии (не глобальное)
А другим способом можно это как-то сделать, кроме как Keys("F9 O и так далее")?
Интересует изменение приглашения текущей сессии (не глобальное)
Как установить формат приглашения командной строки из макроса?
DrKnS, спасибо такой способ подошел бы. Но в случае, когда myvar имеет пустое значение, FAR вставляет в приглашение её название, а не значение.
Баг?
Баг?
Как установить формат приглашения командной строки из макроса?
В заголовке окна так же - туда можно прописать %myvar%, но если переменная не задана, то в заголовок так и выведется "%myvar%".
Похоже что это поведение так и задумано. Для отладки возможно это и удобно.
Но как его предполагалось пользоваться?
На мой взгляд, нелогично, что в зависимости от значения переменной выводится то её значение, то её название.
Похоже что это поведение так и задумано. Для отладки возможно это и удобно.
Но как его предполагалось пользоваться?
На мой взгляд, нелогично, что в зависимости от значения переменной выводится то её значение, то её название.
Как установить формат приглашения командной строки из макроса?
На всякий случай укажу ещё один способ.
- Скачиваем и ставим sqlite3.dll.
- Скачиваем и ставим модуль ljsqlite3.
- Простейший пример использования.
Как установить формат приглашения командной строки из макроса?
IgorZ, этот ещё один способ вроде несколько про другое.
Вопрос был про изменение приглашения текущей сессии (не глобальное). Правка базы sqlite тут, насколько я понимаю, не поможет.
Вариант с использованием системной переменной меня устроил бы на 100%, если бы не описанное выше странное отображение пустых значений.
Вопрос был про изменение приглашения текущей сессии (не глобальное). Правка базы sqlite тут, насколько я понимаю, не поможет.
Вариант с использованием системной переменной меня устроил бы на 100%, если бы не описанное выше странное отображение пустых значений.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как установить формат приглашения командной строки из макроса?
Покуда "фича" со вставкой имени переменной окружения существует, вы можете использовать компромиссный вариант, например:
1. Все ваши приглашения должны иметь в конце символ
2. Все варианты данной переменной окружения должны иметь в конце
3. Для того варианта, когда переменная у вас сейчас пустая, она будет содержать только
Это только пример-иллюстрация, его можно модифицировать с учётом ваших требований (которые мне в полном объёме не известны).
1. Все ваши приглашения должны иметь в конце символ
>
(обозначаемый как $g
.2. Все варианты данной переменной окружения должны иметь в конце
$g
.3. Для того варианта, когда переменная у вас сейчас пустая, она будет содержать только
$g
.Это только пример-иллюстрация, его можно модифицировать с учётом ваших требований (которые мне в полном объёме не известны).
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Как установить формат приглашения командной строки из макроса?
Чем оно странное?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx wrote:If the name is not found, the %variableName% portion is left unexpanded.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как установить формат приглашения командной строки из макроса?
DrKnS, "not found" это не то же самое, что переменная окружения, значение которой равно пустой строке.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Как установить формат приглашения командной строки из макроса?
Shmuel, спасибо, я как бы в курсе.
На всякий случай:
На всякий случай:
set foo=bar
- присвоить переменной foo значение barset foo=
- удалить переменную foolua:win.SetEnv("foo", "")
- присвоить переменной foo пустое значение.Как установить формат приглашения командной строки из макроса?
Странность на мой взгляд в том, что строка
%foo%
будет подставлена не только в первом но и во втором случае.Наверное это поведение логично и как-то объяснимо, но ни в одном из известных мне языков при обращении к переменной мы не получаем ее имя в качестве её значения при условии если её значение равно пустой строке.
Я не могу представить себе реальной пользы от такого поведения (кроме как для отладки).
Last edited by fps on Fri 20 Jul, 2018 11:09, edited 3 times in total.