Может кто-то в курсе, как поставить уникод на входном потоке консоли в дот-нетовском консольном приложении?
С выходным всё нормально:
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("əˈjunɪkəʊdˈstɹɪŋ");
Но если написать
Console.InputEncoding = Encoding.UTF8;
string s = Console.ReadLine();
то при вводе строки хотя бы с одним не-ASCII-шным символом s присваевается null.
Хм... Я всегда стандартными каналами пользовался, и с ними вроде не было проблем. :donno:
:??? Или я с Жабой путаю?..
А ведь давным-давно я наступал на эти грабли. Эх, я уже не помню, но точно решаемо.
Цитата: myst от апреля 26, 2010, 18:57
Я всегда стандартными каналами пользовался, и с ними вроде не было проблем.
А это они и есть:
Цитата: MSDNConsole Class Represents the standard input, output, and error streams for console applications.
Или не они?
Цитата: myst от апреля 26, 2010, 19:10
А ведь давным-давно я наступал на эти грабли.
Может, у вас что-то сохранилось, где грабли обойдены?
(Вообще странно как-то: вывод работает, командная строка тоже, а ввод — не хочет)
Цитата: Тайльнемер от апреля 26, 2010, 20:03
Или не они?
Я, просто, основательно библиотеку Шарпа. :)
Цитата: Тайльнемер от апреля 26, 2010, 20:03
Может, у вас что-то сохранилось, где грабли обойдены?
Сейчас поищу...
Кстати, а зачем UTF-8 в консоли?
По логике вещей надо выставлять кодировку консоли.
Например, у меня в консоли 1251, и работает код:
Console.InputEncoding = Encoding.GetEncoding(1251);
string s = Console.ReadLine();
Console.WriteLine(s);
Если читать из файла с кодировкой UTF-8, должно быть всё нормально.
echo яблоко | iconv -f cp1251 -t utf-8 | ./test
нормально работает с
Console.InputEncoding = Encoding.UTF8;
Цитата: myst от апреля 26, 2010, 20:09
По логике вещей надо выставлять кодировку консоли.
Например, у меня в консоли 1251
Таки да, пишет, что Console.InputEncoding.WindowsCodePage = 1251. Но это очень странно, ведь я могу, например, написать:
static void Main(string[] args)
{
Console.OutputEncoding=Encoding.UTF8;
if(args.Length>0) Console.WriteLine(args[0]);
}
обозвать это "ʊñɪçωð.exe", написать в консоли
ʊñɪçωð ѵњѝќѡԃ
и получу строку
ѵњѝќѡԃ
А как такое возможно, если кодировка консоли — 1251?
А там же не консоль, а параметр командной строки. Он разве не особенно обрабатывается? Правда, никогда не знал что допускаются юникодные параметры командной строки... :???
Цитата: Тайльнемер от апреля 26, 2010, 20:32
А как такое возможно, если кодировка консоли — 1251?
:donno: Могу лишь сказать, что в XP консоль китайскую грамоту точно не понимает. :)
Цитата: arseniiv от апреля 27, 2010, 13:56
А там же не консоль, а параметр командной строки.
Чо-чо?
Цитата: arseniiv от апреля 27, 2010, 13:56
Он разве не особенно обрабатывается?
Чо?
Цитата: arseniiv от апреля 27, 2010, 13:56
Правда, никогда не знал что допускаются юникодные параметры командной строки... :???
Утро доброе, Windows NT уникод искаропки умеет с незапамятных времён.
Я имел ввиду, что параметры командной строки передаются в программу иначе, чем ввод какой-нибудь после запуска
Цитата: Тайльнемер от апреля 26, 2010, 20:32
А как такое возможно, если кодировка консоли — 1251?
На самом деле в консоли используется другая кодировка кириллицы — cp866 (http://en.wikipedia.org/wiki/CP866). Впрочем, тоже восьмиразрядная.
Непосредственно в консоли, думаю, не получится (хотя линукс, вроде бы, позволяет нечто подобное). Но если создать .bat в формате utf-8 и в нем использовать юникодовские символы в командах, а вывод перенаправить в файл, то, по идее, этот файл будет содержать текст в кодировке utf-8.
Цитата: arseniiv от апреля 27, 2010, 17:42
Я имел ввиду, что параметры командной строки передаются в программу иначе, чем ввод какой-нибудь после запуска
Капитан Очевидность в ярости, но я всё равно не понял смысл этого:
Цитата: arseniiv от апреля 27, 2010, 13:56
А там же не консоль, а параметр командной строки.
Слово
консоль здесь что означает?
Цитата: Python от апреля 27, 2010, 17:54
На самом деле в консоли используется другая кодировка кириллицы — cp866.
На самом деле это настраивается. У меня 1251, например.
Цитата: Python от апреля 27, 2010, 17:54
Но если создать .bat в формате utf-8 и в нем использовать юникодовские символы в командах, а вывод перенаправить в файл, то, по идее, этот файл будет содержать текст в кодировке utf-8.
Windows'овский интерпретатор команд умеет UTF-8? :o
Есть код:
ЦитироватьConsole.InputEncoding = Encoding.UTF8;
string s = Console.ReadLine();
Console.WriteLine(s ?? "null");
.NET 3.5/Windows XP:
Цитироватьжопа
null
Mono/Ubuntu 10.04:
Цитироватьжопа
жопа
Mono/Windows XP
Цитироватьжопа
null
Кактус!
Цитата: myst от апреля 27, 2010, 18:01
Windows'овский интерпретатор команд умеет UTF-8?
В именах файлов точно не умеет. Но с утф8 в потоках ввода-вывода, вроде бы, работает.
А почему нельзя задать родную для винды utf16?
Цитата: Python от апреля 27, 2010, 18:07
Но с утф8 в потоках ввода-вывода, вроде бы, работает.
Команды обработки текста не latin-1 понимают? Если нет, значит не поддерживает.
Цитата: Алексей Гринь от апреля 27, 2010, 18:16
А почему нельзя задать родную для винды utf16?
В консоли? :o
Цитата: myst от апреля 27, 2010, 18:18
ЦитироватьА почему нельзя задать родную для винды utf16?
В консоли? :o
Хм. Utf8 не пугает, а utf16 пугает? А в чём разница? Неужели они не сделали никаких костылей в ЭМУЛЯТОРЕ консоли для поддержки родного utf16, который внутри кишок винды сидит (даже ascii-функции все к нему же переводятся!) Странно...
Цитата: Алексей Гринь от апреля 27, 2010, 18:21
Цитата: myst от апреля 27, 2010, 18:18
ЦитироватьА почему нельзя задать родную для винды utf16?
В консоли? :o
Хм. Utf8 не пугает, а utf16 пугает? А в чём разница?
single-byte vs. double-byte. :)
Цитата: myst от апреля 27, 2010, 18:22
single-byte vs. double-byte. :)
И это существенно для эмулятора? :)
Цитата: Алексей Гринь от апреля 27, 2010, 18:23
Цитата: myst от апреля 27, 2010, 18:22
single-byte vs. double-byte. :)
И это существенно для эмулятора? :)
Нуль-терминаторы же через байт. ;)
Цитата: Алексей Гринь от апреля 27, 2010, 18:21
Цитата: myst от апреля 27, 2010, 18:18
ЦитироватьА почему нельзя задать родную для винды utf16?
В консоли? :o
Хм. Utf8 не пугает, а utf16 пугает? А в чём разница? Неужели они не сделали никаких костылей в ЭМУЛЯТОРЕ консоли для поддержки родного utf16, который внутри кишок винды сидит (даже ascii-функции все к нему же переводятся!) Странно...
Зачем вообще utf16? Она ж зря место расходует, а результат тот же. В чем может быть преимущество?
Цитата: RawonaM от апреля 27, 2010, 18:27
Зачем вообще utf16? Она ж зря место расходует, а результат тот же. В чем может быть преимущество?
Какая разница для потока? Мы же с консоли читаем.
А преимущество разве что в более быстрых и простых преобразованиях на строках.
Да и в контексте сишарпа String'и всё равно в utf16 хранятся.
«Зря место расходует» — это было актуально 20 лет назад :)
И мы говорим о C#'а, а тут GC и «зря оперативную память расходует» :)
На совр. компьютерах особой разницы между utf'ами нету. Дело вкуса чисто.
Цитата: Алексей Гринь от апреля 27, 2010, 18:26
Цитата: myst от апреля 27, 2010, 18:25
Нуль-терминаторы же через байт. ;)
И?
Что и? Ты ему скармливаешь строку в UTF-16, а он считывает только первый байт и успокаивается.
Цитата: myst от апреля 27, 2010, 18:45
Что и? Ты ему скармливаешь строку в UTF-16, а он считывает только первый байт и успокаивается.
А можно было спроектировать не per ano. Если у эмулятора консоли можно изменить кодировку — то почему нельзя сделать так, чтобы при смене на utf16 он кушал по два байта?
Цитата: Алексей Гринь от апреля 27, 2010, 18:16
А почему нельзя задать родную для винды utf16?
Цитата: Алексей Гринь от апреля 27, 2010, 18:21
Неужели они не сделали никаких костылей в ЭМУЛЯТОРЕ консоли для поддержки родного utf16, который внутри кишок винды сидит (даже ascii-функции все к нему же переводятся!) Странно...
По-моему, они вообще не развивали консоль дальше возможностей, присутствующих в «железном» текстовом режимие.
Хотя да, в потоках ввода-вывода можно использовать любую кодировку — хоть и utf-32 (big endian, low endian). А вот в самом сценарии работает лишь то, что можно смешивать с ASCII - национальные восьмибитки, utf-8.
Например,
echo aı lʌv ju:nıkoʊd >>output.txt
в кодировке utf-16 превратится в чередованиe латинских букв с нулевыми байтами, а utf-8 не будет для данной команды ничем принципиально отличаться от ansi.
Цитата: Алексей Гринь от апреля 27, 2010, 18:47
Цитата: myst от апреля 27, 2010, 18:45
Что и? Ты ему скармливаешь строку в UTF-16, а он считывает только первый байт и успокаивается.
А можно было спроектировать не per ano. Если у эмулятора консоли можно изменить кодировку — то почему нельзя сделать так, чтобы при смене на utf16 он кушал по два байта?
Это ты у меня спрашиваешь? :o Наверное, потому что тяжёлое детство,
деревянные иг C.
Чтобы оставить совместимость и в то же время ввести новую фичу — есть кучи способов. В Microsoft забили на консоли просто. Поэтому ставьте мону под Линукс, и там ваши поделия на C# заведутся без проблем ;)
Цитата: Python от апреля 27, 2010, 18:55
в кодировке utf-16 превратится в чередованиe латинских букв с нулевыми байтами, а utf-8 не будет для данной команды ничем принципиально отличаться от ansi.
А BOM на что?
Цитата: Python от апреля 27, 2010, 18:55
Хотя да, в потоках ввода-вывода можно использовать любую кодировку — хоть и utf-32 (big endian, low endian).
Каналы в ввода-вывода вообще не имеют кодировки. Это просто последовательность байтов. Как их интерпретировать — дело программы.
Цитата: Алексей Гринь от апреля 27, 2010, 19:01
В Microsoft забили на консоли просто.
Я скачал их эту, которая power. Она должна уметь уникод.
Цитата: Алексей Гринь от апреля 27, 2010, 19:01
А BOM на что?
В utf-8 — по всей видимости, лишь для того, чтобы мешать. Начальная строка сценария, содержащая этот самый BOM, воспринимается как ошибочная, хотя можно либо убрать его вручную в более-менее примитивном редакторе, либо пропустить первую строку.
В утф-16, по всей видимости, то же самое, с той разницей, что он полностью несовместим с аѕсіі со всеми вытекающими последствиями.
Вы знаете, что в настоящей кошерной консоли можно хоть картинки показывать?
Цитата: Python от апреля 27, 2010, 19:13
Цитата: Алексей Гринь от апреля 27, 2010, 19:01
А BOM на что?
В utf-8 — по всей видимости, лишь для того, чтобы мешать. Начальная строка сценария, содержащая этот самый BOM, воспринимается как ошибочная, хотя можно либо убрать его вручную в более-менее примитивном редакторе, либо пропустить первую строку.
В UTF-8 не может быть BOM. В UTF-8 та ваша последовательность символов не маркирует порядок байтов, следовательно, это не BOM, а велосипед.
В utf8 он не нужен, да, ибо там порядок байт фикисиррованный (хотя позволяет чётко идентифицировать поток как utf8), но cmd.exe-таки и мог бы распознавать utf16-BOM в .bat'ах, чтобы верно перенастраиваться и не читать "как ansi" и не встречать "внезапных" null'ей. Я про это.
Цитата: Python от апреля 27, 2010, 18:55
Хотя да, в потоках ввода-вывода можно использовать любую кодировку — хоть и utf-32 (big endian, low endian). А вот в самом сценарии работает лишь то, что можно смешивать с ASCII - национальные восьмибитки, utf-8.
Например,
Код: [Выделить]echo aı lʌv ju:nıkoʊd >>output.txtв кодировке utf-16 превратится в чередованиe латинских букв с нулевыми байтами, а utf-8 не будет для данной команды ничем принципиально отличаться от ansi.
Да и в принципе определять utf16 можно и без бома, просто посмотреть частнотность нулей через раз. Короче опять не "проблема" со всем. cmd.exe это не command.com, он делался уже когда прикрутили уникод и прочий кошер.
Цитата: RawonaM от апреля 27, 2010, 19:16
Вы знаете, что в настоящей кошерной консоли можно хоть картинки показывать?
Если речь идет не о псевдографике, то тоже хочу себе такую)
Я смотрел видео в псевдографике :)
Цитата: Python от апреля 27, 2010, 19:18
Цитата: RawonaM от апреля 27, 2010, 19:16
Вы знаете, что в настоящей кошерной консоли можно хоть картинки показывать?
Если речь идет не о псевдографике, то тоже хочу себе такую)
Так в эмуляторе терминала в иксах есть, берите.
Вот например "текстовый" браузер:
(wiki/en) W3m (http://en.wikipedia.org/wiki/W3m)
Цитата: Алексей Гринь от апреля 27, 2010, 19:21
Я смотрел видео в псевдографике :)
:D Где можно посмотреть?
Хочу "Аватар" в псевдографике. :yes:
Цитата: RawonaM от апреля 27, 2010, 19:28
Где можно посмотреть?
Хочу "Аватар" в псевдографике. :yes:
Блин, уже точно не помню, в общем специальный плагин к какому-то проигрывателю... Было мегавырвиглазно (почему-то разрешение я не мог настроить), что-либо различить можно было если отойти от монитора и старательно вглядываться :)
Википедия:
ЦитироватьВ мультимедийном проигрывателе MPlayer существует поддержка aalib, позволяющая выводить видео в режиме ASCII. В оболочке для мультимедийного проигрывателя XINE, xine-ui также присутствует возможность смотреть видео в ASCII (для этого видео запускается через отдельную команду aaxine).
Вроде бы это.
Цитата: RawonaM от апреля 27, 2010, 19:16
Вы знаете, что в настоящей кошерной консоли можно хоть картинки показывать?
Ещё бы она существовала. Я видел, что там Линуксах, они тоже забили на консоль.
Цитата: myst от апреля 27, 2010, 20:29
Цитата: RawonaM от апреля 27, 2010, 19:16
Вы знаете, что в настоящей кошерной консоли можно хоть картинки показывать?
Ещё бы она существовала. Я видел, что там Линуксах, они тоже забили на консоль.
w3m же работает с графикой. Какие траблемы?
Видео в реальном текстовом режиме:
(этот смотреть в середине)
Идея ясна, но я уверен, что есть более красивые примеры.
Цитата: RawonaM от апреля 27, 2010, 22:57
Идея ясна, но я уверен, что есть более красивые примеры.
Зачем это нужно?
Какой смысл показывать картинки или видео в консоли? Я не вижу в этом ничего «кошерного», вижу только выпендрёж.
Вот это извращение, вот это я понимаю. ;up:
Расскажите этим товарищам про фреймбуферную консоль.
Цитата: myst от апреля 28, 2010, 07:47;up:
:down:
Кстати, использование консоли для реализации графического интерфейса (например, FAR) — не меньшее извращение.
Цитата: Тайльнемер от апреля 28, 2010, 03:20
Цитата: RawonaM от апреля 27, 2010, 22:57
Идея ясна, но я уверен, что есть более красивые примеры.
Зачем это нужно?
Какой смысл показывать картинки или видео в консоли? Я не вижу в этом ничего «кошерного», вижу только выпендрёж.
Это две несвязанные темы. Есть консоль, поддерживающая настоящую графику (я дал ссылку на скриншот).
А графика в ASCII коде действительно извращение, но она может где-то пригодиться, думаю.
Цитата: Тайльнемер от апреля 28, 2010, 10:30
Цитата: myst от апреля 28, 2010, 07:47;up:
:down:
Кстати, использование консоли для реализации графического интерфейса (например, FAR) — не меньшее извращение.
Ага, Norton Commander - извращение...) Эх, молодежь...
Кстати есть хороший клон Norton Commander-а для Линукс: Midnight Commander, может кто не знал. Иногда удобно.
Зачем?
Цитата: RawonaM от апреля 28, 2010, 10:46
Есть консоль, поддерживающая настоящую графику
По-моему, консоль здесь — лишняя субстанция.
Цитата: RawonaM от апреля 28, 2010, 10:46
Ага, Norton Commander - извращение...) Эх, молодежь...
Когда ничего, кроме консоли нет, то NC — это костыль, а иначе — да, извращение.
Цитата: Тайльнемер от апреля 28, 2010, 10:50
Зачем?
Цитата: RawonaM от апреля 28, 2010, 10:46
Есть консоль, поддерживающая настоящую графику
По-моему, консоль здесь — лишняя субстанция.
Скорость работы, расход памяти и т.п. Бывает нужно зайти на какой-то сайт с консоли, до этого я пользовался lynx-ом, а этим намного приятнее. Иногда бывает нужно увидеть какую-то картинку или перейти по нужной картинке, чтобы что-то скачать. Для этого грузить тяжелый браузер? Ничего лишнего.
Цитата: Тайльнемер от апреля 28, 2010, 10:30
Кстати, использование консоли для реализации графического интерфейса (например, FAR) — не меньшее извращение.
Вообще да, извращение. Но пользуемся:
1) Большинство графических файл-браузеров не имеют встроенной консоли. Делать cd и многие другие операции удобнее через интерфейс, но для некоторых действий необходима конслоль, в которой можно задать параметры команды и увидеть результат вывода.
2) Большинство графических файл-браузеров ориентированы на работу преимущественно с мышью — NC-подобные оболочки шире используют клавиатурные команды. Скорость возрастает.
3) В случае загрузки системы без графической оболочки, удобнее иметь хоть какой-то визуальный интерфейс, чем вообще ничего.
Цитата: Python от апреля 29, 2010, 20:03
1) Большинство графических файл-браузеров не имеют встроенной консоли. Делать cd и многие другие операции удобнее через интерфейс, но для некоторых действий необходима конслоль, в которой можно задать параметры команды и увидеть результат вывода.
Я прикрутил шелл на Ctrl-B у Тотала для этого.
Вообще, в мышино-ориентированных GUI двухпанельность — тоже в какой-то степени извращение. Основные межпанельные действия проще делать перетягиванием из одного окна в другое, и окон может быть больше двух (либо в роли одного из окон выступает декстоп). Мне лично больше всего нравится такой подход, как в Dolphin: графический файл-браузер с одной панелью файлов и возможностью включить консоль для более продвинутых действий. Жаль, чего-то похожего для Windows пока не видел.
К сожалению, у виндовой консоли есть один страшный недостаток: команды из стандартного набора не работают с utf-8 в именах файлов, хотя юникодовские имена разрены.
Цитата: Python от апреля 29, 2010, 20:32
Основные межпанельные действия проще делать перетягиванием из одного окна в другое
При перекрываемых окнах — нифига не проще.
Цитата: Python от апреля 29, 2010, 20:03
2) Большинство графических файл-браузеров ориентированы на работу преимущественно с мышью — NC-подобные оболочки шире используют клавиатурные команды. Скорость возрастает.
Цитата: Python от апреля 29, 2010, 20:32Основные межпанельные действия проще делать перетягиванием из одного окна в другое
Что-то вы сами себе противоречите.
Цитата: RawonaM от апреля 29, 2010, 22:45
Что-то вы сами себе противоречите.
Нет, идея в том, что есть два разных типа визуальных интерфейсов: двухпанельные, где все можно делать через клавиатуру, и многооконные, где основные действия выполняются без участия клавиатуры; каждый тип имеет свои преимущества и недостатки. Скорость работы с первыми достигается за счет использования достаточно большого количества клавишных комбинаций. Скорость вторых — за счет сведения к минимуму всех действий с клавиатурой. Переходы руки от мыши к клавиатуре и обратно замедляют работу, поэтому их желательно свести к минимуму. Но поскольку даже мышиный интерфейс требует работы с клавиатурой (например, при переименовании файлов), такой переход неизбежен — в этом отношении, двухпанельники удобнее. С другой стороны, когда работать приходится с тремя папками и более одновременно, удобнее, если количество окон не ограничивается двумя, но в этом случае копирование файлов одним нажатием клавиши становится невозможным.
Цитата: Алексей Гринь от апреля 29, 2010, 22:38
При перекрываемых окнах — нифига не проще.
В винде окна можно упорядочивать.
Цитата: Python от апреля 29, 2010, 20:03
2) Большинство графических файл-браузеров ориентированы на работу преимущественно с мышью — NC-подобные оболочки шире используют клавиатурные команды. Скорость возрастает.
Этот пункт никак не связан с типом интерфейса (консольный/графический)
Цитата: Python от апреля 30, 2010, 01:08С другой стороны, когда работать приходится с тремя папками и более одновременно, удобнее, если количество окон не ограничивается двумя, но в этом случае копирование файлов одним нажатием клавиши становится невозможным.
В Тотале есть вкладки с каждой стороны, так что хоть триста папок, все можно быстро с клавиатуры сделать.
Цитата: Алексей Гринь от апреля 29, 2010, 22:38
Цитата: Python от апреля 29, 2010, 20:32
Основные межпанельные действия проще делать перетягиванием из одного окна в другое
При перекрываемых окнах — нифига не проще.
Полное говно.
Цитата: Python от апреля 30, 2010, 01:10
Цитата: Алексей Гринь от апреля 29, 2010, 22:38
При перекрываемых окнах — нифига не проще.
В винде окна можно упорядочивать.
Пральна, угробим время на упорядочивание.
Цитата: Python от апреля 29, 2010, 20:37
юникодовские имена разрены
Это поддержка прямых слэшей теперь так называется? :o
На самом деле нужен двухрежимный файловый менеджер. Однопанельный — для любования картинками, двухпанельный — для копирования/перемещения. Естественно, оба режима должны настраиваться индивидуально.
Цитата: myst от апреля 30, 2010, 09:50
На самом деле нужен двухрежимный файловый менеджер
+hэкатОн. Было бы ещё круто переключение объединить с рабочими столами, т.е. режим настраивается на рабочий стол, внизу на панели как в Гноме — переключалка.
Цитата: myst от апреля 30, 2010, 09:47
Пральна, угробим время на упорядочивание.
Если это делается парой кликов, то почему бы и не угробить?
Цитата: myst от апреля 30, 2010, 09:50
Это поддержка прямых слэшей теперь так называется?
А это тут при чем? Я имел в виду, что юникодовские имена файлов разрешены в самой дисковой системе, т.е., мы можем создать через интерфейс Windows файл, содержащий практически любые юникодовские символы, но стандартные команды командной строки (copy, type, ren и под.) попросту не смогут с таким файлом работать.
Хотя нет, вру. Команды из стандартного набора все же могут работать с такими именами, если запустить их непосредственно через Пуск -> Выполнить..., введя инструкцию cmd /C требуемая команда. Правда, не очень представляю, как это впихнуть в .bat
Цитата: myst от апреля 30, 2010, 09:50
На самом деле нужен двухрежимный файловый менеджер. Однопанельный — для любования картинками, двухпанельный — для копирования/перемещения. Естественно, оба режима должны настраиваться индивидуально.
Я бы предпочел однопанельник/многооконник со встроенной консолью и расширенными возможностями клавиатуры, максимально приближенными к возможностям двухпанельников. Например, при вызове клавишной комбинации для копирования файлов должен появляться диалог, предлагающий скопировать файлы в одно из открытых окон по выбору пользователя.
Цитата: Python от апреля 30, 2010, 14:50
Например, при вызове клавишной комбинации для копирования файлов должен появляться диалог, предлагающий скопировать файлы в одно из открытых окон по выбору пользователя.
Ога, ну о-очень эффективное решение.
Цитата: Python от апреля 30, 2010, 14:40
А это тут при чем?
Ни при чём, я очитался.
Цитата: Python от апреля 30, 2010, 14:40
Цитата: myst от апреля 30, 2010, 09:47
Пральна, угробим время на упорядочивание.
Если это делается парой кликов, то почему бы и не угробить?
Пару кликов тут,
Пару кликов там,
Рабочий день закончился,
А воз и ныне там.
:smoke:
Цитата: myst от апреля 30, 2010, 15:26
Пару кликов тут,
Пару кликов там,
Рабочий день закончился,
А воз и ныне там.
Не играйте в сапер в рабочее время!
Цитата: myst от апреля 30, 2010, 15:22
Ога, ну о-очень эффективное решение.
Хорошо, какие у него недостатки?
Цитата: Python от апреля 30, 2010, 15:41
Не играйте в сапер в рабочее время!
Не, с Сапёром будут ночевать на работе. :yes:
Цитата: Python от апреля 30, 2010, 15:41
Хорошо, какие у него недостатки?
Тот самый диалог, очевидно же. Любой диалог — тормоза. Возможно, ковыряющей в носу секретутке эти тормоза некритичны... :eat:
Цитата: myst от апреля 30, 2010, 16:08
Любой диалог — тормоза.
Смотря какой диалог. Если это дерево каталогов, которое нужно прокручивать и прокликивать от самого корня до целевой папки, то это не просто тормоза, а мегатормоза. Ну а если в диалоге подтверждения копирования (который все равно появляется!) добавить пару дополнительных строчек для выбора одной из нескольких открытых целей, то особых тормозов я здесь не вижу.
Цитата: Python от апреля 30, 2010, 16:24
Ну а если в диалоге подтверждения копирования (который все равно появляется!) добавить пару дополнительных строчек для выбора одной из нескольких открытых целей, то особых тормозов я здесь не вижу.
Во-первых, диалог подтверждения не нужен, так как все, кто более-менее освоился в системе, соглашаются автоматом. Во-вторых, одно дело — машинально нажимать Enter, и совсем другое — делать сознательный выбор.
Если открытых окон только два, то копирование возможно лишь в одну цель — получится абсолютно то же самое, что и в случае с двухпанельником. Ну а если окон три и более, программа должна помнить последнюю цель копирования из текущего окна и по умолчанию предлагать ее. Таким образом, при множественных операциях можно точно так же машинально нажимать Enter.
Цитата: Python от апреля 30, 2010, 17:32
Таким образом, при множественных операциях можно точно так же машинально нажимать Enter.
Таким образом можно лишь острых ощущений на ровном месте отхватить. Машинальные и сознательные операции нельзя смешивать. Надеюсь, не надо объяснять почему.
Для разгребания каталога-помойки по N другим каталогам нормальным решением было бы назначение каждому приёмнику отдельного сочетания клавиш (например, F6+1,2,..., или по первым буквам названия каталога (я в курсе, что они могут совпадать), или по псевдониму).
Цитата: myst от апреля 30, 2010, 18:03
Для разгребания каталога-помойки по N другим каталогам нормальным решением было бы назначение каждому приёмнику отдельного сочетания клавиш (например, F6+1,2,..., или по первым буквам названия каталога (я в курсе, что они могут совпадать), или по псевдониму).
Вполне можно реализовать в рамках диалога подтверждения/выбора цели.
Или имеется в виду N отдельных клавиш для копирования, доступных постоянно?
Цитата: Python от апреля 30, 2010, 18:13
Вполне можно реализовать в рамках диалога подтверждения/выбора цели.
Вполне можно ходить на корточках, но зачем?
Процесс должен быть «Отправить туда-то», а не «Отправить. Куда? Туда».
Цитата: myst от апреля 30, 2010, 18:38
Процесс должен быть «Отправить туда-то», а не «Отправить. Куда? Туда».
ІМНО, дело вкуса. Выбор целевой папки во второй панели тоже создает определенную задержку.
Цитата: Python от апреля 30, 2010, 22:07
Цитата: myst от апреля 30, 2010, 18:38
Процесс должен быть «Отправить туда-то», а не «Отправить. Куда? Туда».
ІМНО, дело вкуса. Выбор целевой папки во второй панели тоже создает определенную задержку.
Вкладки решают. Если им присвоить номера, будет вообще шикарно. Надо Гислеру подсказать эту идею, если он ещё сам не догадался...
Все равно в половине случаев (например, при редактировании отдельного файла) вторая панель только загромождает пространство, тем самым уменьшая размер панели, в которой приходится работать .
Цитата: Python от мая 6, 2010, 15:43
Все равно в половине случаев (например, при редактировании отдельного файла) вторая панель только загромождает пространство, тем самым уменьшая размер панели, в которой приходится работать .
Кнопку нажал и убрал вторую панель.
Цитата: Python от мая 6, 2010, 15:43
Все равно в половине случаев (например, при редактировании отдельного файла) вторая панель только загромождает пространство, тем самым уменьшая размер панели, в которой приходится работать .
Вот поэтому и должно быть два режима.
ЦитироватьВот поэтому и должно быть два режима.
А в каком двухпанельном файловом менеджере не два режима?
А как в Total Commander'е их переключать?
Значит, долой тотал.
Цитата: Тайльнемер от мая 10, 2010, 03:08
Значит, долой тотал.
Да здравствует bash! :)