Лучшая терминальная среда для Cygwin / Windows? - PullRequest
52 голосов
/ 31 марта 2009

Сегодня я запускаю Cygwin с rxvt, используя следующую строку запуска:

rxvt -bg black -sl 8192 -fg white -sr -g 150x56 -fn "Fixedsys" -e /usr/bin/bash --login -i

Это дает мне изменяемое в размерах собственное окно Windows, которое намного лучше, чем стандартное «окно DOS», которое по умолчанию обеспечивает cygwin.bat.

Однако текущая конфигурация имеет несколько проблем:

  1. Я не могу ввести символы не ASCII в окне терминала (т. Е. Æ, ø, å и Æ, Ø, Å, которые я использую не часто. На самом деле, терминал даже не примет их, когда я вставьте их в окно. Если я вставлю строку типа "bølle" (по-норвежски "bulley"), все, что я получу, это "blle".
  2. Я не могу отобразить символ UTF-8, они отображаются только как?, Даже если они поддерживаются шрифтом (т. Е. При отображении тех же символов в ISO-8859-1 они отображаются нормально.) *

Я использую английскую Windows Vista с языковым стандартом и раскладкой клавиатуры на норвежском языке (набор символов ISO-8859-1?), Но у меня точно такая же проблема в Windows 2000 и XP.

Кто-нибудь знает, как это исправить (т. Е. Лучше настроить rxvt)?

Помимо упомянутых выше проблем, я очень доволен rxvt, поэтому, если я найду способ их решить, я бы хотел продолжить его использование. Однако, если проблемы не (легко) решаемы, есть ли другие хорошие терминальные решения для Cygwin?

Обновление

Решение, предоставленное Энди и Маттиасом (редактирование файла .inputrc), действительно решило проблему ввода, но визуализация вывода все еще остается проблемой. Вывод в порядке, когда я рендеринга в ISO-8859-1, но при использовании UTF-8 я получаю только? для не-ASCII символов. Это поведение согласуется между rxvt, urxvt (в Cygwin XFree X Server), mintty и PuttyCyg.

Существует ли аналогичный файл конфигурации, в котором можно установить выходную кодировку (т. Е. Эквивалент установки языкового стандарта вывода в системе Linux)?

Ответы [ 21 ]

1 голос
/ 12 мая 2017

Пожалуйста, попробуйте ConEmu, эмулятор консоли с открытым исходным кодом с вкладками, который представляет несколько консолей и простых приложений с графическим интерфейсом в одном настраиваемом окне с графическим интерфейсом.

https://conemu.github.io/

1 голос
/ 21 января 2010

Если вы используете ls с определенным аргументом, он показывает имена файлов, OK Я предлагаю вам поместить псевдоним ls в / etc / profile:

alias ls='ls -F --color=auto --show-control-chars'

У меня работает в msys на WinXP.

1 голос
/ 28 июня 2013

rxvt не поддерживает юникод, поэтому вы не можете заставить его работать правильно, если вы входите в систему на машинах, которые используют UTF-8 для кодирования. Вы можете использовать rxvt для iso-8859-1 / 15, но большинство машин сейчас имеют UTF-8.

Unicode заменяет rxvt в Cygwin на urxvt, имя пакета под Cygwin - на rxvt-unicode-X. У urxvt также есть и другие полезные функции, такие как множество загружаемых плагинов, в том числе один, который дает вам несколько вкладок на окно, и архитектура клиент / сервер, которая позволяет использовать его намного меньше ресурсов, если у вас много окон (urxvtc / urxvtd ).

Возможно, вам также понадобится убедиться, что переменные readline указывают, что ваша оболочка должна проходить через 8-битные символы, т.е. добавьте это к вашим $HOME/.bashrc или $HOME/.profile:

set convert-meta off
set output-meta on
set input-meta on

Вам нужно будет установить правильные ресурсы в $HOME/.Xdefaults: в частности, вам понадобится шрифт, содержащий символы, которые вы хотите. Имя группы ресурсов для urxvt: URxvt. Обратите внимание на заглавные буквы, это важно!

URxvt.font: xft:Lucida Console:size=8:style=normal:weight=50:antialias=true:hinting=true:minspace=true
URxvt.boldFont: xft:Lucida Console:size=8:style=bold:weight=100:antialias=true:hinting=true:minspace=true

Я также рекомендую установить:

URxvt*termName: xterm

Этот ресурс определяет значение переменной окружения $TERM. Если он не установлен правильно, правильный файл termcap не может быть найден, в результате чего такие программы, как less, отправляют предупреждения в стиле: WARNING: terminal is not fully functional. К сожалению, термин по умолчанию rxvt-unicode не известен во многих дистрибутивах Linux, поэтому, если вы часто используете ssh для удаленных компьютеров, вы столкнетесь с проблемой. Решение состоит в том, чтобы либо установить termName на что-то более распространенное (например, xterm), либо загрузить файл termcap для rxvt-unicode на все серверы, на которых вы входите.

1 голос
/ 01 апреля 2016

Поскольку название каким-то образом вводит в заблуждение и результаты поиска приводили меня сюда много раз, я просто отвечу, прочитав название.

Мне нравится использовать Бабун в Windows в качестве среды Cygwin, для меня это почти идеально.

1 голос
/ 04 октября 2011

По теме альтернативных эмуляторов терминала для cygwin - посмотрите Console2 ; в нем есть все функции, которые вам понадобятся.

1 голос
/ 08 ноября 2010

Я бы настроил вашу страну в Windows (Панель управления -> Региональные настройки -> Последняя вкладка (элемент управления) -> Язык для языков, не совместимых с юникодом -> Ваш выбор (норвежский)). После перезагрузки запустите Start-> Cyqwin-> rxvt-native. Для русского это работает (без редактирования .bashrc или чего-то еще).

Он даже (как я предполагаю) преобразует выходные данные софта в utf-8, потому что кодировка по умолчанию - C.UTF-8. Чтобы проверить это, наберите "echo $ LANG".

0 голосов
/ 05 декабря 2013

Я использовал несколько терминалов, таких как putty, console, rxvt, mintty, teraterm. лучший тератерм. он бесплатный, полностью совместим с lang и tty, полностью настраивается с помощью макросов, ярлыков и предоставляет Cygterm для Cygwin.

однако, если вы используете пользователя, просто используйте mintty, который является термином по умолчанию сегодня, или rxvt.

0 голосов
/ 31 марта 2009

Если вы довольны только запущенными приложениями Cygwin, тогда rxvt должен работать нормально. Rxvt должен иметь поддержку UTF-8. Вы пробовали поискать решение для поиска?

Если вам также нужно запускать собственные приложения Windows, вам не повезет, если вы не запустите bash внутри консоли Windows. Есть две проблемы, которые я не считаю (или даже могут быть) решены:

  • Ctrl-C не работает должным образом. Если вы запускаете собственное приложение Windows изнутри rxvt (или xterm), нажатие Ctrl-C вернет вам приглашение, но оно не прерывает программу, часто оставляя ее для работы в фоновом режиме.
  • Буферизация вывода терминала не работает. Вывод данных из собственных приложений Windows отображается не во время печати, а при заполнении какого-либо внутреннего буфера.

Эти две проблемы одинаковы для всех эмуляторов терминала, которые я пробовал (rxvt, xterm, Emacs и некоторые другие).

0 голосов
/ 23 декабря 2012

да, mintty кажется более удобным, легким и быстрым, но есть одна функция, которой у него нет, и консоль по умолчанию (windows), это функция поиска: с консоли по умолчанию вы можете искать отображаемую строку на консоли весело?

До сих пор я не нашел ни одной другой консоли с такой функцией ... если вы знаете, скажите, мне действительно не нравится консоль по умолчанию.

0 голосов
/ 31 марта 2009

Помимо полного изменения размера, какие функции предоставляет вам rxvt, а не окно консоли Windows? А вы смотрели на разницу в использовании памяти - rxvt - боров. Я использую rxvt в течение пары недель и переключился обратно в окно консоли Windows, без сожалений.

...