下一页 上一页 目录

6. 文本模式应用程序的键盘设置

6.1 首先

第八位必须在进入内核时保留,请使用以下命令确保:

        stty cs8 -istrip -parenb

接下来,需要确保应用程序能够支持 8 位字符:例如,ispell 默认情况下未编译为 8 位字符:需要重新编译,不带以下选项:

        -NO8BIT

6.2 一种字体,多种字体...

在开始本节之前,我建议您阅读关于字体的介绍,以便更好地理解基本词汇和不同的字体标准。

a) 字体的历史

从 ASCII 到 Unicode,再到 ISO 8859、latin 和 cp,我们可以将字体的历史概括为几个主要阶段:

最初是 ASCII,它使用 7 位编码字符。

专为美国人设计,无法将重音字符添加到已经存在的 127 个字符的标准中。

因此出现了 8 位,它将字符数扩展到 255,以及 ISO 8859、latin 和 cp 标准(最著名的),它们通过在 8 位编码字符时提供的 128 个额外位置来弥补这一缺陷。

但是,由于无法将世界上所有语言的字符都容纳在 8 位中,因此需要多个标准。

例如,最常用的 ISO 8859-1 latin 1 标准适用于西欧、北欧、美洲的语言,ISO 8859-2 latin 2 标准则用于东欧...

Unicode 是其中一个标准,旨在最终取代 ASCII 的不同演变;就像从 7 位到 8 位的过渡一样,它对应于可用空间的扩展,同时保留了旧部分,如 ASCII 和 ISO 8859-1 latin 1,以保持与大多数已安装设备的兼容性。

Unicode 的优势在于提供了世界上所有语言所需的字符,但仍然很少使用或实现。

实际上,在 linux-console 下不可能使用它,因为显卡内存有限,无法存储 Unicode 的所有字符,而在 X 下,当前字体管理会使其使用起来非常不舒服。

让我们稍微等待一下,看看 “True Type” 字体是否会在 X 下普及,这要归功于 freetype、xfstt (...) 等工具,以及备受期待的 XFree 4,它应该会原生支持它们。

目前,新的欧洲标准 ISO 8859-15 latin 9 被认为可以通过为旧的 ISO 8859-1 latin 1 标准带来当前缺少的字符,从而实现向 Unicode 的过渡。

然而,它与 Unicode 部分不兼容,因为 ISO 8859-1 latin 1 已被选为 Unicode 的基础,但此字体希望通过添加 Unicode 中已存在的字符来弥补 ISO 8859-1 latin 1 的缺陷...

简单的字母竟然如此复杂!

b) ISO 8859-15 latin 9

如今,最好默认安装新的 ISO 8859-15 latin 9 标准,旨在用一个标准取代所有欧洲字体。

它的目标与 Unicode 相似,但它的优点是比 Unicode 更轻巧,并且可以立即应用。

它特别带来了法国人和芬兰人非常需要的字符:

这个新标准 ISO 8859-15 latin 9,也以通用名称 latin0 而闻名,与当前的 ISO 8859-1 latin 1 标准相比,仍然非常不普及。

c) 使用 ISO 8859-15 latin 9 字体

您只需要一种字体!

然而,在 linux 下,存在多种不同类型,以不同的方式响应相同的 iso-8859-15 latin9 – latin0 标准:

因此,我添加了我创建的 2 种类型,以最好地满足不同的需求。

      | Encodage dans | Inclusion d'une | Compatibilité | Compatibilité
      |  l'ordre iso  |  table Unicode  |   exclusive   |    croisée
--------------------------------------------------------------------------
lat9  |     oui       |      non        |     non       |   lat1 + lat9
--------------------------------------------------------------------------
lat9u |     non       |      oui        |     non       |   lat1 + lat9
--------------------------------------------------------------------------
lat9v |     oui       |      oui        |   Unicode     |       non
--------------------------------------------------------------------------
lat9w |     oui       |      oui        |     non       |lat1+lat9+Unicode
--------------------------------------------------------------------------

以下是更多解释:

因此,只有当您知道自己在做什么时才使用 lat9、lat9u 或 lat9v 字体,我个人推荐最佳折衷方案:lat9w 字体,它可以立即过渡到 latin9,对于 latin1 字符会带来一些问题,这些字符将被其 latin9 等效字符替换,但不会像 lat9U 那样强制使用 Unicode,也不会像 lat9 那样混淆图形字符,并且还允许以 “纯” Unicode 显示 latin9 特有的字符,但不包括 latin1 特有的字符...

请放心,您不必理解以下所有内容即可 “过渡到欧元”,如果您仍然不知道自己需要哪种字体,建议:使用 lat9w。

要使用 lat9-16.psf 字体或其他 lat9 .psf,您必须通过加载 Unicode 表来弥补缺少 Unicode 表的问题。

                loadunimap fonts/linux-console/lat9.uni
                setfont fonts/linux-console/lat9-16.psf

要使用 lat9w-16.psf 字体或其他 lat9u、lat9v 或 lat9w

                setfont /fonts/linux-console/lat9w-16.psf

d) Unicode

另一种选择是 Unicode,但使用它的程序仍然太少,以至于它不实用。

仍然要提到 yuedit 和 “9” 项目(9term、9wm... 与同名的法国电信运营商无关),它们在 X 下使用 Unicode,但成功程度不一。

另一方面,在 linux-console 下,任何程序都可以使用 Unicode。

但是,唉!即使当前显卡的内存再大,也无法加载 Unicode 字体的所有字符。

因此,存在有限但非常有用的 “字符集”,适用于波罗的海语、亚洲语、东非语...

e) 使用 Unicode 功能

例如,尝试使用 unicode-lance 文件切换到 Unicode 模式

#!/bin/sh
echo -e '\033%8'
kbd_mode -u
loadkeys fr-unicode.map
setfont lat9u-16.psf

以及 latin-retourne 文件返回到正常的拉丁模式

#!/bin/sh
echo -e '\033%@'
kbd_mode -a
loadkeys fr-latin9.map
setfont lat9w-16.psf

例如,尝试读取 unicode.txt 文件,该文件以 Unicode 编码,一旦 unicode-lance 激活。

