Поведение setenv LANG при локализации Linux, Xterm и VIM по сравнению с setenv LC_CTYPE

Я пишу некоторые Perl-скрипты для обработки некоторых файлов с японскими именами и содержимым. Я хотел видеть имена файлов, когда я делаю ls в xterm, вместо символов мусора.

Вот моя конфигурация: Клиентская ОС:

Windows XP Япония

Сервер:

Red Hat Enterprise Linux Server, выпуск 6.2

ВИМ: версия ВИМ 7.2.411

Xterm: ASTEC-X версии 6.0

CSH: tcsh 6.17.00 (Астрон)

После того, как я обновил свой .cshrc, чтобы использовать setenv LANG ja_JP.UTF.8, и снова открыл окно xterm, мне было очень трудно отказаться из-за следующего:

1) В VIM я бы попробовал открыть файл .cshrc и удалить строку комментария выше, нажав клавишу Backspace, но вместо этого исчезает строка под курсором, а затем копируется верхняя строка. Все ошибки VI заключаются в мусорных символах.

2) Я не смог создать резервную копию своего файла в оболочке, и я также получаю нечитаемую ошибку.

[someguy@simunec1 ~]$ copy .cshrc .cshrc.bak
copy:   -Ac3c3cch&c$ccc>c  (B.
[someguy@simunec1 ~]$ 1;2c

3) Я не мог использовать визуальный режим в VIM, чтобы скопировать все содержимое .cshrc (как-то в буфер обмена попадают только начальные части).

4) В конце концов, мне удалось получить части, которые я хочу отменить, в моем .cshrc в буфере обмена, прежде чем удалить большую часть из них и перезагрузить xterm.

Вопросы:

1) Кто-нибудь может помочь объяснить, что только что произошло выше?

2) Позже я нашел другой источник, который предложил setenv LC_CTYPE ja_JP.UTF-8 (https://unix.stackexchange.com/questions/16771/foreign-characters-wont-display-in-ssh). Это дало мне возможность видеть файлы на японском языке, когда я выполняю ls, сохраняя при этом сообщения об ошибках vim и оболочки на английском языке, и я также могу видеть японские символы в VIM в своих сценариях Perl. Нажатие клавиши Backspace в VIM не приводит к прыжкам курсора и вставке новых строк. Каким-то образом я взял лучшее из обоих миров, и я не уверен, почему это работает, а установка LANUG не работает, хотя шрифт для английских символов стал громоздким, и его трудно программировать.

Спасибо.


person frank    schedule 11.06.2013    source источник
comment
1) Запустите locale -a, чтобы убедиться, что у вас есть локаль с именем en_US.utf8. 2) Установите ЯЗЫК на en_US.utf8. 3) Запустите xterm с помощью переключателя -u8. (может и не надо)   -  person Joni    schedule 11.06.2013
comment
Установка флага на en-US.utf8 не поможет моей ситуации, так как я пытаюсь заставить японские символы отображаться в Xterm. И setenv LANG to ja_JP.UTF-8 начал портить ситуацию, как я описал выше.   -  person frank    schedule 12.06.2013
comment
Если вам нужен пользовательский интерфейс на английском языке и с использованием кодировки UTF-8, вы должны использовать en_XX.utf8 (XX — ваш вариант выбора: США, Великобритания, Калифорния, Австралия, Новая Зеландия,..). Я бы не рекомендовал устанавливать LC_CTYPE на японский язык, потому что это влияет на порядок сортировки и преобразование регистра, а не только на кодировку текста. Несмотря на указание говорить с вами на английском языке, программы будут изо всех сил стараться показать все символы. Xterm может не иметь лучшей поддержки шрифтов в мире; вам может повезти больше с rxvt или gnome-terminal.   -  person Joni    schedule 13.06.2013