Лучшая терминальная среда для Cygwin/Windows?
Сегодня я запускаю Cygwin с помощью rxvt
, используя следующую стартовую строку:
rxvt -bg black -sl 8192 -fg white -sr -g 150x56 -fn "Fixedsys" -e /usr/bin/bash --login -i
Это дает мне изменяемое по размеру собственное окно Windows, которое намного лучше стандартного "окна DOS" по умолчанию cygwin.bat
.
Однако в текущей конфигурации есть несколько проблем:
- Я не могу ввести символы, отличные от ASCII, в окно терминала (например, æ, ø, å и Æ, Ø, Å, которые я использую полу частыми. Фактически, терминал даже не примет их, когда я вставьте их в окно. Если я вставлю строку типа "bølle" (норвежский для "bulley" ), все, что я получаю, это "blle".
- Я не могу отображать символ 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)?
Ответы
Ответ 1
Добавьте следующие две строки в файл конфигурации readline ~/.inputrc
set convert-meta off
set output-meta on
Должен работать как в rxvt, так и в mintty. Подробнее здесь:
http://www.gnu.org/software/bash/manual/bashref.html#Readline-Init-File-Syntax
Ответ 2
minTTY тоже очень хорошо. Вы можете найти его в настройке cygwin. Поддержка повторной калибровки, вставки и прозрачности.
Ответ 3
В настоящее время я использую PuttyCyg (http://code.google.com/p/puttycyg/). Я не уверен, что он будет содержать исправления, необходимые вам, но у него есть несколько других интересных функций, например конфигурации, сохраненные в типичных профилях шпатлевки, которые можно вызвать, например: putty -load mycygwin1. Такой профиль может настраивать такие вещи, как:
- протоколирование сеансов в файл,
- последовательности символов для удаленных, домашних и других ключей,
- цвета и шрифты окна.
Изменить: можно ввести символы, упомянутые вами. Также поддерживается поддержка UTF-8 (ее необходимо включить в конфигурации).
Ответ 4
Я использую Console. Консоль позволяет настраивать шрифт, фон и т.д., А также имеет интерфейс с вкладками (отлично, если вы используете сразу несколько окон терминала).
Чтобы использовать символы, отличные от ASCII, я поместил следующее в мой .inputrc файл в мой домашний каталог:
set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
Ответ 5
Будучи четырьмя годами, на момент написания, мясо вопроса ушло: по умолчанию терминал Cygwin теперь принимает вставку и отображает не-Ascii персонажи без формальности, по крайней мере для меня. Терминал Cygwin по умолчанию теперь монетный, и Cygwin теперь работает с UTF-8 по умолчанию. (Например,/etc/profile.d/lang.sh теперь устанавливает кодировку набора символов UTF-8 по умолчанию.) В настоящее время существует 64-разрядная версия Cygwin, но за http://www.cygwin.com/ml/cygwin/2013-09/msg00029.html, без 64-битного порта rxvt.
Даже вопрос в заголовке менее важен, чем когда-то, поскольку mintty не решается, как старые окна подсистемы консоли Windows. Тем не менее, я подключу проект, который я поддерживаю: https://code.google.com/p/jessies/wiki/Terminator, который был написан для UTF-8, возможно, с первого дня, хотя его основная точка продажи, imo, является функцией поиска.
Ответ 6
Вам может потребоваться установить кодовую страницу.
Проверьте текущий:
$ set | grep CYGWIN
CYGWIN='codepage:oem nodosfilewarning'
Если у вас нет кодовой страницы, добавьте в файл ~/.bashrc:
CYGWIN='codepage:oem nodosfilewarning'
Содержимое моего файла Cygwin (Cygwin.bat), запускаемого ярлыком, выглядит следующим образом:
start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i
Обратите внимание, что для переменной среды CYGWIN вы можете иметь несколько элементов, каждая из которых разделена пробелом. Другие элементы, которые можно использовать: {tty binmode title}.
Более подробную информацию можно прочитать здесь:
http://www.cygwin.com/cygwin-ug-net/setup-env.html
Связанное примечание: вы также можете использовать mrxvt для Cygwin. Для этого требуется X-сервер, а хорошее твердое/легкое решение - использовать Xming. Я скомпилировал mrxvt и установил его - не очень сложно сделать, и он отлично работает.
Я использую rxvt в качестве начального окна, затем запускаю mrxvt как отдельный процесс из rxvt, используя команду alias, а затем закройте rxvt. Это делает mrxvt своим собственным родительским процессом и не имеет подключенных сеансов cmd.
Я сделал псевдоним, чтобы сделать это:
alias mrx='export DISPLAY="127.0.0.1:0.0"; $(/usr/local/bin/mrxvt &); echo -e "\033c"'
Для удобства я создал командный файл для запуска Xming и rxvt:
@echo off
start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i
start C:\Xming\Xming.exe :0 -clipboard -multiwindow -trayicon
exit
Этот командный файл запускается с помощью ярлыка Windows. Это хорошо сработало для меня.
Ответ 7
Я использовал Console, который очень хорошо работает с Cygwin (а также с PowerShell и простым старым cmd.exe).
Ответ 8
Когда я развивался в Windows, я нашел Poderosa, чтобы быть хорошим выбором для Cygwin.
Ответ 9
Стандартный Cygwin/X с xterm для меня достаточно хорош. Установите пакет Cygwin X.org, затем запустите script C:\cygwin\bin\startxwin.bat
(предполагая путь установки по умолчанию). Он запустит X, а затем xterm.
Я обновил мой .Xdefaults
с помощью этих опций для лучшего удобства использования:
*VT100*scrollbar.width: 14
*VT100*scrollbar.background: gray60
*VT100*scrollbar.foreground: rgb:a/5/5
*VT100*scrollbar.borderWidth: 0
*VT100*scrollbar.displayList:\
foreground gray90;\
lines 1,-1,-1,-1,-1,1;\
foreground gray60;\
lines -1,1,1,1,1,-1
*VT100*rightScrollBar: true
*VT100*scrollBar: true
*VT100*scrollLines: 1000
xterm*toolBar: false
Ответ 10
Если вы используете ls с определенным arg, он показывает имена файлов OK
Я предлагаю вам добавить псевдоним ls в /etc/profile:
alias ls='ls -F --color=auto --show-control-chars'
Работает для меня в msys на WinXP.
Ответ 11
Я бы установил вашу страну в windows (Панель управления → Региональные настройки → Последняя вкладка (контроль) → Язык для unicode-несовместимых языков → Ваш выбор (норвежский)). После перезагрузки запустите Start- > Cyqwin- > rxvt-native. Для русского он работает (без редактирования .bashrc или что-то еще).
Он даже (как я полагаю) преобразует вывод soft в utf-8, потому что кодировка по умолчанию - C.UTF-8. Чтобы проверить его, введите "echo $LANG".
Ответ 12
По теме альтернативных эмуляторов терминалов для cygwin - проверьте Console2; он имеет все функции, которые вам понадобятся.
Ответ 13
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
. Если он не установлен правильно, файл term termcap не может быть найден, в результате чего программы типа less
будут выдавать предупреждения в стиле: WARNING: terminal is not fully functional
. К сожалению, по умолчанию терминName rxvt-unicode
неизвестен во многих дистрибутивах Linux, поэтому, если вы часто используете ssh для удаленных компьютеров, вы столкнетесь с проблемой. Решение состоит в том, чтобы либо установить termName
на нечто более общее (например, xterm
), либо загрузить файл termcap для rxvt-unicode для всех серверов, в которые вы входите.
Ответ 14
Так как название каким-то образом вводит в заблуждение, и результаты поиска приносили меня здесь много раз, я просто отвечу на чтение названия.
Мне нравится использовать Babun в Windows в качестве среды Cygwin, это почти идеально для меня.
Ответ 15
В аналогичном примечании к emg-2 у Lifehacker появилась статья о MinTTY, не уверен, содержит ли она исправления, необходимые для вы.
Ответ 16
Если вы довольствуетесь только запущенными приложениями Cygwin, тогда rxvt должен работать нормально. Rxvt должен иметь поддержку UTF-8. Вы пытались найти решение для решения проблемы?
Если вам также нужно запускать собственные приложения Windows, вам не повезло, если вы не запустите bash внутри консоли Windows. Есть две проблемы, которые я не считаю (или даже могу быть) решены:
- Ctrl-C работает неправильно. Если вы запускаете собственное приложение Windows изнутри rxvt (или xterm), нажатие Ctrl-C вернет вам приглашение, но оно не прерывает программу, часто оставляя ее в фоновом режиме.
- Буферизация вывода терминала не работает. Вывод из собственных приложений Windows не отображается, поскольку они печатаются, а скорее, когда заполняется некоторый внутренний буфер.
Эти две проблемы одинаковы для всех эмуляторов терминала, которые я пробовал (rxvt, xterm, Emacs и некоторые другие).
Ответ 17
Помимо полной изменчивости, какие функции делает rxvt для вас, что консольное окно Windows этого не делает? И посмотрели ли вы на разницу в использовании памяти - rxvt - это свиньи. Я использую rxvt в течение нескольких недель и переключается обратно в окно консоли Windows без сожалений.
Ответ 18
да, mintty кажется более удобным, легким и быстрым, но есть одна функция, которой он не обладает, и консоль по умолчанию (Windows) имеет, то есть функцию поиска: от консоли по умолчанию вы можете искать строку, отображаемую на консоли, весело?
До сих пор я не нашел ни одной другой консоли, у которой есть эта функция... я знаю, скажите, мне действительно не нравится консоль по умолчанию.
Ответ 19
Я использовал несколько терминалов, таких как шпатлевка, консоль, rxvt, mintty, teraterm.
лучшим является тератерм.
он бесплатный, полностью совместим с lang и tty, полностью настраивается с помощью макроса, ярлыка и дает cygterm для Cygwin.
однако, если вы зажжете пользователя, просто используйте mintty, который по умолчанию используется в этот день или rxvt.
Ответ 20
Попробуйте ConEmu, который представляет собой консольный эмулятор с вкладками, который представляет собой несколько консолей и простых графических приложений в виде одного настраиваемого окна графического интерфейса.
https://conemu.github.io/