否则,您将只会看到编码错误的文本,没有 8 位字符,如以下示例:

Ceci est un essai de texte en UNICODE !

On constate que les bÃ�tas (Ã~_) et autres lettres 8 bits ne sortent pas bien
si l'on regarde ce fichier en mode latin !
Les accents Ã�Ã�Ã| Ã� non plus d'ailleurs...
Enfin, heureusement que l'on ne marche pas sur des Å~RUFS, enfin, Å~Sufs !
Ã~Ga marche moyennement disons !

6.3 本地化设置,法语消息

Linux 的 “法语版本” 存在... 但似乎不容易获得。

C 库使用的 locale(7) 库 [另请参阅 perllocale、setlocale、getlocale] 使用环境变量来定义语言和国家/地区偏好。

Pablo Saratxaga 在回答 Pascal Rigaux 时,以 sort 为例:

 PR> J'ai découvert aujourd'hui la variable d'environnement LANG. C'est assez
 PR> surprenant de se retrouver avec de l'aide en français (même si elle n'est pas
 PR> toujours aussi précise que la version anglaise) quand on fait ls --help.

C'est agréable n'est-ce pas ?

 PR> Par contre je ne comprend pas pourquoi un programme comme sort(1) n'utilise pas
 PR> cette information pour obtenir un tri acceptable pour les accents (du genre ne
 PR> pas mettre � être � après � zen �). Il devrait au moins proposer une option de
 PR> ce genre.

Il faudrait regarder les sources de sort...
La fonction à utiliser est strcoll() :

                                  ****

STRCOLL(3)         Manuel du programmeur Linux         STRCOLL(3)


NOM
       strcoll - Comparaison de deux chaînes suivant la localisa-
       tion en cours.

SYNOPSIS
       #include <string.h>

       int strcoll (const char *s1, const char *s2);

DESCRIPTION
       La fonction strcoll() compare les deux chaînes s1  et  s2.
       Elle renvoie un entier inférieur, égal ou supérieur a zéro
       si  s1 est respectivement inférieure, égale, ou supérieure
       a  s2.   La  comparaison est effectuée en se basant sur la
       localisation en cours pour la catégorie LC_COLLATE.  (Voir
       setlocale(3)).

                                  ****

qui est donc l'équivalent de strcmp() mais qui tiens compte des locales.
Il faudra s'écrire un strcasecoll() aussi pour bien faire, en utilisant
toupper()/tolower() qui d'après la page de manuel supporte les locales.

Qui s'y colle ? Ça devrait être assez simple à réaliser sur un système GNU
en tout cas.

存在不同的变量需要导出,每个变量都有特定的功能;标准化格式是:

        langue[_PAYS[.CHARSET]][@variante]

方括号表示可选性,例如:“fr”、“fr_BE”、“fr_CH.ISO-8859-15”、no@bokmaal、no@nynorsk,...

libc 的函数,至少是 GNU 的函数,将以 “降序” 搜索(如果可以这样说);例如,如果指定 “fr_CH.ISO-8859-15”,它们将首先使用此值搜索,然后使用 “fr_CH”,最后使用 “fr”。

法语使用者可用的值是:

例如,如果您是法国法国人,只需在 bash 下指示:

        export LANGUAGE=fr_FR

示例

        bash# export LANGUAGE=es_ES
        bash# ls fichier_n_existant_pas
        ls: fichier_n_existant_pas: No existe el fichero o el directorio
        bash# export LANGUAGE=de_DE
        bash# ls fichier_n_existant_pas
        ls: fichier_n_existant_pas: Datei oder Verzeichnis nicht gefunden
        bash# export LANGUAGE=en_US
        bash# ls fichier_n_existant_pas
        ls: fichier_n_existant_pas: No such file or directory
        bash# export LANGUAGE=fr_FR
        bash# ls fichier_n_existant_pas
        ls: fichier_n_existant_pas: Aucun fichier ou répertoire de ce type

但是,随着欧元的使用,这些本地化设置不再适用。

因此,我建议在欧元区国家/地区使用后缀 “@euro”:

   export LC_ALL="fr_FR@euro"

