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

Хотите говорить о Far и не знаете, куда обратиться?
DiRTy_GaRRy
Posts: 699
Joined: Tue 05 Apr, 2005 09:26
Been thanked: 2 times
Contact:

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

Postby DiRTy_GaRRy » Mon 16 Apr, 2012 11:44

Latest post of the previous page:

SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...

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

P.S. Это я так, выступаю в качестве "адвоката дьявола". ;)
Ы?

AlexII
Posts: 260
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 58 times
Contact:

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

Postby AlexII » Sun 22 Apr, 2012 14:57

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

Code: Select all

prompt $P$_$M$_.


Но, насколько я понимаю, сие либо невозможно, либо пока невозможно (может быть и ошибаюсь). Во всяком случае, думаю, сейчас не до того.
Last edited by HaRT on Sun 22 Apr, 2012 20:38, edited 1 time in total.
Reason: Добавлена ссылка на исходную Тему

User avatar
cmd.exe
Posts: 313
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

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

Postby cmd.exe » Sun 22 Apr, 2012 18:19

Было несколько лет назад... Хотелось выводить побольше информации на экран, и лучше всего в командную строку...
Можете на макросах попробовать... //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: Кастомная строка приглашения

Postby xeno.by » Tue 08 May, 2012 11:08

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: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 29 Nov, 2012 14:58

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

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

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

И заодно одно предложение/идея: не сделать ли так, как это, по-моему, сделано в PowerShell и bash, т.е. чтобы prompt был результатом какой-то функции (со стандартным именем). Тогда с помощью Lua можно было бы этот prompt сделать таким, каким хочется.

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Fri 30 Nov, 2012 21:17

Попробовал разобраться в коде Фара. В cmdline.cpp prompt обрезается до половины ширины экрана. Посмотрел plugapi.hpp, но ничего похожего на что-то для управления prompt не нашел. Неужели даже с помощью плагина это невозможно сделать? Мне что-то не верится, видя, какие чудеса народ творит с помощью плагинов.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Postby NightRoman » Fri 30 Nov, 2012 21:56

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

Пожелание же - здравое. Упоминание существующих подходов в PowerShell (знаю) и bash (не знаю) не лишнее тоже. Как бы намекает. Фар ведь шелл в какой-то мере.

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Sat 01 Dec, 2012 18:55

Хотелка на Мантис: http://bugs.farmanager.com/view.php?id=2209

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 14 Feb, 2013 09:16

Вот еще одна хотелка по этому же поводу -- с менее гибким, но гораздо более простым в реализации (как мне кажется) решением: http://bugs.farmanager.com/view.php?id=2302

User avatar
Skirda
Posts: 3473
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Postby Skirda » Thu 14 Feb, 2013 12:05

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: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 14 Feb, 2013 13:45

Спасибо за первую часть (хотя я еще и не попробовал). По поводу макросов: я так понял, что они пока что не помогут (даже с помощью shmuel), т.к. в Фар пока еще просто нет соответствующего API / hook. Но задание максимальной ширины в процентах уже значительно облегчит мне жизнь.

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Thu 14 Feb, 2013 14:06

Чукча не читатель?
changelog

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 14 Feb, 2013 14:46

Это кто еще не читатель? Имелось в виду решение из http://bugs.farmanager.com/view.php?id=2209

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 14 Feb, 2013 14:49

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

User avatar
Skirda
Posts: 3473
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Postby Skirda » Thu 14 Feb, 2013 15:01

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

Это для того, чтобы совсем всех запутать?
Например, мы здесь: C:\Windows\System32\drivers\etc, при этом промптер нам кажет "System32>" для "$w{2}$g".
We are the Borg. You will be assimilated.
So Say We All!

User avatar
DrKnS
Posts: 4434
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 101 times
Contact:

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

Postby DrKnS » Thu 14 Feb, 2013 15:07

А зачем вам нужны произвольные куски?

fml2
Posts: 488
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Postby fml2 » Thu 14 Feb, 2013 15:08

DrKnS wrote:А зачем вам нужны произвольные куски?
Например, чтобы показать два последних сегмента. Бывает так, что имя последнего сегмента -- стандартное, и вся соль в имени предпоследнего.


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

Who is online

Users browsing this forum: No registered users and 2 guests