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

Хотите говорить о Far и не знаете, куда обратиться?
xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

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

Post by xeno.by »

Возможно ли при помощи Far кастомизировать строку приглашения консоли? (например, показывать текущий бранч в гите)
Last edited by HaRT on Sun 22 Apr, 2012 20:33, edited 1 time 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:

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

Post by cmd.exe »

Code: Select all

Far Manager, version 3.0 (build 2605) x86
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2012 Far Group 
причём тут git branch я понять пока не могу, через cmd/bat можно запускать любые комманды...
Самый простой вариант:
Написать bat который запускает FAR.exe но при этом после запуска FAR пишет n строчек символов(у меня их чуть больше 80) для того, что-бы очистить консоль...
Самый средний вариант:
Написать програмульку использующюю вывод текста на консоль, тем самым сдвигая копирайты FAR за приделы окна, а дальше выводить что вам нравится...
Самый злостный вариант:
Обычными способами нельзя, но если сильно захотеть, и нарушить лицензию BSD, то возможно, поправив либо в исходниках, либо PE, но правильным редактором...
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
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

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

Post by AlexII »

Гм…

xeno.by, строка приглашения настраивается здесь: F9, \Параметры\Настройки командной строки:

Code: Select all

╔══════ Настройки командной строки ═══════╗
…
║ [x] Установить формат командной строки  ║
║     $p$g                                ║
╟─────────────────────────────────────────╢
Касательно «показывать текущий бранч в гите» — не могу сказать ничего вразумительного.
xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

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

Post by xeno.by »

cmd.exe wrote:причём тут git branch я понять пока не могу, через cmd/bat можно запускать любые комманды...
Сейчас у меня вот так:

Code: Select all

╟─────────────────────────────────
║Macros.scala
╚═══════════════ 886 580 bytes in 23 files ═
C:\Projects\Kepler>
Хочется, чтобы было вот так:

Code: Select all

╟─────────────────────────────────
║Macros.scala
╚═══════════════ 886 580 bytes in 23 files ═
C:\Projects\Kepler @ pullrequest/macros>
То есть чтобы в приглашении командной строки рядом с текущим путем отображался текущий бранч гита. Так можно в баше (http://stackoverflow.com/questions/4133 ... and-colors), но вроде бы нельзя сделать в cmd.exe. Отсюда вопрос: возможно ли это сделать средствами фара?
xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

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

Post by xeno.by »

Окей, вроде бы prompt в винде можно настроить так, чтобы он показывал значения переменных окружений: http://blog.paulgu.com/blogroll/customi ... ll-prompt/. Может ли это помочь в решении ребуса?
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

только если напишете плагин (?макрос), который, например, при смене каталога в фар будет дергать git для вытаскивания бранча и перекладывать результат в переменную окружения в фаровском процессе.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

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

Post by SUSim »

я не знаю что такое "git для вытаскивания бранча", но идея менять приглашение комстроки в зависимости от различных условий: плагинов, спецпапопок и т.п. мне понравилась :), с помощью макроса попробую... (если время будет :()
SimSU ··· ·· -- ··· ··-
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

имелось ввиду выполнить команду, например, 'git branch' и её результат (возможно отфильтрованный и форматированный) поместить в переменную окружения.
ps: может, есть возможность использования какого-нибудь git-api для этих целей - не знаю...
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

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

Post by cmd.exe »

В принципе реально и через cmd.exe например, использую фитчи ещё со времён DOS...
Example1 тут просто выведим на дисплей что у нас отработал наш крипт:

Code: Select all

@ECHOOFF
chcp 866
rem кодировку можешь выбрать сам, мне в данном случае была нужно 866
call ASM.EXE [тут могут быть любые параметры]>>ASM.LOG
rem А можно и так (не дописывая заменяем файлик новыми данными выходящими в ASM.LOG)
rem call ASM.EXE [тут могут быть любые параметры]>ASM.LOG
type "ASM.LOG"|more
del "ASM.LOG"
rem а можно не удалять, вдруг понадобится
Example2:
type "ASM.LOG"|more
Можно и даже нужно заменить на: FOR + DO command
дальше присваиваешь вынутое значение переменной через SET.
Фар поддерживает переменные из set
Например:
fromgit=%i
В настройках коммандной строки фара правим:
\p%fromgir%
Используйте FOR. См справку: for /?
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 »

2useven10 wrote:имелось ввиду выполнить команду, например, 'git branch' и её результат (возможно отфильтрованный и форматированный) поместить в переменную окружения.
ps: может, есть возможность использования какого-нибудь git-api для этих целей - не знаю...
git branch будет достаточно, но команду надо выполнять автоматически каждый раз когда показывается command prompt. пример:

Code: Select all

C:\Projects\Kepler @ master>git branch
* master
develop

C:\Projects\Kepler @ master>git checkout develop
Switched to branch 'develop'

C:\Projects\Kepler @ develop>cd C:\Projects\ScalaIDE

C:\Projects\ScalaIDE @ master>
Итак, по порядку. Вначале я нахожусь в бранче master и промпт показывает @master. Переключаюсь на develop, и промпт автоматически обновляется (за кулисами он вызывает git branch, и тот ему говорит, в каком бранче я нахожусь). Делаю cd в другой проект, который тоже находится под гитом - автоматически показывается текущий бранч этого проекта.
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

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

Post by AlexII »

xeno.by wrote:но команду надо выполнять автоматически каждый раз когда показывается command prompt.
Как сказал выше 2useven10 — каждый раз, когда меняется каталог. А этого — пока нет.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

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

Post by cmd.exe »

Из того, что я слышал или знаю о гит ничего умнее пока не придумал, выводит комманду git branch при условии, что папка содержит файлик *.git и был нажат Enter или NumEnter...
Выполнение команды отстает на 1-ну директорию, что в принципе не сильно мешает как Я понял, ведь вы наверное не часто по директориям скачите?
Вариант на NumEnter наверно больше подойдет...



Наилучшем решением может являться колонка C0, и настройка DizC0 под маску *.git
14.04.2012 9:48
Если редактировать по уму, то лучше заставить cmdline.cpp и cmdline.hpp принимать хоть какие-то значение из макросов вот тут...

Code: Select all

void CommandLine::GetPrompt(string &strDestStr)
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
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

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

Post by AlexII »

cmd.exe, этак нужно обрабатывать «Ctrl-\», «Ctrl-PgUp/PgDn» и ещё много чего. На мой взгляд, проще повесить команду в UserMenu.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

каждый раз, когда меняется каталог...
Это уже попытка оптимизации, после выполнения команды тоже надо, это может быть команда git - смена бранча. Перед показом промпта - это было бы правильно... В любом случае, как это сделать сейчас - я не знаю.
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

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

Post by AlexII »

2useven10 wrote:…после выполнения команды тоже надо,
С этим-то как раз проблем нет — посредством обработки в «HKCU(HKLM)\Software\Microsoft\Command Processor\AutoRun».

Хотя, помнится, что-то меняли в обработке исполнения.
Post Reply

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