为此,通过运行以下命令,将新的本地化设置源文件安装到 /usr/share/i18n/ 中:

   cp charmaps/ISO-8859-15 /usr/share/i18n/charmaps/ISO-8859-15
   cp locales/* /usr/share/i18n/locales/

然后,重新生成 /usr/share/locales 的 “二进制” 本地化设置,例如:

   localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro

fr_FR@euro 包括 latin 9 字符,这对于使用 LC_COLLATE 和 LC_CTYPE 以及新货币单位非常有用。

目前,法郎(FRF)仍然是法国等地的官方货币,但是当欧元成为货币时,只需将本地化设置 fr_FR 替换为 fr_FR@euro。

   cd /usr/lib/locales
   rm -fr fr_FR
   mv fr_FR@euro fr_FR

其他 UNIX(如 Solaris)支持 “@euro” 解决方案。

对于 shell 脚本,添加 “LC_TIME=C” 可能会很有用,以防止日期本地化,这对于 grep 和其他搜索 “Mon”、“Tue”... 而不是 “Lun”、“Mar”... 的程序来说很麻烦。

与首选项对应的数据通常位于 /usr/share/locale 中。如果缺少这些数据,您可以从 source 获取它们

关于本文中讨论的其他文件,您可以在 我的页面 上找到它们以及本 HOWTO 的其他文件。

6.4 使 Linux 具有法语功能

为了使 Linux SON 具有法语功能,实际上需要拥有 libc 的源代码和最少的 C 语言技能;对于标准的 Linux 用户来说,这些操作是不必要的,他们只需使用上一节的本地化设置即可。

但是,为了让您满意,以下是一些收集到的信息...

Laurent Chemla 为我们提供指导:

Si j'ai suivi, il y a deux trucs qui font la même chose, d'où embrouille, les
locales et un truc appelé nls.

Les locales, sous Linux, ça va par défaut dans /usr/lib/locale,
et ça contient de quoi préciser entre autres le format des
nombres (LC_NUMERIC), les retours des fonctions ctype (isalpha etc) (LC_CTYPE),
le format des sommes d'argent (LC_MONETARY), le format des dates (LC_TIME) et
encore d'autres détails. Sur certains Unix, il y a aussi LC_MESSAGES,
qui contient les messages de l'OS dans la langue choisie par la variable
d'environnement LC_MESSAGES. Pas sous Linux.  Sous Linux, c'est nls qui fait
ça, et de fait, nls gère un fichier qui est dans /etc/locale/.
(NDG : De nos jours, ils se trouvent plutôt dans /usr/lib/locale)
D'où l'embrouille. Ils auraient mis ça dans /usr/lib/nls, comme
tout le monde, ça aurait évite la confusion. Mais bon.

Donc, si l'on veut se tenir à jour d'nls, il suffit d'aller dans les
sources de libc/nls, faire � make french � et copier libc.dat dans
/etc/locale/C/libc.dat et toc, tous les messages sont en français. Y compris
ceux des programmes qui n'utilisent pas setlocale(): c'est perror() qui fait le
boulot (du moins je suppose).

Si l'on veut en plus que les programmes qui utilisent setlocale() utilisent nos
règles françaises, là il faut aller dans les sources de
libc/locale et dans chacun des sous-répertoires jeter un oeil sur le
fichier exemple, le modifier pour le français (c'est des tout petits
fichiers), et faire � make �, avant de copier le résultat dans
/usr/lib/local/fr/ et de faire un � export LC_ALL=fr �.

另一种维护旧软件的技巧:

cd /usr/lib
ln -sf /usr/share/locale .

不要忘记从 lip6 站点 下载:

要了解更多信息,请阅读 “locale” 的手册页:手册页库 5 或 7

        bash# man 5 locale
        bash# man 7 locale

6.5 变量

这些变量需要在每次登录时导出:因此将它们放在 .bashrc.bash_login.tcshrc 或 /etc/profile 中

# pour tcsh, utiliser setenv au lieu de export, par exemple �setenv LANG fr�

# Les locales
LC_CTYPE=ISO-8859-1
LANGUAGE=fr
LC_MESSAGES=fr
LC_ALL=fr
LANG=fr
LESSCHARSET=latin1
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET

# Les raccourcis : sans ll ou d, impossible de voir les fichiers comprenant des
# caractères 8 bits ...
alias q="cd .."
alias ll="ls --color=auto -a -N -l"
alias d="ls --color=auto -a -N"
alias indent="indent -kr"
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"

# Au cas où Del/BackSpace ne fonctionne pas, essayez l'un des deux :
#stty erase ^?
#stty erase ^H

请记住:此处引用的所有以 “.” 开头的文件都必须位于您的主目录  / 中

6.6 在使用 readline 的程序(如 bash 或 ncftp)中使用 8 位字符...

Readline 是一个具有历史记录和补全功能的字符输入库;许多程序(如 bash、ncftp、gnuplot...)都使用它。

默认情况下,第 8 位用于编码 Meta 键。

它用于编码某些命令,但 “Escape” 或 “Échap” 键可以替换它。

如果您希望在使用 readline 编译的应用程序(如 bash 1.13 以上版本)中查看和输入重音符,请将以下内容添加到您的 $INPUTRC 文件中(默认为 ~/.inputrc):

# Permettre de rentrer & recevoir des caractères accentués
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on

# Pas de bip audible mais visible
# set bell-style visible

# Pour faire marcher Home, End, Delete, Esc + Delete & Esc + BackSpace
"\e[1~":beginning-of-line
"\e[3~":delete-char
"\e[4~":end-of-line
"\e\C-h": backward-kill-word
"\e\e[3~": kill-word

这将允许您使用 “Delete” 向前删除字符,使用 “BackSpace” 向后删除字符,这在默认键盘表中未提供,默认键盘表 “模仿” VT100 控制台键盘的行为。

最后两个选项将允许您使用 “Home” 和 “End” 键移动到当前编辑行的开头和结尾。

为了能够使用某个键,只需获取其代码并使用此文件将其与功能关联;要获取键的代码,请调用 cat,然后按下该键:其代码就会出现。

物理代码

        ^[

对应于转义序列。

例如,如果 “Home” 的代码是 “^[[7 ”,只需添加一行:

        "\e[7~": beginning-of-line

.inputrc 中。

更多文档可在 bash 手册页的 READLINE 部分找到。

通过环境变量 INPUTRC,我们还可以使用所有用户通用的文件。

最后,我建议您使用此 .bashrc 文件,将其放在您的主目录中:

# ~/.bashrc : exécuté par bash(1) pour les shells lancés après le login.

# Le path
PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/bin"

# Le prompt
PS1="(\u@\h:\W)$ "

# L'utilisateur
ENV=$HOME/.bashrc
USERNAME="votre nom"

# Les locales
_CTYPE=ISO-8859-1
LANGUAGE=fr
LC_MESSAGES=fr
LC_ALL=fr
LANG=fr
LESSCHARSET=latin1
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET

# Les raccourcis
alias q="cd .."
alias ll="ls --color=auto -a -N -l"
alias d="ls --color=auto -a -N"
alias indent="indent -kr"
alias elm-box="elm -f ~/Mail/Inbox"
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"

# Au cas où Del/BackSpace ne fonctionne pas, essayez l'un des deux :
#stty erase 
#stty erase ^H

# Refuser le talk & le write
#mesg n

# Permettre les coredumps
#ulimit -c nombre_max_de_Ko

#Fixer le masque de création de fichiers
#umask 022

.bash_profile 或 .bash_login 文件由 bash(1) 在登录时执行,它们与此文件完全相同,但如果您愿意,可以进行一些更改,例如通过启动 “fortune” 程序来显示引言。

6.7 zsh

它应该只需要 stty pass8

如果这还不够,请在 .zshrc/etc/zshrc 中添加:

        bindkey "\e[2~"  yank
        bindkey "\e[3~"  delete-char
        bindkey "\e[1~"  beginning-of-line
        bindkey "\e[4~"  end-of-line
        bindkey "\e[5~"  up-line-or-history
        bindkey "\e[6~"  down-line-or-history

6.8 tcsh

对于 tcsh,将上面指示的变量放在 /etc/csh.login 文件或相关用户的 .tcshrc 文件中,并将 export 替换为 setenv。

        setenv LC_CTYPE=ISO-8859-1
        setenv LANGUAGE=fr
        setenv LC_MESSAGES=fr
        setenv LC_ALL=fr
        setenv LANG=fr
        setenv LESSCHARSET=latin1

6.9 对于所有 shell

如果不起作用,请将 “iso_8859_1” 替换为 “iso-8859-1”,甚至可以使用 french.iso88591.fr_FR 或 fr_BR、fr_CA、fr_CH、fr_LU...

关于 LANG,最好避免使用 fr_FR 而首选 fr,因为某些程序实际上并不通过本地化设置解析,而是直接读取 LANG...

如果安装了 nls,则使用相应的例程,否则 tcsh 以 iso_8859_1 运行,无论为 LANG 和 LC_CTYPE 提供的值是什么:请参阅 tcsh(1) 的 NATIVE LANGUAGE SYSTEM 部分。

根据 Danish-HOWTO,使用:

        (guylhem@victis:tcsh)# setenv LC_CTYPE ISO-8859-1
        (guylhem@victis:tcsh)# stty pass8

6.10 时间

没有什么比让 Linux 负责从夏令时切换到冬令时以及反之亦然更容易的了...

a) 首先,现在几点了 :-)?

在查看离您最近的钟表后,键入:

clock

然后

date

第一个时间是 bios 的时间,第二个时间是 Linux 根据 /etc/zoneconfig 计算的时间。

如果您安装了 timezone,您的机器可以轻松地在不同的时区之间切换... 这是 DOS 或 Windows 无法实现的!

b) 时间的选择!

由此,有两种可能性:要么您决定将系统时间保持在本地时间,这不太实用,除非您还在硬盘上托管那些不发达的操作系统,它们甚至不知道如何利用时区;要么您切换到格林威治时间,Linux 负责将其调整为您的时区。

在这种情况下,使用配备 Linux 的全新笔记本电脑出国旅行将非常简单:最后一段将向您解释如何轻松更改时区...

c) 设置

要进行设置,首先查看 clock 返回的系统时间是本地时间还是格林威治时间。

您已经像我上面建议的那样查看了钟表,对吧?

如果 clock 返回本地时间,则需要稍微处理一下时区,否则直接跳到 “设置时区” 步骤。

您通常处于 MET 时区(中欧时间,即 GMT+1)。

“MET DST” 时区对应于活动的夏令时(GMT + 2)。

根据欧洲法院未来的决定,“夏令时” 可能被废弃... 这将使此解释变得复杂!

如果您住在蒙特利尔附近,则处于 GMT-4 时区。

对于其他省份,请查阅字典!

首先,删除 /etc/localtime 或 /usr/lib/zoneinfo/localtime 文件(位置因发行版而异;如果您有两个文件,请删除 /etc/localtime:另一个文件肯定是指向 /etc/localtime 的链接)。

因此,clock 和 date 应该返回相同的时间...

如果您在夏天阅读本文档,则本地时间与格林威治时间的偏移量为两个小时,因此我们将暂时将时区设置为 GMT-2,或者您在冬天阅读本文档,则应将以下示例中的所有 “2” 替换为 “1”...

GMT-2?!!?而时区是 GMT+2?

这将返回格林威治时间,我们需要它来设置系统:键入:

ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig

clock

date

计算的时间因此对应于格林威治时间,系统时间对应于本地时间... 即我们想要的相反情况。

一个简单的命令:clock -w

然后将系统时间设置为格林威治时间,为此使用故意与系统时间相反的本地时间。

d) 设置时区

然后键入:ln -sf /usr/lib/zoneinfo/Europe/您的城市 /etc/zoneconfig

瞧!系统设置为格林威治时间,到本地时区和夏令时的转换将自动进行。

如果您居住在欧洲以外,请以相同的方式进行操作,将 “-2” 替换为 “X”,X 代表您的时区偏移量的相反值(例如,魁北克为 -4,因此 X=+4...)

e) 修改时区

如果您出国旅行,则可以轻松修改笔记本电脑的本地时间:例如,如果您前往莫斯科:

ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfig

非常简单且非常有用:不再需要记住时区偏移量(正负 X 小时),因为 Linux 现在负责一切!

6.11 vi

通常,除了使用 loadkeys(在上面详细介绍)之外,不需要进行任何修改。

如果您使用 vim 而不是 elvis,则此 .vimrc 文件可能对您有用:

" Les guillemets anglais � " � signifient � mis en commentaire �

" Éviter un avertissement � version incorrecte � :
version 4.0

" Utiliser les défauts de vim, bien mieux
set nocompatible

" Autoriser le � BackSpace � sur tout :
set bs=2

" Police à utiliser sous X11 :
"set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

" Fixer la césure automatique de la ligne à N caractères :
set tw=72

" Faire apparaître les tabulations et les espaces
set list

" Changer les défauts pour voir les espaces inutiles et les tabulations
set listchars=tab:��,trail:�
hi nontext ctermfg=red
hi nontext ctermbg=blue

" Indentation (pour les programmeurs) :
" set cindent

" Réglages souris :
"set mouse=a

" Ligne
set nowrapscan

" Montrer les correspondances :
set showmatch

" Montrer le mode
set showmode

" Indentation intelligente (pour les programmeurs) :
" set uc=0

" Faire fonctionner BackSpace :
set t_kD=^?

" Doit se trouver après
map ^H X

" Faire fonctionner Delete  :
map \e[3~ x

" Cacher la souris lorsqu'on tape :
set mousehide

" Faire voir les correspondances lors de recherches :
" set hlsearch

" Colorer à l'intérieur des commentaires en C :
let c_comment_strings=1

" Couleur pour xiterm, rxvt, nxterm, color-xterm :
if has("terminfo")
    set t_Co=8
    set t_Sf=\e[3%p1%dm
    set t_Sb=\e[4%p1%dm
 else
    set t_Co=8
    set t_Sf=\e[3%dm
    set t_Sb=\e[4%dm
endif

" Coloration syntaxique :
if ett_Co > 1
   syntax on
endif

" Autoriser l'édition de fichiers gzippés

augroup gzip
  " Supprimer toutes les autocommandes
  au!
  autocmd BufReadPre,FileReadPre        *.gz set bin
  autocmd BufReadPost,FileReadPost      *.gz '[,']!gunzip
  autocmd BufReadPost,FileReadPost      *.gz set nobin
  autocmd BufReadPost,FileReadPost      *.gz execute ":doautocmd BufReadPost " .  expand("%:r")

  autocmd BufWritePost,FileWritePost    *.gz !mv <afile> <afile>:r
  autocmd BufWritePost,FileWritePost    *.gz !gzip <afile>:r

  autocmd FileAppendPre                 *.gz !gunzip <afile>
  autocmd FileAppendPre                 *.gz !mv <afile>:r <afile>
  autocmd FileAppendPost                *.gz !mv <afile> <afile>:r
  autocmd FileAppendPost                *.gz !gzip <afile>:r
augroup END

augroup bzip
  au!
  autocmd BufReadPre,FileReadPre        *.bz2 set bin
  autocmd BufReadPost,FileReadPost      *.bz2 '[,']!bunzip2
  autocmd BufReadPost,FileReadPost      *.bz2 set nobin
  autocmd BufReadPost,FileReadPost      *.bz2 execute ":doautocmd BufReadPost " .  expand("%:r") 
  autocmd BufWritePost,FileWritePost    *.bz2 !mv <afile> <afile>:r
  autocmd BufWritePost,FileWritePost    *.bz2 !bzip2 <afile>:r

  autocmd FileAppendPre                 *.bz2 !bunzip2 <afile>
  autocmd FileAppendPre                 *.bz2 !mv <afile>:r <afile>
  autocmd FileAppendPost                *.bz2 !mv <afile> <afile>:r
  autocmd FileAppendPost                *.bz2 !bzip2 <afile>:r
augroup END

augroup cprog
  au!
  autocmd BufRead *       set formatoptions=tcql nocindent comments&
  autocmd BufRead *.c,*.h set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
augroup END

6.12 Emacs

以下是使用重音符的基本配置文件。

  ;;
  ;; Fichier .emacs: initialisation d'emacs
  ;; Tiré du Guide du Rootard
  ;;

  (display-time)                     ;; Pour avoir l'heure dans la barre d'état
  (setq display-time-24hr-format t)  ;; Format 24 heures

  ;; Nouveaux modes
  (autoload 'c++-mode   "cplus-md" "C++ Editing Mode" t)
  (autoload 'perl-mode   "perl-mode" "Perl Editing Mode" t)
  (autoload 'c-mode "c-mode" "C Editing Mode" t)
  ; mieux vaudrait utiliser le "cc-mode"

  (autoload 'jargon-mode "jargon" "Jargon Mode" t)

  ;; Auto-Mode Settings : positionne le mode selon l'extension
  (setq auto-mode-alist
  (append '(("\.c$"  . c-mode)    ;; utilise le mode C++ même pour C
  ("\.h$"  . c-mode)
  ("\.C$"  . c++-mode)
  ("\.H$"  . c++-mode)
  ("\.cc$" . c++-mode)
  ("\.C$"  . c++-mode)
  ("\.pl$" . perl-mode)           ;; Perl
  ("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le courriel)
  ("[Rr][Ee][0-9]*" . text-mode)
  ("\.ada$"  . ada-mode)          ;; Ada
  ("\.spec$"  . ada-mode)
  ("\.body$"  . ada-mode)
  ("makefile$" . makefile-mode)  ;; Makefile
  ("Makefile$" . makefile-mode)
  ("Imakefile$" . makefile-mode))
  auto-mode-alist))

  ; Remappages variés à mettre ici
  (global-set-key "\eg" 'goto-line)       ;; ESC G = Aller à une ligne

  (put 'eval-expression 'disabled nil)

  ;; Accents...
  (standard-display-european 1)
  (load-library "iso-syntax")
  (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)

  ;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc)
  (cond (window-system
  (setq hilit-mode-enable-list  '(not text-mode)
  hilit-background-mode   'light
  hilit-inhibit-hooks     nil
  hilit-inhibit-rebinding nil)
  (require 'hilit19)
  ))
  (if (not (equal window-system ""))
  (global-set-key "\C-?" 'delete-char))
  ))

Keyboard-HOWTO 建议:

          (standard-display-european t)
          (set-input-mode nil nil 1)
          (require 'iso-syntax)
          (load-library "iso-insert.el")
          (define-key global-map [?\C-.] 8859-1-map)

使用至少 19.27 版本,修改全局文件(所有用户通用)/usr/lib/emacs/site-lisp/site-start.el 或每个相关用户的 ./emacs,以添加:

        (standard-display-european t)
        (set-input-mode (car (current-input-mode))
          (nth 1 (current-input-mode))
          0)
        (global-set-key [delete]   'delete-char)
        (global-set-key [home]     'beginning-of-line)
        (global-set-key [end]      'end-of-line)
        (global-set-key [prior]    'scroll-down)
        (global-set-key [next]     'scroll-up)
        (global-set-key [C-right]  'forward-word)
        (global-set-key [C-left]   'backward-word)
        (global-set-key [C-prior]  'beginning-of-buffer)
        (global-set-key [C-next]   'end-of-buffer)
        (global-set-key "\033[A"  'previous-line)
        (global-set-key "\033[B"  'next-line)
        (global-set-key "\033[C"  'forward-char)
        (global-set-key "\033[D"  'backward-char)
        (global-set-key "\033[H"  'beginning-of-line)
        (global-set-key "\033[Y"  'end-of-line)
        (global-set-key "\033[1~" 'beginning-of-line)
        (global-set-key "\033[2~" 'overwrite-mode)
        ;; le delete-char peut correspondre à \004 ou à \033[3~
        (global-set-key "\033[3~" 'delete-char)
        (global-set-key "\033[4~" 'end-of-line)
        (global-set-key "\033[5~" 'scroll-down)
        (global-set-key "\033[6~" 'scroll-up)

对于其他版本:

XEmacs 默认情况下接受它们,没有任何问题,但有时在控制台的迷你缓冲区中可能会遇到 BackSpace 问题。

.emacs 中添加:

(if (eq window-system 'x)
    (global-set-key (read-kbd-macro "DEL") 'delete-char)
  (or (global-set-key "^[[3~" 'delete-char))
)

emacs 的 ispell 模式具有一些预定义的字典,这些字典不一定是在系统上安装的字典。

如果您发现问题,则必须重新定义字典的 ispell-dictionary-alist 列表。

此列表包含:

例如,在 .emacs 文件中:

(setq ispell-dictionary-alist
 '((nil  ; francais.aff
  "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]"
  "[---']" nil ("-n") "~nroff")
 ("english"  ; rosbif
  "[A-Za-z]" "[^A-Za-z]" "[---']" nil ("-B") nil)
 ("american" ; yankee
  "[A-Za-z]" "[^A-Za-z]" "[---']" nil nil nil)
 ("francais" ; français
  "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]"
  "[---']" nil ("-n") "~nroff")
 ("francais-TeX" ; français
  "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]"
  "[---'^`\"]" t nil "~tex")
 ("espanol" ; espa~nol.aff
  "[A-Za-záéíóúüñÁÉÍÓÚÜÑ]" "[^A-Za-záéíóúüñÁÉÍÓÚÜÑ]"
  "[---'^`\"]" t nil "~nroff")
 ("dansk" ; danois et norvégien
  "[A-Za-zåÅøØæÆéÉèÈ]" "[^A-Za-zåÅøØæÆéÉèÈ]"
  "[---'^`\"]" t nil "~nroff")
 ))

字典 “francais-TeX” 是 “francais” 的符号链接,它允许为 TeX 的重音符添加条目(例如:\'e)。

如果您使用 X11,您可能需要重建菜单,并且需要在您的 .emacs 中重新加载 lisp/loaddefs.el 的一部分:

(setq ispell-menu-map nil)

  (if ispell-menu-map-needed
  (let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
    name)
    ;; Can put in defvar when external defines are removed.
    (setq ispell-menu-map (make-sparse-keymap "Spell"))
    (while dicts
  (setq name (car (car dicts))
    dicts (cdr dicts))
  (if (stringp name)
  (define-key ispell-menu-map (vector (intern name))
    (cons (concat "Select " (capitalize name))
  (list 'lambda () '(interactive)
    (list 'ispell-change-dictionary name))))))))

  (if ispell-menu-map-needed
  (progn
    ;; Define commands in opposite order you want them to appear in menu.
    (define-key ispell-menu-map [ispell-change-dictionary]
  '("Change Dictionary" . ispell-change-dictionary))
    (define-key ispell-menu-map [ispell-kill-ispell]
  '("Kill Process" . ispell-kill-ispell))
    (define-key ispell-menu-map [ispell-pdict-save]
  '("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t))))
    (define-key ispell-menu-map [ispell-complete-word]
  '("Complete Word" . ispell-complete-word))
    (define-key ispell-menu-map [ispell-complete-word-interior-frag]
  '("Complete Word Frag" . ispell-complete-word-interior-frag))
    (define-key ispell-menu-map [ispell-continue]
  '("Continue Check" . ispell-continue))
    (define-key ispell-menu-map [ispell-region]
  '("Check Region" . ispell-region))
    (define-key ispell-menu-map [ispell-word]
  '("Check Word" . ispell-word))
    (define-key ispell-menu-map [ispell-buffer]
  '("Check Buffer" . ispell-buffer))
    (define-key ispell-menu-map [ispell-message]
  '("Check Message" . ispell-message))
    (define-key ispell-menu-map [ispell-help]
  '("Help" . (lambda () (interactive) (describe-function 'ispell-help))))
    (put 'ispell-region 'menu-enable 'mark-active)))

  (fset 'ispell-menu-map (symbol-value 'ispell-menu-map))

6.13 less

/etc/profile 或 shell 启动文件(如主目录中的 .bashrc.bash_profile)应包含:

export LESSCHARSET=latin1

作为 .lessrc 文件,我推荐:

\e[B    forw-line
\e[A    back-line
\e[6~   forw-scroll
\e[5~   back-scroll
\e[1~   goto-line
\e[4~   goto-end
\e[C    next-file
\e[D    prev-file
\eOA    back-line
\eOB    forw-line

要输入 Esc(有时称为 Échap),请键入 “\e”,或者在 vi 下,使用 i 进入插入模式,然后键入 “ctrl+v”,最后键入 “Esc”。

此文件允许使用 “Home”、“End”、“Page_Up” 和 “Page_Down” 键。

要使用它,请键入:

lesskey -o .less .lessrc

不要忘记将 .less 文件放在您的主目录中:它允许使用箭头键、“Page_Up”、“Page_Down”、“Home” 和 “End” 键。

不要忽视 less 的手册页,因为更改其配置环境变量 (“LESS”) 的值可能很有趣。

我使用:'-C -M -i -x2'

6.14 ls

使用以下选项:

-N --color=auto

或者,更简单地,在 shell 启动文件中定义以下别名,以查看名称包含 8 位字符的文件:

alias ll="ls --color=auto -N -l -a"
alias d="ls --color=auto -N"

简单的 d 将取代经典的 ls,并添加颜色,而 ll 将为您提供目录中存在的所有文件的完整列表,包括其属性、大小...

--color=auto 是首选,因为 --color=yes 会在重定向到文件或程序时,或者当终端不支持颜色时,产生转义代码。

6.15 flex

提供选项:

-8

如果生成的分析器应接受 8 位输入(当然应该这样做!)。

6.16 elm

在您的 .elm/elmrc 中添加这三行:

  charset = iso-8859-1
  displaycharset = iso-8859-1
  textencoding = 8bit 

6.17 col

确保:

1) 它已更正并执行:

setlocale(LC_CTYPE,"");

2) 定义:

LC_CTYPE=ISO-8859-1

在环境中。

6.18 rlogin

使用选项:

-8

6.19 joe

使用 joe 2.8 或更高版本,在编辑配置文件后应该可以工作:将 -asis 选项放在 /usr/lib/joerc 的第一列中。

6.20 TeX 和 LaTeX

最简单的方法是使用 GuTemberg,这是一个 LaTeX 发行版,其中所有针对法语使用者的缺陷都已由法语使用者修复!

但是,如果您喜欢未修改的 standard 版本,只需在每个文件的开头添加:

如果您的发行版太旧而无法包含它,则可以 单独 获取 isolatin.sty

对于 gs 和 xdvi,必须使用特殊选项(在我的机器上,这些是别名)。实际上,它们通常配置为美国 “legal” 纸张,尺寸接近但与 “A4” 标准纸张不完全相同。

这些选项如下:

gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview -a4

为了让 dvips 将文档转换为 a4 纸张格式,必须在 config.ps 文件(路径因 LaTeX 版本而异)中指定:/usr/lib/texmf/dvips/config.ps 或 .dvipsrc

@ a4 210mm 297mm @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: a4 @+ %%BeginPaperSize: a4 @+ a4

否则,请添加到您的 .Xresources 中:

XDvi.paper:             a4
Ghostview.pageMedia:    A4

6.21 手册

首先,您需要获取翻译成 法语 的 Linux 手册页。

如果您使用 RedHat 或 Debian 发行版,则这些手册页位于 CD-ROM 上:只需在安装时选择它们即可。

由此,有两种可能性:

man 将在 “MANPATH” 中搜索 “LANG” 中的页面,否则将回退到英语页面。

如果您想安装解释 ISO 8859-15 latin 9 标准的手册页,则必须安装 iso_8859_15.7.gz 文件。

cp standard/iso_8859_15.7.gz /usr/local/man/man7/

6.22 拼写检查器 ispell

您可以从 Hydro Québec 的原始站点lip6 的镜像 获取它

LISEZMOI 文件逐步地用法语解释了安装过程。

6.23 105 键键盘

也称为 “Microsoft (tm) 键盘”,它们比普通键盘多三个键。

如何使用它们?

在控制台模式下,编辑 french.map 并取消注释相关的行!

对于 french(对于 Xwindow)也是如此。

6.24 PGP

注意,在某些极权主义国家,使用加密软件被视为使用战争武器,这可能会受到法律惩罚!

如果您的当地法律不允许使用加密软件,请跳过此段。

首先,您必须从 PGP 的挪威站点 获取 pgp-international(由于专利问题和战争武器出口立法,存在 pgp-us 和 pgp-international,后者配备了更强大的算法)。

然后,将以下文件放在您的主目录的 .pgp 子目录中:

config.txt
language.idx
pgpdoc1.txt
pgpdoc2.txt
language.txt
fr.hlp
en.hlp
pgp.hlp 

最后,编辑 .pgp/config.txt 文件以添加:

Language = fr
CharSet = latin1

然后阅读 .pgp/fr.hlp 以学习如何使用 pgp!

6.25 以 ascii 模式打印

对于简单文本的打印,许多打印机期望字母采用 IBM 编码 (cp850),就像在 MS DOS 下一样。

如果文件以 latin1 编码,则必须使用 “recode latin1:ibmpc”(例如,放在 /etc/ 的 lpr 过滤器中),否则可能会看到 “alpha 字符” 代替 “à”,以及其他类似的东西。

程序 recode 还有其他用途:“ibmpc:lat1” 或 “lat1:ibmpc”(从 MS-DOS 或到 MS-DOS)或 “applemac” 用于 Macintosh (tm)。

6.26 Unicode/latin/cp... 我不理解最后一段!

以下是 Pablo Sartxaga (srtxg@chanae.alphanet.ch) 在一封解释 Unicode/latin/cp 差异的消息中提供的更多解释:

 DB>   quand on lance � setfont � sans argument
 DB>   il semble qu'on obtienne le même effet que setfont -u none

Normal et logique.

 DB>   --> en un mot la table de conversion � Unicode � est désactivée
 DB>       ce qui transforme le � e accent aigü (dec 130) � en � théta (dec 233) �

Non. Il ne transforme rien du tout, il affiche tout simplement sans 
*aucune* transformation au contraire, à toi de t'assurer que la police
que tu charges possèdes les glyphes à la bonne place par rapport au codage
de caractères que tu utilises (iso-8859-1).

Autrement dit si ta police n'est pas iso-8859-1 tu dois dire à setfont de
faire des mappings; en particulier s ic'est une police qui utilise l'encodage
DOS cp437 tu fais � setfont -u cp437 nomdelapolice �. Moi par exemple j'aime
beaucoup la police � t.fnt � de la Slackware, et j'ai donc quelque part
dans /etc/rc.d/* une ligne � setfont -u cp437 t.fnt �

Ou alors tu modifies la police (il y a un logiciel qui fait cela avec
interface svgalib, et un autre nommé � chedit � qui permet de créer des
images an ascii-art, un fichier par caractère (256 fichiers donc), il te
suffit alors de jongler avec les fichiers pour les changer de place et
régénerer la police).  Note cependant que le codage cp437 n'inclut pas
tous les caractères de iso-8859-1, notamment manquent quasi toutes les
majuscules accentuées, et les lettres ãõ nécessaires en portugais. Tu
peux toujours modifier la police pour créer ces caractères manquants.

 DB>   sur ma Slackware 3.2, à aucun moment setfont n'apparaît dans les scripts
 DB>   de démarrage ni dans les ~/profiles et autres ~/.bashrc

Donc c'est la police dans la ROM de la carte video qui est utilisée.

 DB>   et pourtant cette
 DB>   conversion est effectuée correctement puisque j'ai les accents à l'écran.

Je suppose que le kernel présuppose (à juste titre) que la police en ROM vidéo
est au codage cp437.

 DB>        une fois que je lance � setfont -u none � je perds donc les accents.

Normal, car dès lors que tu charges une police tu est supposé savoir ce que
tu veux (au contraire de la police en ROM où tu n'as pas le choix).

Autrefois (du temps des 1.2.* et avant) le défaut de setfont était cp437
(et il n'utilisait pas encore des tables Unicode, mais on pouvait
changer par \e(B et \e(K entre codage cp437 et iso (on peut toujours 
d'ailleurs)), mais maintenant le défaut est � straight to font �, pas de
conversion.

 DB>            j'en conclue que Linux utilise la police résidente par défaut de
 DB>            la carte EGA/VGA

 DB>        [Q] --> comment retrouver cette police ?

Il y a un programme nommé � restoretextmode � qui est assez populaire
auprès des possesseurs de certaines cartes graphiques chez qui le
passage X11 -> console bousille les polices; il permet de faire un dump
sur un fichier; il faudrait donc que tu le lances avant de modifier la
police avec setfont. Le paquetage s'appelle quelque chose comme
SVGATextMode ou quelque chose d'approchant.

 DB>     [Q] --> quelle table appeler pour la remapper et ravoir les accents ?

setfont -u cp437 policedos

Ou sinon, si tu ne veux pas lancer setfont et tu veux donc garder la
police de la carte graphique; essaye un � echo -e \033(B � (l'ennuyant
c'est que tu dois le faire dans chaque console)

 DB>                 (en général setfont -u def.uni (par exemple) renvoie une
 DB>                  erreur : PIO_UNIMAPCLR: Invalid argument et je reste
 DB>                  en caracteres � graphiques �)

Ah ? Chez moi ça marche; quels kernel et kbd as-tu ?

Sinon je te conseille � cp437 � plutôt que � def �, ils font _presque_ la même
chose, mais � cp437 � est visuellement plus agréable car il remplace les
caractères non présents dans la police par les lettres non accentuées si c'est
des lettres, C pour � et R pour � et par un carré blanc pour le reste, ce qui
permet de garder le formatage et la lecture agréables; � def � lui ne mets
totu simplement rien pour les caractères manquants, si bien que tu te
trouves avec des trous, ce qui est l'horreur si tu édites un texte par
exemple avec vi, puisque le curseur est affiché plusieurs caractères
à gauche à cause des caractères de largeur nulle :) 

Essaye aussi la police � t.fnt �, elle est assez jolie, toute en rondeurs, je la
trouve réposante, et quand je dois utiliser un PC avec les polices style 
courier par défaut je trouve ça très agressif je me demande comment ils
peuvent travailler avec :)

另请阅读新闻文章:F. Yergeau 在 fr.usenet.reponses 和 fr.usenet.8bits 组中的 “FAQ - 法语重音符和 Usenet” 以及 mike (@) vlsivie.tuwien.ac.at 在 comp.answers 中的 “ISO 8859-1 National Character Set FAQ”。

6.27 ncurses

提醒一下,ncurses 是一个 C 库,它允许轻松地在文本控制台模式下操作显示:窗口、输入行、表单编辑、颜色、“ALT” 字符、ibm 半图形 ascii,就像在 dos 下一样...

简介

curses 的标准版本使用第八位进行反向视频(请参阅 /usr/include/curses.h 中定义的 _STANDOUT 标志)。但是,ncurses 似乎以 8 位运行并正确显示 iso-latin-8859-1。

重音符

注意:Linux 发行版通常附带 ncurses 的 1.9.9e 版本,但发现此版本的 form 库存在错误(窗口刷新问题)。

因此,如果要使用 “form”,请不要使用 1.9.9e 版本:ncurses 站点上已明确声明了此错误,我惊讶地发现正是此版本仍然在大多数发行版(RedHat 4.2、5.0、5.1、Slackware 3.2、Debian 1.9)中提供。

症状:ncurses 的 wgetch() 函数返回以下代码:

这对于 iso-8859-1 字体是正常的!

必须安装 “本地化设置” 或更新您的 ncurses 版本。

6.28 Perl

如果突然在更新后它提示:

(guylhem@victis:guylhem)$ perl
perl: warning: Setting locale failed for the categories:
        LC_CTYPE LC_COLLATE
perl: warning: Please check that your locale settings:
        LC_ALL = "fr_FR",
        LC_CTYPE = "ISO-8859-1",
        LC_COLLATE = (unset),
        LANG = "fr"
    are supported and installed on your system.
perl: warning: Falling back to the "C" locale.
(guylhem@victis:guylhem)$

在 libc6 中,本地化设置定义二进制文件的格式(再次)更改:必须从 sources WG15collection.tar.gz 等源文件以及 libc 源文件中提供的 “locale” 和 “localedef” 程序重新生成它们。

否则,我们也可以不使用本地化设置:

     unset LANG
     unset LC_CTYPE
     unset LC_COLLATE
     export LC_ALL=fr_FR.ISO-8859-1

6.29 安装本地化设置

“本地化设置” 是将修改某些程序的行为以使其适应 “国家/地区的文化特性” 的文件。

它用于解决 perl 报告的错误或 ncurses 对重音符的错误处理。

Midnight Commander (mc)

更改字体时,框架线可能会被各种字符替换。

2 种可能性:

对于第一种情况,唯一的解决方案是更改字体,但在第二种情况下,通常只需加载表即可,例如使用 loadunimap:

          loadunimap lat1u.uni
          loadunimap lat5u.uni
          loadunimap lat9u.uni

6.30 Kernel

要直接在内核中为法语键盘添加支持,这对于嵌入式系统或仅从软盘启动的系统来说很实用,以便节省最大空间:

/usr/bin/loadkeys loadkeys --mktable votre-table-de-clavier.map > /usr/src/linux/drivers/char/defkeymap.c

6.31 Lilo

从版本 20 开始,可以在 LILO 启动时指定键盘(例如法语)。

当然,这只是交换一些按键(a/q,m/:,... 对于法文键盘),但是当你想输入 ‘win’ 时,这很有用。

不过,我建议你不要创建使用在 AZERTY 和 QWERTY 键盘上不同的按键的标签,哪怕只是因为有一天你可能需要在你的电脑上有其他用户……

更简单的方法是创建简短的标签,并使用像 GAG 或 GRUB 这样的程序,在 GAG 的情况下,它们非常出色地用精美的图形菜单替换了 lilo 的行。

6.32 Groff (man)

在某些发行版中,man 程序没有配置为显示重音符号。

如果您遇到此问题,请编辑其配置文件(在当前发行版上是 /etc/man.config),并找到类似于这样的行

NROFF           /usr/bin/groff -Tascii -mandoc

将其替换为

NROFF           /usr/bin/groff -Tlatin1 -mandoc

旧版本的 man 也使用 col,以下要点也适用。

6.33 其他

关于 ISO-8859-1 主题以及“如何处理 8 位字符”的精彩讨论可用


下一页 上一页 目录