Кастомная строка приглашения (prompt)

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Кастомная строка приглашения

Post by SUSim »

Latest post of the previous page:

Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
SimSU ··· ·· -- ··· ··-
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Кастомная строка приглашения

Post by Skirda »

Если макросами, то это к вопросу о Mantis#466.
We are the Borg. You will be assimilated.
So Say We All!
DiRTy_GaRRy
Posts: 705
Joined: Tue 05 Apr, 2005 09:26
Been thanked: 3 times
Contact:

Re: Кастомная строка приглашения

Post by DiRTy_GaRRy »

SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
И каждый заход в в любую папку будет сопровождаться пробеганием макроса по всем папкам до рута. Что то мне это не нравится. Особенно на сетевых дисках. Плюс нужно смотреть что бы реализация просмотра содеожимого папки была "ленивой".

P.S. Это я так, выступаю в качестве "адвоката дьявола". ;)
Ы?
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

Re: Редактирование командной строки в редакторе

Post by AlexII »

Я имею в виду, что мне хотелось бы иметь возможность получить в Far Manager функциональность, аналогичную командному процессору в части использования «$_» в приглашении (PROMPT) командной строки, дабы была возможность разнести $P в одну строку, $M — во вторую, а курсор для ввода на третью, наподобие:

Code: Select all

prompt $P$_$M$_.

Но, насколько я понимаю, сие либо невозможно, либо пока невозможно (может быть и ошибаюсь). Во всяком случае, думаю, сейчас не до того.
Last edited by AlexII on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на исходную Тему
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Редактирование командной строки в редакторе

Post by cmd.exe »

Было несколько лет назад... Хотелось выводить побольше информации на экран, и лучше всего в командную строку...
Можете на макросах попробовать... //Crutches

Ща что-нить придумаю, и можно на мантис выложитоь дифф к cmdline.cpp...
Кстати кто знает почему не было реализовано?

23.04.2012 3:44
Как-то сложно получается, но сделать возможно...
cmdline.cpp and cmdline.hpp

Вернул каретку, пока не знаю, но почему-то всё выводится в одну строку, хотя должно быть не так...
Кстати где часть кода, отвечающая за подчистку пространства после командной строки? ведь там мусора не остаётся, нужно, что-бы она ещё обрабатывала Y1-strnewlinei

Осталось повычитать из проходящих параметров, те которые уже были выведены...
24.04.2012 11:59 am
diff.cmdline.cpp
diff.cmdline.hpp
Вопрос с возвратом каретки решаю, но пока оно не актуально... // заново всегда отображать всю консоль, а это очень не хорошо.
26.04.12 7:18 pm
Дочитал книжку до array'ев, понял, что это именно то, что и нужно...
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

Re: Кастомная строка приглашения

Post by xeno.by »

DiRTy_GaRRy wrote:
SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
И каждый заход в в любую папку будет сопровождаться пробеганием макроса по всем папкам до рута. Что то мне это не нравится. Особенно на сетевых дисках. Плюс нужно смотреть что бы реализация просмотра содеожимого папки была "ленивой".

P.S. Это я так, выступаю в качестве "адвоката дьявола". ;)
Вначале я думал, что можно легко запихнуть в GetPrompt вызов кастомной прожки, задаваемой в настройках, которая будет делать все, что надо. Модульность на высоте, все прозрачно - красота.

Иллюзия длилась пока я не попробовал реализовать. Написал мини-тул, который вызывает git branch в текущей директории - получились адовые тормоза. Каждый вызов занимает где-то полсекунды, в итоге молниеносность работы с фаром превращается в УГ. Вроде бы, проблема в деталях реализации гита на винде. С гитовым плагином для емакса была та же история.

В итоге забил и захардкодил получение бранча прямо в GetPrompt: https://github.com/xeno-by/dotwindows/b ... e.cpp#L627. Само собой, некрасиво, но на большее у меня сейчас нет времени. Зато очень быстро (понятное дело, на сетевых папках быстро не будет).

Решение ограниченное, но все же решил запостить - вдруг кому пригодится. Кодяра вроде работает, но последний раз на плюсах я писал лет восемь назад, поэтому не уверен.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Как укоротить строку prompt?

Post by fml2 »

Здравствуйте.

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

Вопрос: как можно укоротить тот кусок пути к текущему каталогу, который показывается в prompt?

И заодно одно предложение/идея: не сделать ли так, как это, по-моему, сделано в PowerShell и bash, т.е. чтобы prompt был результатом какой-то функции (со стандартным именем). Тогда с помощью Lua можно было бы этот prompt сделать таким, каким хочется.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Как укоротить строку prompt?

Post by fml2 »

Попробовал разобраться в коде Фара. В cmdline.cpp prompt обрезается до половины ширины экрана. Посмотрел plugapi.hpp, но ничего похожего на что-то для управления prompt не нашел. Неужели даже с помощью плагина это невозможно сделать? Мне что-то не верится, видя, какие чудеса народ творит с помощью плагинов.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как укоротить строку prompt?

Post by NightRoman »

Плагины творят чудеса в силу имеющегося API. Если что-то не покрыто API или макросами, то никаких чудес не будет.

Пожелание же - здравое. Упоминание существующих подходов в PowerShell (знаю) и bash (не знаю) не лишнее тоже. Как бы намекает. Фар ведь шелл в какой-то мере.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by fml2 »

Хотелка на Мантис: http://bugs.farmanager.com/view.php?id=2209
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by fml2 »

Вот еще одна хотелка по этому же поводу -- с менее гибким, но гораздо более простым в реализации (как мне кажется) решением: http://bugs.farmanager.com/view.php?id=2302
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by Skirda »

fml2 wrote:Вот еще одна хотелка по этому же поводу -- с менее гибким, но гораздо более простым в реализации (как мне кажется) решением: http://bugs.farmanager.com/view.php?id=2302
Частичное решение (первая часть) - в build 3190.
Вторая часть (макросы) - к shmuel
We are the Borg. You will be assimilated.
So Say We All!
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by fml2 »

Спасибо за первую часть (хотя я еще и не попробовал). По поводу макросов: я так понял, что они пока что не помогут (даже с помощью shmuel), т.к. в Фар пока еще просто нет соответствующего API / hook. Но задание максимальной ширины в процентах уже значительно облегчит мне жизнь.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Кастомная строка приглашения (prompt)

Post by John Doe »

Чукча не читатель?
changelog
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by fml2 »

Это кто еще не читатель? Имелось в виду решение из http://bugs.farmanager.com/view.php?id=2209
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Кастомная строка приглашения (prompt)

Post by fml2 »

По поводу build 3193: а почему бы не ввести символы, позволяющие вычленять отдельные куски из текущего каталога. Например, $W{n}. При этом: если n положительно, то берется n-й кусок с начала, а если отрицательно, то с конца. Введенный в 3193 символ эквивалентен $W{-1} в терминах этого предложения.
Post Reply

Return to “Обсуждение Far Manager”