https://wiki.archlinux.org/api.php?action=feedcontributions&user=Hang+yan&feedformat=atomArchWiki - User contributions [en]2024-03-29T07:34:06ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=VirtualBox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=254854VirtualBox (简体中文)2013-04-22T02:12:19Z<p>Hang yan: /* 每次更新定制内核时, 自动重新编译 virtualbox 模块 */</p>
<hr />
<div>[[Category:Emulators (简体中文)]]<br />
[[Category:Virtualization (简体中文)]]<br />
[[cs:VirtualBox]]<br />
[[en:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
{{Article summary start|摘要}}<br />
{{Article summary text|本文介绍 VirtualBox 基本使用,包括在 Arch 上运行 Virtual Box 软件,在 Virtual Box 中运行 Arch 系统。}}<br />
{{Article summary heading|重要页面}}<br />
{{Article summary link|Official website|https://www.virtualbox.org}}<br />
{{Article summary text|[[Wikipedia:VirtualBox|Wikipedia article]]}}<br />
{{Article summary heading|相关页面}}<br />
{{Article summary wiki|VirtualBox Extras}}<br />
{{Article summary wiki|PhpVirtualBox}}<br />
{{Article summary wiki|VirtualBox Arch Linux Guest On Physical Drive}}<br />
{{Article summary wiki|Advanced VirtualBox Networking}}<br />
{{Article summary wiki|Installing Arch Linux from VirtualBox}}<br />
{{Article summary end}}<br />
{{Translateme (简体中文)}}<br />
{{TranslationStatus (简体中文)|VirtualBox|2012-09-27|225393}}<br />
'''VirtualBox''' 是类似 [[VMware]] 的虚拟 PC 模拟器,处于不断的开发中。使用 [[Qt]] 图形界面,提供了无界面运行和 [[Wikipedia:SDL|SDL]] 命令行工具进行运行管理。它包含'''guest additions'''为一些虚拟系统提供附加功能,包括文件共享、剪贴板和图形加速,支持 “无缝” 窗口整合模式。<br />
<br />
{{Wikipedia|VirtualBox}}<br />
<br />
==在主机上安装==<br />
<br />
[[pacman (简体中文)|安装]] GPL 版本的 {{Pkg|virtualbox}} 软件包。作为依赖安装的 {{pkg|virtualbox-host-modules}} 包含了archlinux 默认内核使用的模块。<br />
<br />
要使用基于 [[Qt]] 的 {{ic|VirtualBox}} 命令,需要安装 {{Pkg|qt4}} 软件包。如果使用简单的基于 SDL 的 {{ic|VBoxSDL}} 命令或者 {{ic|VBoxHeadless}} 命令,则不需要安装 {{Pkg|qt4}}。<br />
<br />
如果使用{{pkg|linux-lts}}内核,需要安装{{pkg|virtualbox-host-modules-lts}}.<br />
<br />
=== 定制内核的主机===<br />
Virtualbox 不需要标准 ARCH 内核也能正常工作在 {{AUR|Linux-ck}} 等定制内核上。为了不让 pacman 同时安装 Arch 内核软件包,需要用 {{Pkg|virtualbox-host-source}} 安装 virtualbox 内核模块, 原理参见 {{Bug|26721}}。<br />
<br />
{{Pkg|virtualbox-host-source}}安装完成后,只要用下面命令生成内核模块:<br />
# dkms install vboxhost/<virtualbox-host-source version> -k <your custom kernel's version>/<your architecture><br />
<br />
然后装载模块:<br />
<br />
# modprobe vboxdrv<br />
<br />
{{注意|(当前不可用) virtualbox 模块将被自动装载和编译, 如果你已经安装了 {{pkg|dkms}} 并把它加入了 DAEMONS.}}<br />
<br />
==== 每次更新定制内核时, 自动重新编译 virtualbox 模块 ====<br />
<br />
{{注意|该功能已经更新, 运行 dkms (非 daemon 方式) 代替了原来的 vboxbuild.}}<br />
这个功能得益于[[AUR]]中的 {{AUR|virtualbox-hook}} 。在 '''virtualbox-hook'''中,每次更新 '''linux-headers'''包之后,[[mkinitcpio]] 上的 '''vbox hook''' 会完成 'automatic re-compilation' 。你需要将 'vbox' 加入 /etc/mkinitcpio.conf 中的 HOOKS 数组,同样地,需要加入到 'linux-headers' 里和你自己定制的内核头文件里的 /etc/pacman.conf 中的SyncFirst 数组中以使其生效.。<br />
<br />
这个 hook 会调用 '''dkms''' 命令去更新virtualbox 模块以与新的内核版本相适应。<br />
<br />
<br />
{{Note|如果你使用这种方法,观察linux 或者其他内核的包的安装过程是很'''重要'''的。如果有问题出现,vbox hook 会显示相应信息。}}<br />
<br />
== 设置 ==<br />
<br />
将需要运行 Virtualbox 的用户名添加到''vboxusers'' [[group|用户组]],文件夹共享和其它功能需要正确的组才能工作。新组设置不会应用到当前会话,请重新登录或者通过命令 {{ic|newgrp}} 或 {{ic|sudo -u ''username'' -s}} 启动一个新环境。<br />
# gpasswd -a ''username'' vboxusers<br />
<br />
Virtual Box 在 Linux 上运行需要使用自己的 [[kernel modules|内核模块]],包括一个必须的'''vboxdrv'''。这个模块必须在虚拟机运行前启动。如果需要,可以在 Arch Linux 启动时自动载入。<br />
<br />
要在启动时自动载入这个模块,请编辑在目录{{ic|/etc/[[Kernel_modules#Loading|modules-load.d]]}} 中新建一个扩展名为{{ic|*.conf}}的文件,(例如virtualbox.conf)。在文件中加入 <br />
vboxdrv<br />
<br />
手动装入模块:<br />
# modprobe vboxdrv<br />
<br />
{{Note| 要自动装载/编译 virtualbox 模块,请将 dkms 加入 DAEMONS}}<br />
<br />
启动管理界面:<br />
$ VirtualBox<br />
<br />
===虚拟系统附加光盘===<br />
“virtualbox” 软件包建议在运行 Virtual Box 的主机系统上安装{{pkg|virtualbox-guest-iso}}。这个包是一个磁盘镜像,用来安装虚拟系统的附加功能。<br />
<br />
===启动 live 系统光盘===<br />
点击'新建' 按钮创建虚拟环境。起个合适的名字然后选择操作系统类型和版本。选择基本内存大小。(大部分操作系统需要至少 512MB)。创建一个新的硬盘镜像(硬盘镜像是一个包含操作系统文件系统和文件的文件)。<br />
<br />
创建完硬盘镜像后,点击'设置', 选择 CD/DVD-ROM, 点击'挂载 CD/DVD 磁盘' 然后选择一个 ISO 镜像。<br />
<br />
=== 高级设置 ===<br />
高级设置请阅读 [[VirtualBox Extras]].<br />
<br />
==虚拟机上安装 Arch Linux ==<br />
在 VirtualBox 中安装 Arch 非常简单直接,而且最好通过 pacman 安装 Guest Addition,不要使用 VirtualBox 中的 "Install Guest Additions" 或挂载的 ISO 安装。 <br />
<br />
===Guest 附加软件包===<br />
安装 {{Pkg|virtualbox-guest-utils}} <br />
<br />
手动装入内核模块:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
自动装入模块:<br />
在 {{ic|/etc/modules-load.d/}} 中创建文件{{ic|vbox.conf}},加入如下几行:<br />
{{hc|/etc/modules-load.d/virtualbox.conf|<br />
vboxguest<br />
vboxsf<br />
vboxvideo}}<br />
<br />
=== Using USB webcam / microphone ===<br />
<br />
{{Note|You will need to have VirtualBox extension pack installed before following the steps below. See [[VirtualBox_Extras#Extension_pack]] for details.}}<br />
<br />
# Make sure the virtual machine is not running and your webcam / microphone is not being used.<br />
# Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.<br />
# Make sure "Enable USB Controller" is selected. Also make sure that "Enable USB 2.0 (EHCI) Controller" is selected too.<br />
# Click the "Add filter from device" button (the cable with the '+' icon).<br />
# Select your USB webcam/microphone device from the list.<br />
# Now click OK and start your VM.<br />
<br />
=== Using Arch under Virtualbox EFI mode ===<br />
<br />
My experience with this configuration was pretty terrible, but it does work.<br />
<br />
First, {{ic|efibootmgr}} does *not* work. It will appear to work, but all changes it makes appear to be overwritten on reboot. After performing a standard UEFI/GPT installation, reboot and you should get dumped to the EFI shell. Type exit and you will get a menu. Select the Boot Management Manager, Boot Options, Add Boot Option. Use the file browser to find the grub efi file and select it. Add a label if you want. Afterwards, select Change Boot Order from the menu, use arrow keys to select your Arch option, and + to move it up to the top. GRUB should boot by default now.<br />
<br />
{{Note|Another useful way to get back to the EFI menu after autobooting is working is to press the {{Keypress|C}} key inside GRUB and type {{ic|exit}}. Obviously, this will only work with {{ic|grub-efi}}, not {{ic|grub-bios}}.<br><br />
Regenerating the {{ic|grub.cfg}} file may also be required to fix broken UUIDs. Check with the {{ic|lsblk -f}} command that they match.}}<br />
<br />
==Arch Linux 虚拟系统中共享文件夹==<br />
共享文件夹是主机上的 Virtualbox 程序控制。可以添加、自动挂载并设置成只读。主机系统创建的共享文件夹位于 /media/sf_SHAREDFOLDERNAME。要使用共享文件,需要在安装完 Guest Additions 软件包之后执行:<br />
<br />
$sudo groupadd vboxsf<br />
$sudo gpasswd -a $USER vboxsf<br />
<br />
===和主机系统同步日期===<br />
<br />
要同步系统间的日期,<br />
<br />
==== Systemd ====<br />
<br />
下次开机开始同步:<br />
<br />
# systemctl enable vboxservice.service<br />
<br />
立即启动同步:<br />
<br />
# systemctl start vboxservice.service<br />
<br />
== 解决问题 ==<br />
<br />
=== USB subsystem is not working on the host ===<br />
<br />
Sometimes the usb subsystem is not auto-detected resulting in an error, even when the user is in the '''vboxusers''' group. See this topic [https://bbs.archlinux.org/viewtopic.php?id=125785] for details.<br />
<br />
Adding an entry in {{Ic|/etc/fstab}} should resolve this issue:<br />
<br />
none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=664 0 0<br />
<br />
=== Failed to create the host-only network interface ===<br />
<br />
To be able to create a Host-Only Network Adapter or a Bridged Network Adapter the kernel modules {{ic|vboxnetadp}} and {{ic|vboxnetflt}} need to be loaded. It's possible to load these kernel modules manually with<br />
<br />
# modprobe -a vboxnetadp vboxnetflt<br />
<br />
To load them automatically at boot, add a new line for each module to {{ic|/etc/modules-load.d/virtualbox.conf}}:<br />
<br />
vboxdrv<br />
vboxnetadp<br />
vboxnetflt<br />
<br />
{{Note|These used to be added to the {{ic|MODULES}} array in {{ic|/etc/rc.conf}}. This is now deprecated.}}<br />
<br />
More information in [https://bbs.archlinux.org/viewtopic.php?id=130581 this] topic.<br />
<br />
=== WinXP: Bit-depth cannot be greater than 16 ===<br />
<br />
If you are running at 16-bit color depth, then the icons may appear fuzzy/choppy. However, upon attempting to change the color depth to a higher level, the system may restrict you to a lower resolution or simply not enable you to change the depth at all. To fix this, run {{ic|regedit}} add the following key to the Virtual Windows XP registry:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
Then update the color depth in the desktop properties window. If nothing happens, force the screen to redraw through some method (i.e. {{Keypress|Host+F}} to redraw/enter full screen).<br />
<br />
=== Mounting .vdi Images ===<br />
<br />
This just work with '''static''' size vdi images! '''Dynamic size won't''' be easy mountable! First we need one information from your .vdi image:<br />
<br />
$ VBoxManage internalcommands dumphdinfo Arch_64min.vdi |grep offData<br />
Header: offBlocks=4096 offData=69632<br />
<br />
Now, '''add to your''' {{ic|offData}} 32256. e.g. 32256 + 69632 = 101888<br />
<br />
Now you can mount your vdi image:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 Arch_64min.vdi /mnt/<br />
<br />
=== Startup problems because of mount failures ===<br />
<br />
If you experience problems in a [[systemd] setup after a kernel upgrade, you should start the system with ''init=/bin/bash'' (if the emergency shell doesn't work for you).<br />
<br />
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash<br />
<br />
Then mount the ''root''-filesystem with write access:<br />
<br />
# mount / -o remount,rw<br />
<br />
Change /etc/fstab according to [[VirtualBox#Shared Folders as Arch Linux Guest]]. Then exec systemd with in the bash shell:<br />
<br />
# exec /bin/systemd<br />
<br />
=== Copy&Paste not working on Arch Linux Guest ===<br />
<br />
Since updating {{ic|virtualbox-guest-additions}} to version {{ic|4.2.0-2}} copy&paste from Host OS to Arch Linux Guest stopped working. It seems to be due to {{ic|VBoxClient-all}} requiring ''root'' access. In previous versions adding ''VBoxClient-all &'' to ''~/.xinitrc'' was sufficient to make copy&paste work. Update ''~/.xinitrc'' to match {{ic|sudo VBoxClient-all &}} and add the line {{ic|, NOPASSWD: /usr/bin/VBoxClient-all}} to your username in the sudoers file and restart X. It should all work again. The line in the sudoers file should look similar to this:<br />
<br />
# Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password<br />
you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all<br />
<br />
{{Note|Use {{ic|visudo}} to edit the sudoers file. This will check for syntax errors when saving.}}<br />
<br />
==外部链接==<br />
* [http://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=VirtualBox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=254853VirtualBox (简体中文)2013-04-22T02:06:11Z<p>Hang yan: </p>
<hr />
<div>[[Category:Emulators (简体中文)]]<br />
[[Category:Virtualization (简体中文)]]<br />
[[cs:VirtualBox]]<br />
[[en:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
{{Article summary start|摘要}}<br />
{{Article summary text|本文介绍 VirtualBox 基本使用,包括在 Arch 上运行 Virtual Box 软件,在 Virtual Box 中运行 Arch 系统。}}<br />
{{Article summary heading|重要页面}}<br />
{{Article summary link|Official website|https://www.virtualbox.org}}<br />
{{Article summary text|[[Wikipedia:VirtualBox|Wikipedia article]]}}<br />
{{Article summary heading|相关页面}}<br />
{{Article summary wiki|VirtualBox Extras}}<br />
{{Article summary wiki|PhpVirtualBox}}<br />
{{Article summary wiki|VirtualBox Arch Linux Guest On Physical Drive}}<br />
{{Article summary wiki|Advanced VirtualBox Networking}}<br />
{{Article summary wiki|Installing Arch Linux from VirtualBox}}<br />
{{Article summary end}}<br />
{{Translateme (简体中文)}}<br />
{{TranslationStatus (简体中文)|VirtualBox|2012-09-27|225393}}<br />
'''VirtualBox''' 是类似 [[VMware]] 的虚拟 PC 模拟器,处于不断的开发中。使用 [[Qt]] 图形界面,提供了无界面运行和 [[Wikipedia:SDL|SDL]] 命令行工具进行运行管理。它包含'''guest additions'''为一些虚拟系统提供附加功能,包括文件共享、剪贴板和图形加速,支持 “无缝” 窗口整合模式。<br />
<br />
{{Wikipedia|VirtualBox}}<br />
<br />
==在主机上安装==<br />
<br />
[[pacman (简体中文)|安装]] GPL 版本的 {{Pkg|virtualbox}} 软件包。作为依赖安装的 {{pkg|virtualbox-host-modules}} 包含了archlinux 默认内核使用的模块。<br />
<br />
要使用基于 [[Qt]] 的 {{ic|VirtualBox}} 命令,需要安装 {{Pkg|qt4}} 软件包。如果使用简单的基于 SDL 的 {{ic|VBoxSDL}} 命令或者 {{ic|VBoxHeadless}} 命令,则不需要安装 {{Pkg|qt4}}。<br />
<br />
如果使用{{pkg|linux-lts}}内核,需要安装{{pkg|virtualbox-host-modules-lts}}.<br />
<br />
=== 定制内核的主机===<br />
Virtualbox 不需要标准 ARCH 内核也能正常工作在 {{AUR|Linux-ck}} 等定制内核上。为了不让 pacman 同时安装 Arch 内核软件包,需要用 {{Pkg|virtualbox-host-source}} 安装 virtualbox 内核模块, 原理参见 {{Bug|26721}}。<br />
<br />
{{Pkg|virtualbox-host-source}}安装完成后,只要用下面命令生成内核模块:<br />
# dkms install vboxhost/<virtualbox-host-source version> -k <your custom kernel's version>/<your architecture><br />
<br />
然后装载模块:<br />
<br />
# modprobe vboxdrv<br />
<br />
{{注意|(当前不可用) virtualbox 模块将被自动装载和编译, 如果你已经安装了 {{pkg|dkms}} 并把它加入了 DAEMONS.}}<br />
<br />
==== 每次更新定制内核时, 自动重新编译 virtualbox 模块 ====<br />
<br />
{{注意|该功能已经更新, 运行 dkms (非 daemon 方式) 代替了原来的 vboxbuild.}}<br />
这个功能得益于[[AUR]]中的 {{AUR|virtualbox-hook}} . 在 '''virtualbox-hook'''中,每次更新 '''linux-headers'''包之后,[[mkinitcpio]] 上的 '''vbox hook''' 会完成 'automatic re-compilation' .你需要将 'vbox' 加入 /etc/mkinitcpio.conf 中的 HOOKS 数组.同样地,需要加入到 'linux-headers' 里和你自己定制的内核头文件里的 /etc/pacman.conf 中的SyncFirst 数组中以使其生效. <br />
<br />
The hook will call the '''dkms''' command to update the virtualbox modules for the version of your new kernel.<br />
<br />
{{Note|If you are using this functionality it's '''important''' to look at the installation process of the linux (or any other kernel) package. vbox hook will tell you if anything goes wrong.}}<br />
<br />
== 设置 ==<br />
<br />
将需要运行 Virtualbox 的用户名添加到''vboxusers'' [[group|用户组]],文件夹共享和其它功能需要正确的组才能工作。新组设置不会应用到当前会话,请重新登录或者通过命令 {{ic|newgrp}} 或 {{ic|sudo -u ''username'' -s}} 启动一个新环境。<br />
# gpasswd -a ''username'' vboxusers<br />
<br />
Virtual Box 在 Linux 上运行需要使用自己的 [[kernel modules|内核模块]],包括一个必须的'''vboxdrv'''。这个模块必须在虚拟机运行前启动。如果需要,可以在 Arch Linux 启动时自动载入。<br />
<br />
要在启动时自动载入这个模块,请编辑在目录{{ic|/etc/[[Kernel_modules#Loading|modules-load.d]]}} 中新建一个扩展名为{{ic|*.conf}}的文件,(例如virtualbox.conf)。在文件中加入 <br />
vboxdrv<br />
<br />
手动装入模块:<br />
# modprobe vboxdrv<br />
<br />
{{Note| 要自动装载/编译 virtualbox 模块,请将 dkms 加入 DAEMONS}}<br />
<br />
启动管理界面:<br />
$ VirtualBox<br />
<br />
===虚拟系统附加光盘===<br />
“virtualbox” 软件包建议在运行 Virtual Box 的主机系统上安装{{pkg|virtualbox-guest-iso}}。这个包是一个磁盘镜像,用来安装虚拟系统的附加功能。<br />
<br />
===启动 live 系统光盘===<br />
点击'新建' 按钮创建虚拟环境。起个合适的名字然后选择操作系统类型和版本。选择基本内存大小。(大部分操作系统需要至少 512MB)。创建一个新的硬盘镜像(硬盘镜像是一个包含操作系统文件系统和文件的文件)。<br />
<br />
创建完硬盘镜像后,点击'设置', 选择 CD/DVD-ROM, 点击'挂载 CD/DVD 磁盘' 然后选择一个 ISO 镜像。<br />
<br />
=== 高级设置 ===<br />
高级设置请阅读 [[VirtualBox Extras]].<br />
<br />
==虚拟机上安装 Arch Linux ==<br />
在 VirtualBox 中安装 Arch 非常简单直接,而且最好通过 pacman 安装 Guest Addition,不要使用 VirtualBox 中的 "Install Guest Additions" 或挂载的 ISO 安装。 <br />
<br />
===Guest 附加软件包===<br />
安装 {{Pkg|virtualbox-guest-utils}} <br />
<br />
手动装入内核模块:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
自动装入模块:<br />
在 {{ic|/etc/modules-load.d/}} 中创建文件{{ic|vbox.conf}},加入如下几行:<br />
{{hc|/etc/modules-load.d/virtualbox.conf|<br />
vboxguest<br />
vboxsf<br />
vboxvideo}}<br />
<br />
=== Using USB webcam / microphone ===<br />
<br />
{{Note|You will need to have VirtualBox extension pack installed before following the steps below. See [[VirtualBox_Extras#Extension_pack]] for details.}}<br />
<br />
# Make sure the virtual machine is not running and your webcam / microphone is not being used.<br />
# Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.<br />
# Make sure "Enable USB Controller" is selected. Also make sure that "Enable USB 2.0 (EHCI) Controller" is selected too.<br />
# Click the "Add filter from device" button (the cable with the '+' icon).<br />
# Select your USB webcam/microphone device from the list.<br />
# Now click OK and start your VM.<br />
<br />
=== Using Arch under Virtualbox EFI mode ===<br />
<br />
My experience with this configuration was pretty terrible, but it does work.<br />
<br />
First, {{ic|efibootmgr}} does *not* work. It will appear to work, but all changes it makes appear to be overwritten on reboot. After performing a standard UEFI/GPT installation, reboot and you should get dumped to the EFI shell. Type exit and you will get a menu. Select the Boot Management Manager, Boot Options, Add Boot Option. Use the file browser to find the grub efi file and select it. Add a label if you want. Afterwards, select Change Boot Order from the menu, use arrow keys to select your Arch option, and + to move it up to the top. GRUB should boot by default now.<br />
<br />
{{Note|Another useful way to get back to the EFI menu after autobooting is working is to press the {{Keypress|C}} key inside GRUB and type {{ic|exit}}. Obviously, this will only work with {{ic|grub-efi}}, not {{ic|grub-bios}}.<br><br />
Regenerating the {{ic|grub.cfg}} file may also be required to fix broken UUIDs. Check with the {{ic|lsblk -f}} command that they match.}}<br />
<br />
==Arch Linux 虚拟系统中共享文件夹==<br />
共享文件夹是主机上的 Virtualbox 程序控制。可以添加、自动挂载并设置成只读。主机系统创建的共享文件夹位于 /media/sf_SHAREDFOLDERNAME。要使用共享文件,需要在安装完 Guest Additions 软件包之后执行:<br />
<br />
$sudo groupadd vboxsf<br />
$sudo gpasswd -a $USER vboxsf<br />
<br />
===和主机系统同步日期===<br />
<br />
要同步系统间的日期,<br />
<br />
==== Systemd ====<br />
<br />
下次开机开始同步:<br />
<br />
# systemctl enable vboxservice.service<br />
<br />
立即启动同步:<br />
<br />
# systemctl start vboxservice.service<br />
<br />
== 解决问题 ==<br />
<br />
=== USB subsystem is not working on the host ===<br />
<br />
Sometimes the usb subsystem is not auto-detected resulting in an error, even when the user is in the '''vboxusers''' group. See this topic [https://bbs.archlinux.org/viewtopic.php?id=125785] for details.<br />
<br />
Adding an entry in {{Ic|/etc/fstab}} should resolve this issue:<br />
<br />
none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=664 0 0<br />
<br />
=== Failed to create the host-only network interface ===<br />
<br />
To be able to create a Host-Only Network Adapter or a Bridged Network Adapter the kernel modules {{ic|vboxnetadp}} and {{ic|vboxnetflt}} need to be loaded. It's possible to load these kernel modules manually with<br />
<br />
# modprobe -a vboxnetadp vboxnetflt<br />
<br />
To load them automatically at boot, add a new line for each module to {{ic|/etc/modules-load.d/virtualbox.conf}}:<br />
<br />
vboxdrv<br />
vboxnetadp<br />
vboxnetflt<br />
<br />
{{Note|These used to be added to the {{ic|MODULES}} array in {{ic|/etc/rc.conf}}. This is now deprecated.}}<br />
<br />
More information in [https://bbs.archlinux.org/viewtopic.php?id=130581 this] topic.<br />
<br />
=== WinXP: Bit-depth cannot be greater than 16 ===<br />
<br />
If you are running at 16-bit color depth, then the icons may appear fuzzy/choppy. However, upon attempting to change the color depth to a higher level, the system may restrict you to a lower resolution or simply not enable you to change the depth at all. To fix this, run {{ic|regedit}} add the following key to the Virtual Windows XP registry:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
Then update the color depth in the desktop properties window. If nothing happens, force the screen to redraw through some method (i.e. {{Keypress|Host+F}} to redraw/enter full screen).<br />
<br />
=== Mounting .vdi Images ===<br />
<br />
This just work with '''static''' size vdi images! '''Dynamic size won't''' be easy mountable! First we need one information from your .vdi image:<br />
<br />
$ VBoxManage internalcommands dumphdinfo Arch_64min.vdi |grep offData<br />
Header: offBlocks=4096 offData=69632<br />
<br />
Now, '''add to your''' {{ic|offData}} 32256. e.g. 32256 + 69632 = 101888<br />
<br />
Now you can mount your vdi image:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 Arch_64min.vdi /mnt/<br />
<br />
=== Startup problems because of mount failures ===<br />
<br />
If you experience problems in a [[systemd] setup after a kernel upgrade, you should start the system with ''init=/bin/bash'' (if the emergency shell doesn't work for you).<br />
<br />
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash<br />
<br />
Then mount the ''root''-filesystem with write access:<br />
<br />
# mount / -o remount,rw<br />
<br />
Change /etc/fstab according to [[VirtualBox#Shared Folders as Arch Linux Guest]]. Then exec systemd with in the bash shell:<br />
<br />
# exec /bin/systemd<br />
<br />
=== Copy&Paste not working on Arch Linux Guest ===<br />
<br />
Since updating {{ic|virtualbox-guest-additions}} to version {{ic|4.2.0-2}} copy&paste from Host OS to Arch Linux Guest stopped working. It seems to be due to {{ic|VBoxClient-all}} requiring ''root'' access. In previous versions adding ''VBoxClient-all &'' to ''~/.xinitrc'' was sufficient to make copy&paste work. Update ''~/.xinitrc'' to match {{ic|sudo VBoxClient-all &}} and add the line {{ic|, NOPASSWD: /usr/bin/VBoxClient-all}} to your username in the sudoers file and restart X. It should all work again. The line in the sudoers file should look similar to this:<br />
<br />
# Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password<br />
you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all<br />
<br />
{{Note|Use {{ic|visudo}} to edit the sudoers file. This will check for syntax errors when saving.}}<br />
<br />
==外部链接==<br />
* [http://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=252932Emacs (简体中文)2013-04-05T07:54:58Z<p>Hang yan: </p>
<hr />
<div>[[Category:Text editors (简体中文)]]<br />
[[en:Emacs]]<br />
[[sr:Emacs]]<br />
{{TranslationStatus (简体中文)|Emacs|2012-10-17|229169}}<br />
{{Translateme (简体中文)}}<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Tutorial on acquiring and using the Emacs text editor.}}<br />
{{Article summary end}}<br />
<br />
[[Wikipedia:Emacs|Emacs]]是一个扩展方便,定制能力强,文档丰富的动态交互编辑器。Emacs的核心构建在[[Wikipedia:Emacs Lisp|Emacs Lisp]]解释器之上,其中Emacs Lisp是大部分Emacs的内建函数和拓展模块的实现语言。Emacs可以在命令行界面下(CLI)工作良好,在图形界面系统下,使用GTK作为默认的图形界面构建工具。在文本编辑能力上,Emacs常常拿来和[[vim]]比较。<br />
<br />
{{Note|入门建议直接使用starterkit扩展。本文档实际帮助不大}}<br />
<br />
== 安装 ==<br />
Emacs有众多变体发行版本(有时候称作''emacsen''). 最常见的莫过于 [http://www.gnu.org/software/emacs/ GNU Emacs],在[[Official Repositories]]可以找到<br />
<br />
$ pacman -S emacs<br />
<br />
另外一个常见的变体就是{{Pkg|xemacs}}.<br />
<br />
== 快速入门 ==<br />
一般印象是Emacs十分复杂,学习曲线陡峭,但很多资深学习者并不这样认为,反而认为其非常易懂和可定制。因为其源码和配置文件语义化程度较高。简单了解下自定义和高扩展带来的好处花不了多少时间。何况还有很多成熟的功能拓展模块,很方便添加,可以让Emacs为任何文本编辑的需求配置强大的环境。<br />
<br />
Emacs自带一个入门教程,你可以点击欢迎界面上的第一个链接来打开它; 或者从菜单栏中选择''Help->Emacs Tutorial'',或者按'F1'键然后按't'. 我们设计这篇文章来为你在Emacs入门学习中提供额外的资源。<br />
<br />
Emacs也包括一系列引用链接,既有适合初学者的内容,也有骨灰级玩家所喜爱的.参见{{ic|/usr/share/emacs/<version>/etc/refcards/}} (将<version>换成你的emacs版本).<br />
<br />
===运行Emacs===<br />
====图形界面下打开方式====<br />
图形界面下可以直接点击图标打开。<br />
<br />
====虚拟终端下的常见方式====<br />
打开Emacs:<br />
<br />
$ emacs<br />
<br />
不打开图形界面,直接在终端中运行:<br />
<br />
$ emacs -nw<br />
<br />
也可以马上打开一篇文章:<br />
<br />
$ emacs filename.txt<br />
<br />
=====无色运行=====<br />
默认的emacs会带有颜色主题,如果不需要,可以关闭之:<br />
<br />
$ emacs -nw --color=no<br />
<br />
<br />
====作为守护进程====<br />
Emacs由于每次启动都需要加载大量自定义的配置文件,所以打开时候会有点慢。从Emacs23开始, Emacs可以以守护进程的形式运行,这样每个用户都可以链接到Emacs。以守护进程运行Emacs:<br />
<br />
$ emacs --daemon<br />
<br />
你可能在启动时打开一个守护进程,然后再将守护进程链接到窗口。另外,也可以将图形和终端客户端同时链接到守护进程上,这样启动图形界面速度就很快了。<br />
<br />
如果你仅仅想链接到守护进程,用下面的命令(注意,在桌面环境下这个命令会打开一个图形客户端,而在像tty这种命令行下,它会打开一个命令行版的emacs):<br />
<br />
$ emacsclient<br />
<br />
如果你想在桌面环境下打开一个命令行版的emacs,使用下面的命令:<br />
<br />
$ emacsclient -t<br />
<br />
另外,你可以在后面加上 {{ic|-a ""}} 参数.<br />
现在,你第一次使用这个命令时,它会把emacs作为守护进程来启动,它会留在后台以加快以后的启动速度(也会记住缓冲区).<br />
<br />
更聪明点,你可以在.bashrc中加上下面的别名:<br />
<br />
$ alias e0='emacs --daemon' #启动守护进程<br />
$ alias e1='emacsclient -t -a ""' #在终端中开启emacs<br />
$ alias e2='emacsclient -c -a ""' #启动emacs图形界面<br />
<br />
<br />
在[[xfce]]桌面环境中,如果你想使用 emacsclient -c 来代替 emacs %f 打开一个新文件, 你可以修改你的 /usr/share/applications/emacs.desktop 文件,把下面这一行<br />
<br />
$ Exec=emacs %f<br />
<br />
修改为<br />
<br />
$ Exec=emacsclient -c<br />
<br />
使用这种方法,每次你打开一个文件时就只会启动客户端,因此速度非常快!<br />
<br />
===基本术语和约定===<br />
Emacs使用一些刚开始看起来很奇怪的术语和约定,我们会在合适的时候介绍。但是,对于部分术语,我们必须要在前面介绍,因为它们对于使用Emacs来说是非常基础的。<br />
<br />
第一个要介绍的术语是''缓冲区''的概念。一个缓冲区就是Emacs中的数据的一种表示方式,比如,当使用Emacs打开一个文件时,这个文件从磁盘中被读出来,它的内容被存储在了缓冲区里面,它的内容可以在这个缓冲区里面被编辑并且可以重新写进磁盘中。缓冲区中的内容不仅仅可以是文本,也可以是图片和widget。现在,让缓冲区可以显示应用程序的工作正在进行!换个角度思考,在磁盘中数据是以文件形式保存的,而在Emacs中,数据是以缓冲区的形式存在的。<br />
<br />
在Emacs中,对于按键组合的约定你可能很陌生。比如:<br />
<br />
'''C-x''' 代表 Control-x<br />
<br />
'''M-x''' 代表 Meta-x<br />
<br />
{{Note|'Meta'一般代表Alt键,也可以用Esc键替代。}}<br />
<br />
举个例子,退出Emacs使用下面的按键组合'''C-x C-c'''。这个可以读做,"按住Ctrol键再按'x',释放,再按住Control键再按'c'。虽然Emacs提供了一个菜单栏,但是强烈建议学习使用按键组合。这个指南将参考Emacs的按键绑定的约定。<br />
<br />
===移动===<br />
光标移动和其它图形编辑器非常类似,鼠标和方向键可以用来改变光标(在Emacs中称为''点'')的位置。在Emacs中,方向键代表的标准移动命令也有其它辅助的绑定。向前(forward)移动一个字符,使用 '''C-f''',向后(back)移动一个字符,使用'''C-b'''。 '''C-n''' 和 '''C-p''' 分别用于移动到下(next)一行和移动到上(previous)一行。再声明一下,强烈推荐使用组合键而不是使用方向键和鼠标。<br />
<br />
可以想像,Emacs提供了更多的光标高级移动命令,包括移动一个单词和一个句子。 '''M-f''' 表示光标向前移动一个单词, '''M-b''' 表示向后移动一个单词。类似地,'''M-e''' 把光标移动到一个句子的末尾(end), '''M-a''' 移动到句子的开头。<br />
<br />
直到现在,所有的移动命令都是和光标有关的。'''M-<''' 表示把光标移动到缓冲区的开头,和它相反的是 '''M->''', 把光标移动到缓冲区的末尾。要把光标移动到某一特定行,使用'''M-g g'''. '''M-g g''' 会提示输入行号。同样,要移动到一行的开头或者结尾,分别使用'''C-a''' 和 '''C-e'''。<br />
<br />
{{Note|这些命令(实际上是全部命令)的绑定,在不同的模式(mode)中,''稍微''会有不同。然而,覆盖的命令提供不同的功能这种情况很少见。更多信息请看[[Emacs#Modes|Modes]]。}}<br />
<br />
===文件和缓冲区===<br />
Emacs 提供了一系列命令来对文件操作,其中最常用的会在这里详细说明。'''C-x C-f''' 用来打开一个文件(在Emacs中叫做'查找文件')。如果指定的文件不存在,Emacs会打开一个空的缓冲区。保存一个缓冲区会创建一个包含缓冲区内容的文件。'''C-x C-s''' 就是用来保存缓冲区的。要保存一个文件名不一样的缓冲区,使用'''C-x C-w''' (这其实是'write-file'这条命令的助记符), 它会在写入磁盘之前提示输入新文件名。也可以使用'''C-x s'''来保存所有的缓冲区, 如果某个缓冲区在上次保存之后被修改了,则会提示进行哪项操作。<br />
<br />
{{Note|如果指向某个文件的缓冲区还在打开的话,'''C-x C-f''' 是不会重新从磁盘中读取文件的。要从磁盘中重新读取文件,先使用'''C-x k'''关掉缓冲区,再使用'''C-x C-f'''打开文件,或者使用'''M-x revert-buffer'''.}}<br />
<br />
很多互动的命令,比如"find-file" 或者 "write-file" 会在Emacs窗口的底部栏提示输入。这栏称为''minibuffer''。和很多*nix shell一样,minibuffer支持很多基本的操作和TAB补全。按两下'''<TAB>'''可以显示一个补全的选项列表,并且,如果你喜欢,可以用鼠标从列表中选择。minibuffer的补全在很多输入(包括命令和文件名)中都可以用。<br />
<br />
minibuffer也提供一个记住历史的特性。通过'''Up Arrow''' 或者 '''C-p'''可以取得这条命令的上一个条目.<br />
<br />
要在任意时刻退出minibuffer,使用'''C-g'''.<br />
<br />
打开几个文件后,切换缓冲区是非常必要的。打开一个指向那个缓冲区的文件可以切换到那个缓冲区。但是这不是最高效的方法。Emacs提供'''C-x b'''来提示要显示的新缓冲区(这里可以使用TAB补全)。输入一个不存在的缓冲区,则会新建一个空的缓冲区。<br />
<br />
{{Note|要切换到上一个缓冲区,使用'''C-x b <RET>''', 因为上一个缓冲区是默认的缓冲区。}}<br />
<br />
使用'''C-x C-b'''可以显示所有打开缓冲区的列表。如果某个缓冲区不需要使用了,使用'''C-x k'''来关掉它。<br />
<br />
===编辑===<br />
Emacs 内建有很多编辑命令。可能最重要的还没有介绍的是'undo',它的快捷键为 "C-_" 或者 "C-/" .移动光标的命令通常都有对应的删除字符的命令。例如, '''M-<backspace>''' 可以用来删除一个光标后的词,'''M-d'''可以用来删除光标前面的一个词。删除光标至行尾或者句尾的字符可以分别用'''C-k''' 或者 '''M-k'''。<br />
<br />
通常我们都约定一行不能超过80个字符。这是为了代码的可读性,尤其是一行中的字符可能会接触到窗口边缘。在Emacs,自动地插入或者删除换行符称为''filling''。我们可以用 '''M-q''' 重整当前的段落(重新分配换行符,删除段落中多余的空格和tab键)<br />
<br />
Characters and words can be transposed using '''C-t''' and '''M-t''', respectively. For example: <code>Hello World!</code> → <code>World! Hello</code><br />
<br />
The case of words is also readily adjustable. '''M-l''' downcases a word from point (<code>HELLO</code> → <code>hello</code>); '''M-u''' upcases a word from point (<code>hello</code> → <code>HELLO</code>) and '''M-c''' capitalizes the first character of a word from point while downcasing the remainder (<code>hElLo</code> → <code>Hello</code>).<br />
<br />
===移除,召回和区域===<br />
A region is a section of text between two positions. One of those positions is referred to as ''mark'', and the other is point. '''C-<SPC>''' is used to set the position of mark, after which point can be moved to create a region. Within GNU Emacs 23.1 onwards, this region is visible by default. There are a number of commands which act upon regions, among the most commonly used are ''killing'' commands.<br />
<br />
In Emacs, cut and paste are referred to as ''kill'' and ''yank'', respectively. Many commands which delete more than one character (including many of those in the above section, such as '''C-k''' and '''M-d''') actually cut the text and append it to what is known as the ''kill-ring''. The kill-ring is simply a list of killed text. The kill-ring stores up to the last 60 kills by default. Successive kills are concatenated and stored at the head of the list.<br />
<br />
'''C-w''' and '''M-w''' can be used to kill and copy a region, respectively.<br />
<br />
To insert killed text into a buffer (known as 'yanking'), use '''C-y'''. '''C-y''' can be used multiple times in succession to yank text repeatedly. As mentioned, previous kills are stored in a list, however '''C-y''' only retrieves the first of them. The earlier kills can be accessed via '''M-y'''. This will remove the text inserted by 'yank' initially, replacing it with the text killed earlier. '''M-y''' must be used immediately following '''C-y''' and can be used in many times succession to cycle through the kill-ring.<br />
<br />
===查找和替换===<br />
Searching for a string is common practise in text-editing. This can be performed using '''C-s''' (to search forward) or '''C-r''' (to search backward). These commands prompt for the string for which to search. Searching is performed incrementally, and so it will match the next (or previous) occurrence as you type. To move to the next or previous match, press '''C-s''' or '''C-r''' again, respectively. Once a match has been found, '''<RET>''' can be used to end the search. Alternatively, should you wish to return to the location you initiated the search, use '''C-g'''.<br />
<br />
Once a search is completed (i.e., was not aborted with '''C-g''' or similar), the string which was searched for will be the default for any following search. To make use of this, press '''C-s C-s''' or '''C-r C-r''' to search forward or backward again, respectively.<br />
<br />
Regular Expression searches behave identically to the searching described above except for the command to initiate the search. Use '''C-M-s''' or '''C-M-r''' to initiate a regexp search forward or backward, respectively. Once a Regular Expression search has commenced, '''C-s''' and '''C-r''' can be used to search forward or backward, just as with string searches.<br />
<br />
In addition to searching, it is also possible to perform string and regular expression replacement (via '''M-%''' and '''C-M-%''', respectively). Prompts are provided for both the initial and replacement text, and then another prompt for the action to perform on the highlighted match. Although many options are available (the full list is available by pressing '''?'''), the most commonly used are '''y''', to perform replacement, '''n''', to skip this match, and '''!''' to replace this, and all following matches.<br />
<br />
===缩进和前缀参数===<br />
Indentation is usually performed with either '''<TAB>''', to indent a single line, or with '''C-M-\''', to indent a region.<br />
<br />
Exactly how text is indented usually depends on the ''major-mode'' which is active. Major-modes often define indentation styles specialising in indenting a certain type of text. (See [[Emacs#Modes|Modes]] for more information.)<br />
<br />
In some cases, a suitable major-mode may not exist for a file type, in which case, manual indentation may be necessary. Create a region (see [[Emacs#Killing, yanking and regions|Killing, yanking and regions]]) then perform indentation with '''C-u <n> C-x <TAB>''' (where '<n>' is the number of columns which the text within the region should be indented). For example:<br />
<br />
Increase the region's indentation by four columns:<br />
<br />
C-u 4 C-x <TAB><br />
<br />
Decrease the region's indentation by two columns.<br />
<br />
C-u -2 C-x <TAB><br />
<br />
{{Note|The trick behind this is '''C-u''', which corresponds to the 'universal-argument' command. Providing a 'universal-argument' is a way to provide more information to a command (this information is referred to as a 'prefix argument'). In this case, we provided the amount of indentation desired to the command invoked by '''C-x <TAB>'''. Without providing an argument, '''C-x <TAB>''' will only increase indentation by 1 column.}}<br />
<br />
===窗口和外框架===<br />
Emacs is designed for convenient editing of many files at a time. This is achieved by dividing the Emacs interface into three levels. Namely, buffers, which have already been introduced, as well as ''windows'' and ''frames''.<br />
<br />
A ''window'' is a viewport used for displaying a buffer. A window can display only one buffer at a time, however one buffer can be displayed in many windows. Beneath each window exists a ''mode-line'', which displays information for that buffer.<br />
<br />
A ''frame'' is an Emacs "window" (in standard terminology. i.e., 'window' in the sense of the modern desktop paradigm) which contains a title bar, menu bar and one or more 'windows' (in Emacs terminology. i.e., the above definition of 'window').<br />
<br />
From now on the definition of these terms as they exist in Emacs will be used.<br />
<br />
To split the window vertically or horizontally, use '''C-x 2''' or '''C-x 3''', respectively. This has the effect of creating another window in the current frame. To cycle between multiple windows, use '''C-x o'''.<br />
<br />
The opposite of splitting a window, is deleting it. To delete the current window, use '''C-x 0''' and '''C-x 1''' to delete all windows except the current.<br />
<br />
As with windows, it is also possible to create and delete frames. '''C-x 5 2''' creates a frame. With '''C-x 5 0''' to delete the current frame and '''C-x 5 1''' to delete all except the current frame.<br />
<br />
{{Note|These commands do not affect buffers. For example, deleting a window does not kill the buffer it displays.}}<br />
<br />
===获得帮助===<br />
Emacs在设计的时候就自文档化了。比如,要查看一个命令的名字或者它的键的绑定,Emacs提供了很多帮助信息。下面是列出来的最有用的一些帮助命令:<br />
<br />
'''C-h t''' 启动Emacs官方教程<br />
<br />
'''C-h b''' 列出来所有的有效键绑定<br />
<br />
'''C-h k''' 查找一个键被绑定在了哪个命令上<br />
<br />
'''C-h w''' 查找一个命令被绑定在了哪些键上<br />
<br />
'''C-h a''' 查找一个匹配一段描述的命令<br />
<br />
'''C-h m''' 显示当前激活的所有模式的信息<br />
<br />
'''C-h f''' 显示给定函数的描述信息<br />
<br />
===模式===<br />
An Emacs mode is an extension written in Emacs Lisp that controls the behaviour of the buffer it is attached to. Usually it provides indentation, syntax highlighting and keybindings for editing that form of text. Sophisticated modes can turn Emacs into a full-fledged IDE (Integrated Development Environment). Emacs will generally use a file's extension to determine which mode should be loaded.<br />
<br />
Useful modes for editing shell scripts are sh-mode, line-number-mode and column-number-mode. They can be used in parallel and are invoked by:<br />
<br />
'''M-x sh-mode <RET>'''<br />
<br />
'''M-x column-number-mode <RET>'''<br />
<br />
line-number-mode is enabled by default, though, it can be toggled on/off by issuing the command again:<br />
<br />
'''M-x line-number-mode <RET>'''<br />
<br />
sh-mode is a ''major-mode''. Major-modes adjust Emacs, and often also provide a specialised set of commands, for editing a particular type of text. Only one major-mode can be active in each buffer. In addition to syntax highlighting, and indentation support, sh-mode defines several commands to help write shell scripts. The following shows a few of those commands:<br />
<br />
'''C-c (''' Insert a function definition<br />
<br />
'''C-c C-f''' Insert a 'for' loop<br />
<br />
'''C-c TAB''' Insert an 'if' statement<br />
<br />
'''C-c C-w''' Insert a 'while' loop<br />
<br />
'''C-c C-l''' Insert an indexed loop from 1 to n<br />
<br />
'line-number-mode' and 'column-number-mode', are ''minor-modes''. Minor-modes can be used to extend a major-mode and any number of minor-modes can be enabled at once.<br />
<br />
==提示和技巧==<br />
While the previous sections has given an overview of the basic editing commands available, it has not given an indication of the possibilities of Emacs. This section will cover some more advanced techniques and functionality.<br />
<br />
===TRAMP===<br />
TRAMP (Transparent Remote Access, Multiple Protocols) is an extension which, as its name suggests, provides transparent access to remote files across a number of protocols. When prompted for a filename, entering a specific form will invoke TRAMP. Some examples:<br />
<br />
To prompt for the root password before opening /etc/hosts with root permissions:<br />
<br />
C-x C-f /su::/etc/hosts<br />
<br />
To connect to 'myhost' as 'myuser' via SSH and open the file ~/example.txt:<br />
<br />
C-x C-f /ssh:myuser@myhost:~/example.txt<br />
<br />
The path for TRAMP is typically of the form '/[protocol]:[[user@]host]:<file>'. TRAMP supports much more than the examples above might indicate. For more information refer to the TRAMP info manual, which is distributed with Emacs.<br />
<br />
===键盘宏和寄存器===<br />
This section will provide a practical demonstration of the use of a couple of more powerful editing features. Namely, ''keyboard macros'' and ''registers''.<br />
<br />
The aim will be to produce a listing of a series of characters and their corresponding position in this list. While it is possible to format each of them by hand, this would be slow and error-prone. Alternatively, some of Emacs' more powerful editing functionality could be leveraged. Before describing a solution, some details behind the techniques which will be used follow.<br />
<br />
The first feature which will be introduced is ''registers''. Registers are used to store and retrieve a variety of data types ranging from numbers to window configurations. Each register is given a name of a single character: this character is used to access the register.<br />
<br />
The other which will be demonstrated is ''keyboard macros''. A keyboard macro stores a sequence of commands so they can be easily repeated later. These changes will now be performed step-by-step.<br />
<br />
Starting with a buffer containing our set of characters:<br />
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br />
<br />
Prepare a register by invoking the `number-to-register' command ('''C-x r n''') then storing the number '0' in register 'k':<br />
<br />
C-x r n k<br />
<br />
With point at the beginning of the buffer, start a keyboard macro ('''C-x (''') and begin to format the characters:<br />
<br />
C-x ( C-f M-4 .<br />
<br />
Insert ('''C-x r i''') and increment ('''C-x r +''') the register 'k'. The prefix argument ('''C-u''') is used to leave point positioned after the inserted text:<br />
<br />
C-u C-x r i k C-x r + k<br />
<br />
Complete the formatting by inserting a newline. Emacs can then repeat that process, beginning from the point where we started defining the keyboard macro, for the rest of the characters. '''C-x e''' completes then invokes the keyboard macro. The prefix argument, '''M-0''', causes the macro to repeat until it comes across an error. In this case it aborts once it reaches the end of the buffer.<br />
<br />
<RET> M-0 C-x e<br />
<br />
The result:<br />
<br />
A....0<br />
B....1<br />
C....2<br />
[...]<br />
x....49<br />
y....50<br />
z....51<br />
<br />
===正则表达式===<br />
From the Emacs Manual: "A regular expression, or ''regexp'' for short, is a pattern that denotes a (possibly infinite) set of strings." This section will not go into any detail regarding regular expressions themselves (as there is simply too much to cover). It will however provide a quick demonstration of their power. See [http://www.gnu.org/software/emacs/manual/html_node/elisp/Regular-Expressions.html#Regular-Expressions Regular Expressions] section in the Emacs Manual for further reading.<br />
<br />
Given the same scenario presented above: A list of characters which are to be formatted to represent their respective position in the list. (see [[Emacs#Keyboard macros and registers|Keyboard macros and registers]]). Again, starting with a buffer containing.<br />
<br />
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br />
<br />
At the beginning of the buffer, use '''C-M-%''' (if the key-sequence is difficult to perform, it may be more comfortable to use '''M-x query-replace-regexp'''). At the prompt:<br />
\(.\)<br />
which simply matches one character. Then, when prompted for the replacement:<br />
\1....\#^J<br />
{{Note|'^J' represents where a newline should be placed, it should not be entered into the prompt. The newline must instead be inserted literally using '''C-q C-j'''.}}<br />
The replacement expression reads: "Insert the matched text between the first set of parentheses (in this case, a single character), followed by 4 periods then insert an automatically incremented number followed by a newline.<br />
<br />
Finally, press '''!''' to apply this across the entire buffer. All of the formatting that was performed in the previous section was performed with a single regexp replacement.<br />
<br />
===定制===<br />
Emacs can configured by editing '~/.emacs' or using '''M-x customize'''. This section will focus on editing ~/.emacs by hand, and provide some example customizations to demonstrate commonly-configured aspects of Emacs. The customize command provides a simple interface to make adjustments, though it may become restricting as you grow more familiar with Emacs.<br />
<br />
All of the examples here can be performed while Emacs is running. To evaluate the expression within Emacs, use:<br />
<br />
'''C-M-x''' with point anywhere within the expression.<br />
<br />
or<br />
<br />
'''C-x C-e''' with point following the last ')'<br />
<br />
For some users, typing 'yes' and 'no' in prompts can quickly become tiring. To instead use the 'y' and 'n' keys at these prompts:<br />
<br />
(defalias 'yes-or-no-p 'y-or-n-p)<br />
<br />
To stop the cursor blinking, use:<br />
<br />
(blink-cursor-mode -1)<br />
<br />
Similarly, to enable column-number-mode, as discussed in the previous section:<br />
<br />
(column-number-mode 1)<br />
<br />
The similarities between the previous two commands are not a coincidence: blink-cursor-mode and column-number-mode are both minor-modes. As a rule, minor-modes can be enabled given positive argument or disabled with a negative argument. Should the argument be omitted, the minor-mode will be toggled on/off.<br />
<br />
Here are some more examples of minor-modes. The following will disable the scroll bars, menu-bar and tool-bar, respectively.<br />
<br />
(scroll-bar-mode -1)<br />
(menu-bar-mode -1)<br />
(tool-bar-mode -1)<br />
<br />
The variable, 'auto-mode-alist', can be modified to change the major-mode used by default for certain file names. The following example will make the default major-mode for '.tut' and '.req' files 'text-mode'.<br />
<br />
(setq auto-mode-alist<br />
(append<br />
'(("\\.tut$" . text-mode)<br />
("\\.req$" . text-mode))<br />
auto-mode-alist))<br />
<br />
Settings can also be applied on a per-mode basis. A common method for this is to add a function to a ''hook''. For example, to force indentation to use spaces instead of tabs, but only in text-mode:<br />
<br />
(add-hook 'text-mode-hook (lambda () (setq indent-tabs-mode nil)))<br />
<br />
Similarly, to only use spaces for indentation everywhere:<br />
<br />
(setq-default indent-tabs-mode nil)<br />
<br />
Keybindings can be adjusted in two ways. The first of which is 'define-key'. 'define-key' creates a keybinding for a command but only in one mode. The example below will make '''F8''' delete any whitespace from the end of each line of a 'text-mode' buffer:<br />
<br />
(define-key text-mode-map (kbd "<f8>") 'delete-trailing-whitespace)<br />
<br />
The other method is 'global-set-key'. This is used to bind a key to a command everywhere. To bind 'query-replace-regexp' ('''C-M-%''') to '<f7>'.<br />
<br />
(global-set-key (kbd "<f7>") 'query-replace-regexp)<br />
<br />
Binding a command to an alternate key does not replace any existing bindings. Which is to say, 'query-replace-regexp' would be bound to both '''F7''' and '''C-M-%''' after the above example.<br />
<br />
Almost anything within Emacs can be configured. Browsing through the [http://emacswiki.org/ Emacs Wiki] should give a solid place to start.<br />
<br />
=== 拓展模块 ===<br />
<br />
While Emacs includes hundreds of modes, libraries and other extensions, there are many more available to further Emacs' capabilities. The majority of these come with instructions detailing any changes needed to be made to ~/.emacs. These instructions are generally found in the comment block at the beginning of an elisp source file, or in a README (or similar) should the extension consist of multiple source files.<br />
<br />
A number of popular extensions are available as packages in the 'community' repository, and more still are available via the [[AUR]]. The name of such packages have a 'emacs-' prefix (for example, emacs-lua-mode). In many cases, the changes which need to be made to ~/.emacs are shown during the installation of the package.<br />
<br />
Should instructions describing how to activate a specific extension not be available in the aforementioned location(s), check for a corresponding page in the [http://emacswiki.org/ Emacs Wiki], which will almost certainly provide an example configuration. The Emacs Wiki is also an excellent resource for discovering even more extensions.<br />
<br />
You can also use the [http://tromey.com/elpa/ Emacs Lisp Package Archive (ELPA)] to automatically install packages. See the website for instructions. ELPA is included with Emacs 24 (the newest version of Emacs); it is an accepted part of the Emacs ecosystem.<br />
<br />
== 疑难杂症 ==<br />
<br />
===彩色输出的问题===<br />
By default, the Emacs shell will show raw escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{ic|~/.emacs}} amends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===菜单显示为空===<br />
A bug exists in GNU Emacs 23.1 (using the GTK toolkit) which may cause some menus to appear empty. This appears to be fixed in Emacs' CVS trunk. The corresponding [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550541 Debian bug report] contains a workaround.<br />
<br />
=== X 窗口下的字符显示问题 ===<br />
当你使用X窗口启动emacs时,如果发现主窗口中的所有字符都是黑框白块(就像你没有安装正确的字体看到的字符一样),那么你需要安装 {{pkg|xorg-fonts-75dpi}} 或者 {{pkg|xorg-fonts-100dpi}} 并且重启X窗口。<br />
<br />
=== 启动速度慢 ===<br />
Slow startup times are often caused by one of two things.<br />
<br />
To determine which it might be, run Emacs with:<br />
<br />
$ emacs -q<br />
<br />
If Emacs still starts slowly, refer to [[Emacs#Incorrect network configuration|Incorrect network configuration]]. If not, it is almost certainly a [[Emacs#Init file loads slowly|problem in your .emacs]].<br />
<br />
====错误的网络配置====<br />
<br />
Mistakes, particularly in /etc/hosts, will often result in a 5+ second delay when starting Emacs. Refer to '[[Configuring_network#Set_the_hostname|set the hostname]]' in the network configuration guide for information.<br />
<br />
====初始化文件加载慢====<br />
<br />
A simple way to search for the cause is to comment-out (i.e., prefix lines with ';') suspect sections of your ~/.emacs (or ~/.emacs.d/init.el) then start Emacs again to see if there's any change. Keep in mind use of "require" and "load" can slow the startup down, especially when used with larger extensions. They should, as a rule, only be used when their target is either: needed once Emacs starts or provides little more than "autoloads" for an extension. Otherwise, use the 'autoload function directly. For example, instead of:<br />
<br />
(require 'anything)<br />
<br />
you might use:<br />
<br />
(autoload 'anything "anything" "Select anything" t)<br />
<br />
=== 不能打开文件: ... ===<br />
<br />
The most common cause of this error is the 'load-path' variable not including the path to the directory within which the extension is located. To solve this, add the appropriate path to the list to be searched prior to attempting to load the extension:<br />
<br />
(add-to-list 'load-path "/path/to/directory/")<br />
<br />
When attempting to use packages for extensions and Emacs has been configured with a prefix other than '/usr', the load-path will need to be updated. Place the following in ~/.emacs prior to the instructions provided by the package:<br />
<br />
(add-to-list 'load-path "/usr/share/emacs/site-lisp")<br />
<br />
If compiling Emacs by hand, keep in mind that the default prefix is '/usr/local'.<br />
<br />
== 替代方案 ==<br />
<br />
There are numerous implementations of Emacs. GNU/Emacs is probably the most popular. <br><br />
Lighter Emacs compatibile alternatives can be found in Arch repositories or in [https://aur.archlinux.org/ AUR].<br />
<br />
=== mg ===<br />
<br />
mg (originally called MicroGnuEmacs) is lightweight implementation of Emacs written in C.<br />
<br />
It's possible to install mg right away from {{ic|community}}<br />
# pacman -S mg<br />
or download source from official [http://homepage.boetes.org/software/mg/ page].<br />
<br />
=== zile ===<br />
<br />
According to the offical web [https://www.gnu.org/software/zile/ page] "GNU Zile is a lightweight Emacs clone. Zile is short for Zile Is Lossy Emacs. Zile has been written to be as similar as possible to Emacs; every Emacs user should feel at home.".<br />
<br />
zile can be found in {{ic|extra}}<br />
<br />
# pacman -S zile<br />
<br />
the latest taballs can be found in official GNU [http://ftp.sh.cvut.cz/MIRRORS/gnu/pub/gnu/zile/ mirrors].<br />
<br />
=== uemacs ===<br />
<br />
uemacs is "Micro-emacs version customized by Linus Torvalds".<br />
It can be found in [https://aur.archlinux.org/ AUR] as [https://aur.archlinux.org/packages.php?ID=31502 uemacs].<br />
<br />
== 资源 ==<br />
* [http://www.gnu.org/software/emacs/ GNU Emacs home page]<br />
* [http://www.gnu.org/software/emacs/manual/emacs.html GNU Emacs Manual]<br />
* [http://www.emacswiki.org/cgi-bin/wiki/ Emacs Wiki]<br />
* [http://wikemacs.org WikEmacs - a more readable, but less complete Emacs Wiki]<br />
* [http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html Useful introduction to Emacs and its shortcuts]<br />
* [http://www.dina.kvl.dk/~abraham/religion/ The Church of Emacs]<br />
* [http://repo.or.cz/w/emacs.git/blob/HEAD:/etc/refcards/refcard.pdf Official reference card]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=252930Emacs (简体中文)2013-04-05T07:33:01Z<p>Hang yan: </p>
<hr />
<div>[[Category:Text editors (简体中文)]]<br />
[[en:Emacs]]<br />
[[sr:Emacs]]<br />
{{TranslationStatus (简体中文)|Emacs|2012-10-17|229169}}<br />
{{Translateme (简体中文)}}<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Tutorial on acquiring and using the Emacs text editor.}}<br />
{{Article summary end}}<br />
<br />
[[Wikipedia:Emacs|Emacs]]是一个扩展方便,定制能力强,文档丰富的动态交互编辑器。Emacs的核心构建在[[Wikipedia:Emacs Lisp|Emacs Lisp]]解释器之上,其中Emacs Lisp是大部分Emacs的内建函数和拓展模块的实现语言。Emacs可以在命令行界面下(CLI)工作良好,在图形界面系统下,使用GTK作为默认的图形界面构建工具。在文本编辑能力上,Emacs常常拿来和[[vim]]比较。<br />
<br />
{{Note|入门建议直接使用starterkit扩展。本文档实际帮助不大}}<br />
<br />
== 安装 ==<br />
Emacs有众多变体发行版本(有时候称作''emacsen''). 最常见的莫过于 [http://www.gnu.org/software/emacs/ GNU Emacs],在[[Official Repositories]]可以找到<br />
<br />
$ pacman -S emacs<br />
<br />
另外一个常见的变体就是{{Pkg|xemacs}}.<br />
<br />
== 快速入门 ==<br />
一般印象是Emacs十分复杂,学习曲线陡峭,但很多资深学习者并不这样认为,反而认为其非常易懂和可定制。因为其源码和配置文件语义化程度较高。简单了解下自定义和高扩展带来的好处花不了多少时间。何况还有很多成熟的功能拓展模块,很方便添加,可以让Emacs为任何文本编辑的需求配置强大的环境。<br />
<br />
Emacs自带一个入门教程,你可以点击欢迎界面上的第一个链接来打开它; 或者从菜单栏中选择''Help->Emacs Tutorial'',或者按'F1'键然后按't'. 我们设计这篇文章来为你在Emacs入门学习中提供额外的资源。<br />
<br />
Emacs也包括一系列引用链接,既有适合初学者的内容,也有骨灰级玩家所喜爱的.参见{{ic|/usr/share/emacs/<version>/etc/refcards/}} (将<version>换成你的emacs版本).<br />
<br />
===运行Emacs===<br />
====图形界面下打开方式====<br />
图形界面下可以直接点击图标打开。<br />
<br />
====虚拟终端下的常见方式====<br />
打开Emacs:<br />
<br />
$ emacs<br />
<br />
不打开图形界面,直接在终端中运行:<br />
<br />
$ emacs -nw<br />
<br />
也可以马上打开一篇文章:<br />
<br />
$ emacs filename.txt<br />
<br />
=====无色运行=====<br />
默认的emacs会带有颜色主题,如果不需要,可以关闭之:<br />
<br />
$ emacs -nw --color=no<br />
<br />
<br />
====作为守护进程====<br />
Emacs由于每次启动都需要加载大量自定义的配置文件,所以打开时候会有点慢。从Emacs23开始, Emacs可以以守护进程的形式运行,这样每个用户都可以链接到Emacs。以守护进程运行Emacs:<br />
<br />
$ emacs --daemon<br />
<br />
你可能在启动时打开一个守护进程,然后再将守护进程链接到窗口。另外,也可以将图形和终端客户端同时链接到守护进程上,这样启动图形界面速度就很快了。<br />
<br />
如果你仅仅想链接到守护进程,用下面的命令(注意,在桌面环境下这个命令会打开一个图形客户端,而在像tty这种命令行下,它会打开一个命令行版的emacs):<br />
<br />
$ emacsclient<br />
<br />
如果你想在桌面环境下打开一个命令行版的emacs,使用下面的命令:<br />
<br />
$ emacsclient -t<br />
<br />
另外,你可以在后面加上 {{ic|-a ""}} 参数.<br />
现在,你第一次使用这个命令时,它会把emacs作为守护进程来启动,它会留在后台以加快以后的启动速度(也会记住缓冲区).<br />
<br />
更聪明点,你可以在.bashrc中加上下面的别名:<br />
<br />
$ alias e0='emacs --daemon' #启动守护进程<br />
$ alias e1='emacsclient -t -a ""' #在终端中开启emacs<br />
$ alias e2='emacsclient -c -a ""' #启动emacs图形界面<br />
<br />
<br />
在[[xfce]]桌面环境中,如果你想使用 emacsclient -c 来代替 emacs %f 打开一个新文件, 你可以修改你的 /usr/share/applications/emacs.desktop 文件,把下面这一行<br />
<br />
$ Exec=emacs %f<br />
<br />
修改为<br />
<br />
$ Exec=emacsclient -c<br />
<br />
使用这种方法,每次你打开一个文件时就只会启动客户端,因此速度非常快!<br />
<br />
===基本术语和约定===<br />
Emacs使用一些刚开始看起来很奇怪的术语和约定,我们会在合适的时候介绍。但是,对于部分术语,我们必须要在前面介绍,因为它们对于使用Emacs来说是非常基础的。<br />
<br />
第一个要介绍的术语是''缓冲区''的概念。一个缓冲区就是Emacs中的数据的一种表示方式,比如,当使用Emacs打开一个文件时,这个文件从磁盘中被读出来,它的内容被存储在了缓冲区里面,它的内容可以在这个缓冲区里面被编辑并且可以重新写进磁盘中。缓冲区中的内容不仅仅可以是文本,也可以是图片和widget。现在,让缓冲区可以显示应用程序的工作正在进行!换个角度思考,在磁盘中数据是以文件形式保存的,而在Emacs中,数据是以缓冲区的形式存在的。<br />
<br />
在Emacs中,对于按键组合的约定你可能很陌生。比如:<br />
<br />
'''C-x''' 代表 Control-x<br />
<br />
'''M-x''' 代表 Meta-x<br />
<br />
{{Note|'Meta'一般代表Alt键,也可以用Esc键替代。}}<br />
<br />
举个例子,退出Emacs使用下面的按键组合'''C-x C-c'''。这个可以读做,"按住Ctrol键再按'x',释放,再按住Control键再按'c'。虽然Emacs提供了一个菜单栏,但是强烈建议学习使用按键组合。这个指南将参考Emacs的按键绑定的约定。<br />
<br />
===移动===<br />
光标移动和其它图形编辑器非常类似,鼠标和方向键可以用来改变光标(在Emacs中称为''点'')的位置。在Emacs中,方向键代表的标准移动命令也有其它辅助的绑定。向前(forward)移动一个字符,使用 '''C-f''',向后(back)移动一个字符,使用'''C-b'''。 '''C-n''' 和 '''C-p''' 分别用于移动到下(next)一行和移动到上(previous)一行。再声明一下,强烈推荐使用组合键而不是使用方向键和鼠标。<br />
<br />
可以想像,Emacs提供了更多的光标高级移动命令,包括移动一个单词和一个句子。 '''M-f''' 表示光标向前移动一个单词, '''M-b''' 表示向后移动一个单词。类似地,'''M-e''' 把光标移动到一个句子的末尾(end), '''M-a''' 移动到句子的开头。<br />
<br />
直到现在,所有的移动命令都是和光标有关的。'''M-<''' 表示把光标移动到缓冲区的开头,和它相反的是 '''M->''', 把光标移动到缓冲区的末尾。要把光标移动到某一特定行,使用'''M-g g'''. '''M-g g''' 会提示输入行号。同样,要移动到一行的开头或者结尾,分别使用'''C-a''' 和 '''C-e'''。<br />
<br />
{{Note|这些命令(实际上是全部命令)的绑定,在不同的模式(mode)中,''稍微''会有不同。然而,覆盖的命令提供不同的功能这种情况很少见。更多信息请看[[Emacs#Modes|Modes]]。}}<br />
<br />
===文件和缓冲区===<br />
Emacs 提供了一系列命令来对文件操作,其中最常用的会在这里详细说明。'''C-x C-f''' 用来打开一个文件(在Emacs中叫做'查找文件')。如果指定的文件不存在,Emacs会打开一个空的缓冲区。保存一个缓冲区会创建一个包含缓冲区内容的文件。'''C-x C-s''' 就是用来保存缓冲区的。要保存一个文件名不一样的缓冲区,使用'''C-x C-w''' (这其实是'write-file'这条命令的助记符), 它会在写入磁盘之前提示输入新文件名。也可以使用'''C-x s'''来保存所有的缓冲区, 如果某个缓冲区在上次保存之后被修改了,则会提示进行哪项操作。<br />
<br />
{{Note|如果指向某个文件的缓冲区还在打开的话,'''C-x C-f''' 是不会重新从磁盘中读取文件的。要从磁盘中重新读取文件,先使用'''C-x k'''关掉缓冲区,再使用'''C-x C-f'''打开文件,或者使用'''M-x revert-buffer'''.}}<br />
<br />
很多互动的命令,比如"find-file" 或者 "write-file" 会在Emacs窗口的底部栏提示输入。这栏称为''minibuffer''。和很多*nix shell一样,minibuffer支持很多基本的操作和TAB补全。按两下'''<TAB>'''可以显示一个补全的选项列表,并且,如果你喜欢,可以用鼠标从列表中选择。minibuffer的补全在很多输入(包括命令和文件名)中都可以用。<br />
<br />
minibuffer也提供一个记住历史的特性。通过'''Up Arrow''' 或者 '''C-p'''可以取得这条命令的上一个条目.<br />
<br />
要在任意时刻退出minibuffer,使用'''C-g'''.<br />
<br />
打开几个文件后,切换缓冲区是非常必要的。打开一个指向那个缓冲区的文件可以切换到那个缓冲区。但是这不是最高效的方法。Emacs提供'''C-x b'''来提示要显示的新缓冲区(这里可以使用TAB补全)。输入一个不存在的缓冲区,则会新建一个空的缓冲区。<br />
<br />
{{Note|要切换到上一个缓冲区,使用'''C-x b <RET>''', 因为上一个缓冲区是默认的缓冲区。}}<br />
<br />
使用'''C-x C-b'''可以显示所有打开缓冲区的列表。如果某个缓冲区不需要使用了,使用'''C-x k'''来关掉它。<br />
<br />
===编辑===<br />
Emacs 内建有很多编辑命令。可能最重要的还没有介绍的是'undo',它的快捷键为 "C-_" 或者 "C-/" .移动光标的命令通常都有对应的删除字符的命令。例如, '''M-<backspace>'''Movement commands generally also have a corresponding delete command. For example, '''M-<backspace>''' can be used to delete a word backwards, and '''M-d''' to delete a word forwards. To delete to the end of the line, or the end of the sentence, use '''C-k''' or '''M-k''', respectively.<br />
<br />
It is a rule-of-thumb that no line be allowed to exceed 80 characters. This aids readability, especially in cases where the line wraps at the edge of a window. Automatically inserting (or removing) line separator(s) is known as ''filling'' in Emacs. A paragraph can be filled using '''M-q'''.<br />
<br />
Characters and words can be transposed using '''C-t''' and '''M-t''', respectively. For example: <code>Hello World!</code> → <code>World! Hello</code><br />
<br />
The case of words is also readily adjustable. '''M-l''' downcases a word from point (<code>HELLO</code> → <code>hello</code>); '''M-u''' upcases a word from point (<code>hello</code> → <code>HELLO</code>) and '''M-c''' capitalizes the first character of a word from point while downcasing the remainder (<code>hElLo</code> → <code>Hello</code>).<br />
<br />
===移除,召回和区域===<br />
A region is a section of text between two positions. One of those positions is referred to as ''mark'', and the other is point. '''C-<SPC>''' is used to set the position of mark, after which point can be moved to create a region. Within GNU Emacs 23.1 onwards, this region is visible by default. There are a number of commands which act upon regions, among the most commonly used are ''killing'' commands.<br />
<br />
In Emacs, cut and paste are referred to as ''kill'' and ''yank'', respectively. Many commands which delete more than one character (including many of those in the above section, such as '''C-k''' and '''M-d''') actually cut the text and append it to what is known as the ''kill-ring''. The kill-ring is simply a list of killed text. The kill-ring stores up to the last 60 kills by default. Successive kills are concatenated and stored at the head of the list.<br />
<br />
'''C-w''' and '''M-w''' can be used to kill and copy a region, respectively.<br />
<br />
To insert killed text into a buffer (known as 'yanking'), use '''C-y'''. '''C-y''' can be used multiple times in succession to yank text repeatedly. As mentioned, previous kills are stored in a list, however '''C-y''' only retrieves the first of them. The earlier kills can be accessed via '''M-y'''. This will remove the text inserted by 'yank' initially, replacing it with the text killed earlier. '''M-y''' must be used immediately following '''C-y''' and can be used in many times succession to cycle through the kill-ring.<br />
<br />
===查找和替换===<br />
Searching for a string is common practise in text-editing. This can be performed using '''C-s''' (to search forward) or '''C-r''' (to search backward). These commands prompt for the string for which to search. Searching is performed incrementally, and so it will match the next (or previous) occurrence as you type. To move to the next or previous match, press '''C-s''' or '''C-r''' again, respectively. Once a match has been found, '''<RET>''' can be used to end the search. Alternatively, should you wish to return to the location you initiated the search, use '''C-g'''.<br />
<br />
Once a search is completed (i.e., was not aborted with '''C-g''' or similar), the string which was searched for will be the default for any following search. To make use of this, press '''C-s C-s''' or '''C-r C-r''' to search forward or backward again, respectively.<br />
<br />
Regular Expression searches behave identically to the searching described above except for the command to initiate the search. Use '''C-M-s''' or '''C-M-r''' to initiate a regexp search forward or backward, respectively. Once a Regular Expression search has commenced, '''C-s''' and '''C-r''' can be used to search forward or backward, just as with string searches.<br />
<br />
In addition to searching, it is also possible to perform string and regular expression replacement (via '''M-%''' and '''C-M-%''', respectively). Prompts are provided for both the initial and replacement text, and then another prompt for the action to perform on the highlighted match. Although many options are available (the full list is available by pressing '''?'''), the most commonly used are '''y''', to perform replacement, '''n''', to skip this match, and '''!''' to replace this, and all following matches.<br />
<br />
===缩进和前缀参数===<br />
Indentation is usually performed with either '''<TAB>''', to indent a single line, or with '''C-M-\''', to indent a region.<br />
<br />
Exactly how text is indented usually depends on the ''major-mode'' which is active. Major-modes often define indentation styles specialising in indenting a certain type of text. (See [[Emacs#Modes|Modes]] for more information.)<br />
<br />
In some cases, a suitable major-mode may not exist for a file type, in which case, manual indentation may be necessary. Create a region (see [[Emacs#Killing, yanking and regions|Killing, yanking and regions]]) then perform indentation with '''C-u <n> C-x <TAB>''' (where '<n>' is the number of columns which the text within the region should be indented). For example:<br />
<br />
Increase the region's indentation by four columns:<br />
<br />
C-u 4 C-x <TAB><br />
<br />
Decrease the region's indentation by two columns.<br />
<br />
C-u -2 C-x <TAB><br />
<br />
{{Note|The trick behind this is '''C-u''', which corresponds to the 'universal-argument' command. Providing a 'universal-argument' is a way to provide more information to a command (this information is referred to as a 'prefix argument'). In this case, we provided the amount of indentation desired to the command invoked by '''C-x <TAB>'''. Without providing an argument, '''C-x <TAB>''' will only increase indentation by 1 column.}}<br />
<br />
===窗口和外框架===<br />
Emacs is designed for convenient editing of many files at a time. This is achieved by dividing the Emacs interface into three levels. Namely, buffers, which have already been introduced, as well as ''windows'' and ''frames''.<br />
<br />
A ''window'' is a viewport used for displaying a buffer. A window can display only one buffer at a time, however one buffer can be displayed in many windows. Beneath each window exists a ''mode-line'', which displays information for that buffer.<br />
<br />
A ''frame'' is an Emacs "window" (in standard terminology. i.e., 'window' in the sense of the modern desktop paradigm) which contains a title bar, menu bar and one or more 'windows' (in Emacs terminology. i.e., the above definition of 'window').<br />
<br />
From now on the definition of these terms as they exist in Emacs will be used.<br />
<br />
To split the window vertically or horizontally, use '''C-x 2''' or '''C-x 3''', respectively. This has the effect of creating another window in the current frame. To cycle between multiple windows, use '''C-x o'''.<br />
<br />
The opposite of splitting a window, is deleting it. To delete the current window, use '''C-x 0''' and '''C-x 1''' to delete all windows except the current.<br />
<br />
As with windows, it is also possible to create and delete frames. '''C-x 5 2''' creates a frame. With '''C-x 5 0''' to delete the current frame and '''C-x 5 1''' to delete all except the current frame.<br />
<br />
{{Note|These commands do not affect buffers. For example, deleting a window does not kill the buffer it displays.}}<br />
<br />
===获得帮助===<br />
Emacs在设计的时候就自文档化了。比如,要查看一个命令的名字或者它的键的绑定,Emacs提供了很多帮助信息。下面是列出来的最有用的一些帮助命令:<br />
<br />
'''C-h t''' 启动Emacs官方教程<br />
<br />
'''C-h b''' 列出来所有的有效键绑定<br />
<br />
'''C-h k''' 查找一个键被绑定在了哪个命令上<br />
<br />
'''C-h w''' 查找一个命令被绑定在了哪些键上<br />
<br />
'''C-h a''' 查找一个匹配一段描述的命令<br />
<br />
'''C-h m''' 显示当前激活的所有模式的信息<br />
<br />
'''C-h f''' 显示给定函数的描述信息<br />
<br />
===模式===<br />
An Emacs mode is an extension written in Emacs Lisp that controls the behaviour of the buffer it is attached to. Usually it provides indentation, syntax highlighting and keybindings for editing that form of text. Sophisticated modes can turn Emacs into a full-fledged IDE (Integrated Development Environment). Emacs will generally use a file's extension to determine which mode should be loaded.<br />
<br />
Useful modes for editing shell scripts are sh-mode, line-number-mode and column-number-mode. They can be used in parallel and are invoked by:<br />
<br />
'''M-x sh-mode <RET>'''<br />
<br />
'''M-x column-number-mode <RET>'''<br />
<br />
line-number-mode is enabled by default, though, it can be toggled on/off by issuing the command again:<br />
<br />
'''M-x line-number-mode <RET>'''<br />
<br />
sh-mode is a ''major-mode''. Major-modes adjust Emacs, and often also provide a specialised set of commands, for editing a particular type of text. Only one major-mode can be active in each buffer. In addition to syntax highlighting, and indentation support, sh-mode defines several commands to help write shell scripts. The following shows a few of those commands:<br />
<br />
'''C-c (''' Insert a function definition<br />
<br />
'''C-c C-f''' Insert a 'for' loop<br />
<br />
'''C-c TAB''' Insert an 'if' statement<br />
<br />
'''C-c C-w''' Insert a 'while' loop<br />
<br />
'''C-c C-l''' Insert an indexed loop from 1 to n<br />
<br />
'line-number-mode' and 'column-number-mode', are ''minor-modes''. Minor-modes can be used to extend a major-mode and any number of minor-modes can be enabled at once.<br />
<br />
==提示和技巧==<br />
While the previous sections has given an overview of the basic editing commands available, it has not given an indication of the possibilities of Emacs. This section will cover some more advanced techniques and functionality.<br />
<br />
===TRAMP===<br />
TRAMP (Transparent Remote Access, Multiple Protocols) is an extension which, as its name suggests, provides transparent access to remote files across a number of protocols. When prompted for a filename, entering a specific form will invoke TRAMP. Some examples:<br />
<br />
To prompt for the root password before opening /etc/hosts with root permissions:<br />
<br />
C-x C-f /su::/etc/hosts<br />
<br />
To connect to 'myhost' as 'myuser' via SSH and open the file ~/example.txt:<br />
<br />
C-x C-f /ssh:myuser@myhost:~/example.txt<br />
<br />
The path for TRAMP is typically of the form '/[protocol]:[[user@]host]:<file>'. TRAMP supports much more than the examples above might indicate. For more information refer to the TRAMP info manual, which is distributed with Emacs.<br />
<br />
===键盘宏和寄存器===<br />
This section will provide a practical demonstration of the use of a couple of more powerful editing features. Namely, ''keyboard macros'' and ''registers''.<br />
<br />
The aim will be to produce a listing of a series of characters and their corresponding position in this list. While it is possible to format each of them by hand, this would be slow and error-prone. Alternatively, some of Emacs' more powerful editing functionality could be leveraged. Before describing a solution, some details behind the techniques which will be used follow.<br />
<br />
The first feature which will be introduced is ''registers''. Registers are used to store and retrieve a variety of data types ranging from numbers to window configurations. Each register is given a name of a single character: this character is used to access the register.<br />
<br />
The other which will be demonstrated is ''keyboard macros''. A keyboard macro stores a sequence of commands so they can be easily repeated later. These changes will now be performed step-by-step.<br />
<br />
Starting with a buffer containing our set of characters:<br />
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br />
<br />
Prepare a register by invoking the `number-to-register' command ('''C-x r n''') then storing the number '0' in register 'k':<br />
<br />
C-x r n k<br />
<br />
With point at the beginning of the buffer, start a keyboard macro ('''C-x (''') and begin to format the characters:<br />
<br />
C-x ( C-f M-4 .<br />
<br />
Insert ('''C-x r i''') and increment ('''C-x r +''') the register 'k'. The prefix argument ('''C-u''') is used to leave point positioned after the inserted text:<br />
<br />
C-u C-x r i k C-x r + k<br />
<br />
Complete the formatting by inserting a newline. Emacs can then repeat that process, beginning from the point where we started defining the keyboard macro, for the rest of the characters. '''C-x e''' completes then invokes the keyboard macro. The prefix argument, '''M-0''', causes the macro to repeat until it comes across an error. In this case it aborts once it reaches the end of the buffer.<br />
<br />
<RET> M-0 C-x e<br />
<br />
The result:<br />
<br />
A....0<br />
B....1<br />
C....2<br />
[...]<br />
x....49<br />
y....50<br />
z....51<br />
<br />
===正则表达式===<br />
From the Emacs Manual: "A regular expression, or ''regexp'' for short, is a pattern that denotes a (possibly infinite) set of strings." This section will not go into any detail regarding regular expressions themselves (as there is simply too much to cover). It will however provide a quick demonstration of their power. See [http://www.gnu.org/software/emacs/manual/html_node/elisp/Regular-Expressions.html#Regular-Expressions Regular Expressions] section in the Emacs Manual for further reading.<br />
<br />
Given the same scenario presented above: A list of characters which are to be formatted to represent their respective position in the list. (see [[Emacs#Keyboard macros and registers|Keyboard macros and registers]]). Again, starting with a buffer containing.<br />
<br />
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br />
<br />
At the beginning of the buffer, use '''C-M-%''' (if the key-sequence is difficult to perform, it may be more comfortable to use '''M-x query-replace-regexp'''). At the prompt:<br />
\(.\)<br />
which simply matches one character. Then, when prompted for the replacement:<br />
\1....\#^J<br />
{{Note|'^J' represents where a newline should be placed, it should not be entered into the prompt. The newline must instead be inserted literally using '''C-q C-j'''.}}<br />
The replacement expression reads: "Insert the matched text between the first set of parentheses (in this case, a single character), followed by 4 periods then insert an automatically incremented number followed by a newline.<br />
<br />
Finally, press '''!''' to apply this across the entire buffer. All of the formatting that was performed in the previous section was performed with a single regexp replacement.<br />
<br />
===定制===<br />
Emacs can configured by editing '~/.emacs' or using '''M-x customize'''. This section will focus on editing ~/.emacs by hand, and provide some example customizations to demonstrate commonly-configured aspects of Emacs. The customize command provides a simple interface to make adjustments, though it may become restricting as you grow more familiar with Emacs.<br />
<br />
All of the examples here can be performed while Emacs is running. To evaluate the expression within Emacs, use:<br />
<br />
'''C-M-x''' with point anywhere within the expression.<br />
<br />
or<br />
<br />
'''C-x C-e''' with point following the last ')'<br />
<br />
For some users, typing 'yes' and 'no' in prompts can quickly become tiring. To instead use the 'y' and 'n' keys at these prompts:<br />
<br />
(defalias 'yes-or-no-p 'y-or-n-p)<br />
<br />
To stop the cursor blinking, use:<br />
<br />
(blink-cursor-mode -1)<br />
<br />
Similarly, to enable column-number-mode, as discussed in the previous section:<br />
<br />
(column-number-mode 1)<br />
<br />
The similarities between the previous two commands are not a coincidence: blink-cursor-mode and column-number-mode are both minor-modes. As a rule, minor-modes can be enabled given positive argument or disabled with a negative argument. Should the argument be omitted, the minor-mode will be toggled on/off.<br />
<br />
Here are some more examples of minor-modes. The following will disable the scroll bars, menu-bar and tool-bar, respectively.<br />
<br />
(scroll-bar-mode -1)<br />
(menu-bar-mode -1)<br />
(tool-bar-mode -1)<br />
<br />
The variable, 'auto-mode-alist', can be modified to change the major-mode used by default for certain file names. The following example will make the default major-mode for '.tut' and '.req' files 'text-mode'.<br />
<br />
(setq auto-mode-alist<br />
(append<br />
'(("\\.tut$" . text-mode)<br />
("\\.req$" . text-mode))<br />
auto-mode-alist))<br />
<br />
Settings can also be applied on a per-mode basis. A common method for this is to add a function to a ''hook''. For example, to force indentation to use spaces instead of tabs, but only in text-mode:<br />
<br />
(add-hook 'text-mode-hook (lambda () (setq indent-tabs-mode nil)))<br />
<br />
Similarly, to only use spaces for indentation everywhere:<br />
<br />
(setq-default indent-tabs-mode nil)<br />
<br />
Keybindings can be adjusted in two ways. The first of which is 'define-key'. 'define-key' creates a keybinding for a command but only in one mode. The example below will make '''F8''' delete any whitespace from the end of each line of a 'text-mode' buffer:<br />
<br />
(define-key text-mode-map (kbd "<f8>") 'delete-trailing-whitespace)<br />
<br />
The other method is 'global-set-key'. This is used to bind a key to a command everywhere. To bind 'query-replace-regexp' ('''C-M-%''') to '<f7>'.<br />
<br />
(global-set-key (kbd "<f7>") 'query-replace-regexp)<br />
<br />
Binding a command to an alternate key does not replace any existing bindings. Which is to say, 'query-replace-regexp' would be bound to both '''F7''' and '''C-M-%''' after the above example.<br />
<br />
Almost anything within Emacs can be configured. Browsing through the [http://emacswiki.org/ Emacs Wiki] should give a solid place to start.<br />
<br />
=== 拓展模块 ===<br />
<br />
While Emacs includes hundreds of modes, libraries and other extensions, there are many more available to further Emacs' capabilities. The majority of these come with instructions detailing any changes needed to be made to ~/.emacs. These instructions are generally found in the comment block at the beginning of an elisp source file, or in a README (or similar) should the extension consist of multiple source files.<br />
<br />
A number of popular extensions are available as packages in the 'community' repository, and more still are available via the [[AUR]]. The name of such packages have a 'emacs-' prefix (for example, emacs-lua-mode). In many cases, the changes which need to be made to ~/.emacs are shown during the installation of the package.<br />
<br />
Should instructions describing how to activate a specific extension not be available in the aforementioned location(s), check for a corresponding page in the [http://emacswiki.org/ Emacs Wiki], which will almost certainly provide an example configuration. The Emacs Wiki is also an excellent resource for discovering even more extensions.<br />
<br />
You can also use the [http://tromey.com/elpa/ Emacs Lisp Package Archive (ELPA)] to automatically install packages. See the website for instructions. ELPA is included with Emacs 24 (the newest version of Emacs); it is an accepted part of the Emacs ecosystem.<br />
<br />
== 疑难杂症 ==<br />
<br />
===彩色输出的问题===<br />
By default, the Emacs shell will show raw escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{ic|~/.emacs}} amends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===菜单显示为空===<br />
A bug exists in GNU Emacs 23.1 (using the GTK toolkit) which may cause some menus to appear empty. This appears to be fixed in Emacs' CVS trunk. The corresponding [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550541 Debian bug report] contains a workaround.<br />
<br />
=== X 窗口下的字符显示问题 ===<br />
当你使用X窗口启动emacs时,如果发现主窗口中的所有字符都是黑框白块(就像你没有安装正确的字体看到的字符一样),那么你需要安装 {{pkg|xorg-fonts-75dpi}} 或者 {{pkg|xorg-fonts-100dpi}} 并且重启X窗口。<br />
<br />
=== 启动速度慢 ===<br />
Slow startup times are often caused by one of two things.<br />
<br />
To determine which it might be, run Emacs with:<br />
<br />
$ emacs -q<br />
<br />
If Emacs still starts slowly, refer to [[Emacs#Incorrect network configuration|Incorrect network configuration]]. If not, it is almost certainly a [[Emacs#Init file loads slowly|problem in your .emacs]].<br />
<br />
====错误的网络配置====<br />
<br />
Mistakes, particularly in /etc/hosts, will often result in a 5+ second delay when starting Emacs. Refer to '[[Configuring_network#Set_the_hostname|set the hostname]]' in the network configuration guide for information.<br />
<br />
====初始化文件加载慢====<br />
<br />
A simple way to search for the cause is to comment-out (i.e., prefix lines with ';') suspect sections of your ~/.emacs (or ~/.emacs.d/init.el) then start Emacs again to see if there's any change. Keep in mind use of "require" and "load" can slow the startup down, especially when used with larger extensions. They should, as a rule, only be used when their target is either: needed once Emacs starts or provides little more than "autoloads" for an extension. Otherwise, use the 'autoload function directly. For example, instead of:<br />
<br />
(require 'anything)<br />
<br />
you might use:<br />
<br />
(autoload 'anything "anything" "Select anything" t)<br />
<br />
=== 不能打开文件: ... ===<br />
<br />
The most common cause of this error is the 'load-path' variable not including the path to the directory within which the extension is located. To solve this, add the appropriate path to the list to be searched prior to attempting to load the extension:<br />
<br />
(add-to-list 'load-path "/path/to/directory/")<br />
<br />
When attempting to use packages for extensions and Emacs has been configured with a prefix other than '/usr', the load-path will need to be updated. Place the following in ~/.emacs prior to the instructions provided by the package:<br />
<br />
(add-to-list 'load-path "/usr/share/emacs/site-lisp")<br />
<br />
If compiling Emacs by hand, keep in mind that the default prefix is '/usr/local'.<br />
<br />
== 替代方案 ==<br />
<br />
There are numerous implementations of Emacs. GNU/Emacs is probably the most popular. <br><br />
Lighter Emacs compatibile alternatives can be found in Arch repositories or in [https://aur.archlinux.org/ AUR].<br />
<br />
=== mg ===<br />
<br />
mg (originally called MicroGnuEmacs) is lightweight implementation of Emacs written in C.<br />
<br />
It's possible to install mg right away from {{ic|community}}<br />
# pacman -S mg<br />
or download source from official [http://homepage.boetes.org/software/mg/ page].<br />
<br />
=== zile ===<br />
<br />
According to the offical web [https://www.gnu.org/software/zile/ page] "GNU Zile is a lightweight Emacs clone. Zile is short for Zile Is Lossy Emacs. Zile has been written to be as similar as possible to Emacs; every Emacs user should feel at home.".<br />
<br />
zile can be found in {{ic|extra}}<br />
<br />
# pacman -S zile<br />
<br />
the latest taballs can be found in official GNU [http://ftp.sh.cvut.cz/MIRRORS/gnu/pub/gnu/zile/ mirrors].<br />
<br />
=== uemacs ===<br />
<br />
uemacs is "Micro-emacs version customized by Linus Torvalds".<br />
It can be found in [https://aur.archlinux.org/ AUR] as [https://aur.archlinux.org/packages.php?ID=31502 uemacs].<br />
<br />
== 资源 ==<br />
* [http://www.gnu.org/software/emacs/ GNU Emacs home page]<br />
* [http://www.gnu.org/software/emacs/manual/emacs.html GNU Emacs Manual]<br />
* [http://www.emacswiki.org/cgi-bin/wiki/ Emacs Wiki]<br />
* [http://wikemacs.org WikEmacs - a more readable, but less complete Emacs Wiki]<br />
* [http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html Useful introduction to Emacs and its shortcuts]<br />
* [http://www.dina.kvl.dk/~abraham/religion/ The Church of Emacs]<br />
* [http://repo.or.cz/w/emacs.git/blob/HEAD:/etc/refcards/refcard.pdf Official reference card]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=ArchWiki:Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=252927ArchWiki:Translation Team (简体中文)2013-04-05T05:55:46Z<p>Hang yan: /* 贡献列表 */</p>
<hr />
<div>[[Category:简体中文]]<br />
[[Category:ArchWiki (简体中文)]]<br />
[[en:ArchWiki Translation Team]]<br />
[[es:ArchWiki Translation Team]]<br />
[[hr:ArchWiki Translation Team]]<br />
[[it:ArchWiki Translation Team]]<br />
[[pl:ArchWiki Translation Team]]<br />
[[tr:ArchWiki_Çeviri_Ekibi]]<br />
Arch Wiki 上有许多中文页面,这些页面是无数中文志愿者劳动的结晶。随着时间推移,有些页面因为没有及时维护,内容严重过时。而目前的翻译工作缺少组织,效率偏低。所以参照西班牙和意大利翻译组的做法,添加这个页面。<br />
<br />
如果希望进行翻译和维护,只需要编辑下面的[[#页面维护列表]],将自己加为页面的维护者。如果列表中还没有要认领翻译的页面,请自行添加。如果因为时间原因无法再维护页面,请及时将自己从维护者列表中删除。<br />
<br />
== 创建翻译 ==<br />
{{注意|如果不准备翻译页面的大部分内容,请尽量不要新建简体中文页面。检查英文页面的更新需要花费不少精力,没有翻译的页面会增加维护负担。}}<br />
# 如果还不知道如何编辑 wiki,请阅读 [[Help:Editing (简体中文)|编辑帮助]]。<br />
# 阅读 [[Help:i18n (简体中文)|i18n帮助]],文章给出了 ArchWiki 国际化和本地化的指南。<br />
# [[Special:UserLogin |登录]] 以进行编辑。<br />
# 选择要翻译的页面,例如从 [[Special:Random|随机页面]] 或[[#页面维护列表 | 页面维护列表]] 中选择一个未翻译完成的页面。假设要翻译 [[Some Page]].<br />
# 进入选择的英文页面,点击页面顶部的 '''编辑'''。<br />
# 添加要翻译文件的语言间链接 (参见[[Help:i18n#Interlanguage links]])。<br />
# 复制所有页面代码。<br />
# 保存页面 (新加了语言链接)<br />
# 访问页面右边新添加的语言链接,应该会进到 [[Some Page (简体中文)]] : {{ic|<nowiki>https://wiki.archlinux.org/index.php/Some_Page_(</nowiki>''简体中文'')}}<br />
# 因为页面不存在,点击 '''创建'''。<br />
# 将显示一个编辑器 - 粘贴复制的英文页面。<br />
# 将文章分类修改为本地化版本,例如将 {{ic|<nowiki>[[Category:Internationalization]]</nowiki>}} 修改为 {{ic|<nowiki>[[Category:Internationalization (简体中文)]]</nowiki>}}<br />
# 修改语言间链接,指向英文页面(将 {{ic|zh-CN}} 修改为 {{ic|en}},并将英文页面移到文章顶部。<br />
# 翻译页面,进行保存。<br />
# (推荐)给翻译完成的页面加上[[Template:TranslationStatus (简体中文)|翻译状态]],后有详细介绍。<br />
# 更新所有其它语言页面,加入刚翻译文章的语言间链接。<br />
# (可选)创建一个简体中文名称的页面,指向新创建的页面:访问 {{ic|<nowiki>https://wiki.archlinux.org/index.php/</nowiki>''页面的中文名称''}}.<br />
# (可选)建立新页面,并加入:{{bc|<nowiki>#REDIRECT [[Some Page (简体中文)</nowiki>]]}}<br />
<br />
== 完善翻译 ==<br />
[https://wiki.archlinux.org/index.php?title=Special:WhatLinksHere/Template:Translateme_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&limit=100 这个页面] 包含了需要完善翻译的简体中文页面。完善翻译的基本步骤:<br />
# 选择自己比较熟悉的文章进行翻译<br />
# 先检查英文页面的对应段落,更新成最新的英文后再翻译,避免翻译过时的内容,减少信息遗漏。<br />
# 翻译完成后删除页面中的 <nowiki>{{translateme (简体中文)}}</nowiki> 标记<br />
# (推荐)给翻译完成的页面加上[[Template:TranslationStatus (简体中文)|翻译状态]],后有详细介绍。<br />
<br />
== 维护翻译 ==<br />
完成页面的翻译只是初步完成任务,即时同步英文页面改动、更新翻译是一个持续性的工作,可能会耗费更多的时间。<br />
<br />
=== 页面认领 ===<br />
所有人都可以认领页面。认领后的责任包括进行翻译,关注英文页面的改动,及时同步翻译。<br />
<br />
为了更好的跟踪英文页面的修改,请务必在设置中启用监视列表邮件通知,并监视对应的英文页面(从设置中找到监视列表,加入英文页面。或者直接到英文页面点击页面顶端的监视标签。这样只要有改动,就会收到邮件通知)。<br />
<br />
{{小贴士|如果收到邮件通知后没有访问页面或者访问了页面却没有登录用户,下次页面改动时就不会再发邮件通知。可以点击监视列表中的'''标记所有页面为已读'''再次获取更新。}}<br />
<br />
如果页面有维护者但长期得不到更新,将会在维护列表中删除维护者。<br />
<br />
=== 发现过期页面怎么办? === <br />
如果发现有 Wiki 页面过期或错误:<br />
* 小的改动,有时间可以立即进行修改同步,维护者并不控制页面的编辑权限,越多的人参与维护越好。如果改动较大,请先联系维护者,避免重复劳动。<br />
* 没有时间查看更改,请给页面加上 {{ic|<nowiki>{{out of date}}</nowiki>}} 模版,这样其他贡献者更容易发现需要更新的页面,而读者看到过期标记就可以直接查看英文页面,以免被错误内容误导,白白耽误时间。<br />
* 没有时间翻译,请将过期的中文部分删去,从英文页面中复制更改的部分到中文页面的相应部分,去掉{{ic|<nowiki>{{out of date}}</nowiki>}}模板(如果页面上有的话)并加上{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板,这样其他贡献者就更容易发现需要翻译的页面,而读者也不会被过期的内容误导。<br />
如果发现有页面未翻译:<br />
* 有时间的话,请将页面中的英文部分翻译为中文,并去掉{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板。<br />
* 没有时间翻译,请为页面添加{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板,这样其他的贡献者就能更容易发现需要翻译的页面。<br />
{{注意|在修改页面上的模板时,请同时更新页面维护列表的翻译状态。}}<br />
<br />
=== 翻译状态模板 ===<br />
Arch 作为滚动发行版,软件变化比较快,对应的文档变化也比较快。许多翻译的文章由于缺乏更新,会产生命令运行出错或不起作用等问题。而由于这些过期页面没有及时标记出来,所以用户无法及时获得更新。[[Template:TranslationStatus (简体中文)|翻译状态模板]]就是为了解决这个问题而创建。<br />
<br />
此模板可以起到如下作用:<br />
* 为用户提供翻译状况,包括翻译时间、英文页面的最后版本等<br />
* 用户可以点击查看翻译后,英文页面的改动,这样英文不是很好的用户可以只查看很小一部分英文内容,并判断出是否影响操作。<br />
* 翻译人员可以跟踪页面状况,通过[https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Template:TranslationStatus_(简体中文) 模板的反向链接]可以查找到所有标记页面,查看需要更新翻译的部分。<br />
<br />
[[Template:TranslationStatus (简体中文)|模板页面]]有详细的使用方法。<br />
<br />
=== 页面维护列表 ===<br />
{{注意|请按照拉丁字母顺序添加页面。}}<br />
翻译状态说明:<br />
;过期:页面内容未与英文页面同步,对应{{ic|<nowiki>{{out of date}}</nowiki>}} 模版<br />
;未翻译:页面中含有英文内容,对应{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板<br />
;完成:页面已与英文页面同步<br />
{| class="wikitable sortable collapsible" border="1"<br />
|-<br />
! 页面<br />
! 翻译状态<br />
! 维护者<br />
! class="unsortable" width="30%" | 备注<br />
|-<br />
| [[acpid (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[ACPI hotkeys (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ACPI modules (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Activating Numlock on Bootup (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Ad-hoc networking (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Advanced Linux Sound Architecture (简体中文)]]<br />
| 翻译中<br />
| cuihao<br />
| 无<br />
|-<br />
| [[AHCI (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Allow Users to Shutdown (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[aMule (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Android (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Apache, suEXEC and Virtual Hosts (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Arch Based Distributions (Active) (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Arch Build System (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ArchWiki:About (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ATI (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[AUR Helpers (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Avant Window Navigator (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[awesome (简体中文)]]<br />
| 进行中<br />
| Cael<br />
| 无<br />
|-<br />
| [[Bash (简体中文)]]<br />
| 完成<br />
| Jaurung<br />
| 无<br />
|-<br />
| [[Bumblebee (简体中文)]]<br />
| 完成<br />
| Peter<br />
| 无<br />
|-<br />
| [[AMD Catalyst (简体中文)]]<br />
| 完成<br />
| Shibao Zhao<br />
| 无<br />
|-<br />
| [[Common Applications (简体中文)]]<br />
| 翻译中<br />
| DavidChen<br />
| 翻译中<br />
|-<br />
| [[Compiz (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Configuring Network (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[CPU Frequency Scaling (简体中文)]]<br />
| 完成<br />
| Flockyrocky<br />
| 更新版本,补充了原来没翻译的内容<br />
|-<br />
| [[Creating Packages (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[Disabling IPv6 (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Downgrading Packages (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[E17 (简体中文)]]<br />
| 完成<br />
| Aaron_chen<br />
| 同步翻译至2012年12月24日18:00英文页面<br />
|-<br />
| [[Emacs (简体中文)]]<br />
| 翻译中<br />
| Jaurung yuanhang<br />
| 未完成<br />
|-<br />
|-<br />
| [[Font Configuration (简体中文)]]<br />
| 翻译中<br />
| Jaurung<br />
| 完善中<br />
|-<br />
| [[Fonts (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Fstab (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无<br />
|-<br />
| [[GRUB (简体中文)]]<br />
| 翻译中<br />
| 无<br />
| 无<br />
|-<br />
| [[Help:Style (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无<br />
|-<br />
| [[IBus (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Improve_Pacman_Performance_(简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Intel Graphics (简体中文)]]<br />
| 完成<br />
| Shibao Zhao<br />
| 无<br />
|-<br />
| [[Kernel Compilation (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Kernel Compilation/Arch Build System (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[LAMP (简体中文)]]<br />
| 完成<br />
| Liuzhengyi<br />
| 勘误中<br />
|-<br />
| [[Laptop Mode Tools (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Lenovo ThinkPad T420 (简体中文)]]<br />
| 完成<br />
| Flockyrocky<br />
| 无<br />
|-<br />
| [[LibreOffice (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Local Mirror (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Makepkg (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[mkinitcpio (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Network Time Protocol daemon (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 部分未翻译<br />
|-<br />
| [[Official Repositories (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Openbox (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[OpenOffice (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Pacman (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Pacman GUI Frontends (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[pacman Tips (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Pidgin (简体中文)]]<br />
| 进行中<br />
| Cael<br />
| 无 <br />
|- <br />
| [[Plasma (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|- <br />
| [[Polipo (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无 <br />
|-<br />
| [[Python (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无 <br />
|-<br />
| [[Smart Common Input Method platform (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Common Applications/Science (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Secure Shell (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 部分未翻译<br />
|-<br />
| [[Systemd (简体中文)]]<br />
| 完成<br />
| cuihao<br />
| 无<br />
|-<br />
| [[TeXLive (简体中文)]]<br />
| 完成<br />
| reverland<br />
| 无<br />
|-<br />
| [[Vim (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[VMware (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Wine (简体中文)]]<br />
| 完成<br />
| cuihao<br />
| 无<br />
|-<br />
| [[Xscreensaver (简体中文)]]<br />
| 完成<br />
| liuyix<br />
| 无<br />
|-<br />
| [[Xmonad (简体中文)]]<br />
| 未翻译<br />
| Rns<br />
| 翻译中<br />
|-<br />
| [[LXDE (简体中文)]]<br />
| 翻译中<br />
| Tuxzz<br />
| 无<br />
<br />
|}<br />
<br />
== 贡献列表 ==<br />
为翻译做出贡献的用户请加入列表,感谢所有人做出的贡献。<br />
* [[User:Fengchao|Fengchao]] &ndash; [[Special:Contributions/Fengchao|贡献]] &ndash; [[Special:EmailUser/Fengchao|Send Email]] &ndash; [[ArchWiki:Maintainers|ArchWiki Maintainers]]<br />
* [[User:Skydiver|Skydiver]] &ndash; [[Special:Contributions/Skydiver|贡献]] &ndash; [[Special:EmailUser/Skydiver|Send Email]] &ndash; [[ArchWiki:Maintainers|ArchWiki Maintainers]]<br />
* [[User:Alswl|Alswl]] &ndash; [[Special:Contributions/Alswl|贡献]] &ndash; [[Special:EmailUser/Alswl|Send Email]]<br />
* [[User:Reverland|Reverland]] &ndash; [[Special:Contributions/Reverland|贡献]] &ndash; [[Special:EmailUser/Reverland|Send Email]]<br />
* [[User:Cuihao|cuihao]] &ndash; [[Special:Contributions/Cuihao|贡献]] &ndash; [[Special:EmailUser/Cuihao|Send Email]]<br />
* [[User:Cael|Cael]] &ndash; [[Special:Contributions/Cael|贡献]] &ndash; [[Special:EmailUser/Cael|Send Email]]<br />
* [[User:Flockyrocky|Flockyrocky]] &ndash; [[Special:Contributions/Flockyrocky|贡献]] &ndash; [[Special:EmailUser/Flockyrocky|Send Email]]<br />
<br />
* [[User:Tuxzz|Tuxzz]] &ndash; [[Special:Contributions/Tuxzz|贡献]] &ndash; [[Special:EmailUser/Tuxzz|Send Email]]<br />
* [[User:Aaron_chen|Aaron_chen]] &ndash; [[Special:Contributions/Aaron_chen|贡献]] &ndash; [[Special:E17/Aaron_chen|Send Email]]<br />
* [[User:Shibao Zhao|Shibao Zhao]] &ndash; [[Special:Contributions/Shibao Zhao|贡献]] &ndash; [[Special:EmailUser/Shibao Zhao|Send Email]] &ndash;<br />
* [[User:Radflum|Yk]] &ndash; [[Special:Contributions/Radflum|贡献]] &ndash; [[Special:EmailUser/Radflum|Send Email]]<br />
* [[User:Hang yan|Hang yan]] &ndash; [[Special:Contributions/Hang yan|贡献]] &ndash; [[Special:EmailUser/Hang yan|Send Email]]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=ArchWiki:Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=252926ArchWiki:Translation Team (简体中文)2013-04-05T05:51:32Z<p>Hang yan: /* 贡献列表 */</p>
<hr />
<div>[[Category:简体中文]]<br />
[[Category:ArchWiki (简体中文)]]<br />
[[en:ArchWiki Translation Team]]<br />
[[es:ArchWiki Translation Team]]<br />
[[hr:ArchWiki Translation Team]]<br />
[[it:ArchWiki Translation Team]]<br />
[[pl:ArchWiki Translation Team]]<br />
[[tr:ArchWiki_Çeviri_Ekibi]]<br />
Arch Wiki 上有许多中文页面,这些页面是无数中文志愿者劳动的结晶。随着时间推移,有些页面因为没有及时维护,内容严重过时。而目前的翻译工作缺少组织,效率偏低。所以参照西班牙和意大利翻译组的做法,添加这个页面。<br />
<br />
如果希望进行翻译和维护,只需要编辑下面的[[#页面维护列表]],将自己加为页面的维护者。如果列表中还没有要认领翻译的页面,请自行添加。如果因为时间原因无法再维护页面,请及时将自己从维护者列表中删除。<br />
<br />
== 创建翻译 ==<br />
{{注意|如果不准备翻译页面的大部分内容,请尽量不要新建简体中文页面。检查英文页面的更新需要花费不少精力,没有翻译的页面会增加维护负担。}}<br />
# 如果还不知道如何编辑 wiki,请阅读 [[Help:Editing (简体中文)|编辑帮助]]。<br />
# 阅读 [[Help:i18n (简体中文)|i18n帮助]],文章给出了 ArchWiki 国际化和本地化的指南。<br />
# [[Special:UserLogin |登录]] 以进行编辑。<br />
# 选择要翻译的页面,例如从 [[Special:Random|随机页面]] 或[[#页面维护列表 | 页面维护列表]] 中选择一个未翻译完成的页面。假设要翻译 [[Some Page]].<br />
# 进入选择的英文页面,点击页面顶部的 '''编辑'''。<br />
# 添加要翻译文件的语言间链接 (参见[[Help:i18n#Interlanguage links]])。<br />
# 复制所有页面代码。<br />
# 保存页面 (新加了语言链接)<br />
# 访问页面右边新添加的语言链接,应该会进到 [[Some Page (简体中文)]] : {{ic|<nowiki>https://wiki.archlinux.org/index.php/Some_Page_(</nowiki>''简体中文'')}}<br />
# 因为页面不存在,点击 '''创建'''。<br />
# 将显示一个编辑器 - 粘贴复制的英文页面。<br />
# 将文章分类修改为本地化版本,例如将 {{ic|<nowiki>[[Category:Internationalization]]</nowiki>}} 修改为 {{ic|<nowiki>[[Category:Internationalization (简体中文)]]</nowiki>}}<br />
# 修改语言间链接,指向英文页面(将 {{ic|zh-CN}} 修改为 {{ic|en}},并将英文页面移到文章顶部。<br />
# 翻译页面,进行保存。<br />
# (推荐)给翻译完成的页面加上[[Template:TranslationStatus (简体中文)|翻译状态]],后有详细介绍。<br />
# 更新所有其它语言页面,加入刚翻译文章的语言间链接。<br />
# (可选)创建一个简体中文名称的页面,指向新创建的页面:访问 {{ic|<nowiki>https://wiki.archlinux.org/index.php/</nowiki>''页面的中文名称''}}.<br />
# (可选)建立新页面,并加入:{{bc|<nowiki>#REDIRECT [[Some Page (简体中文)</nowiki>]]}}<br />
<br />
== 完善翻译 ==<br />
[https://wiki.archlinux.org/index.php?title=Special:WhatLinksHere/Template:Translateme_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&limit=100 这个页面] 包含了需要完善翻译的简体中文页面。完善翻译的基本步骤:<br />
# 选择自己比较熟悉的文章进行翻译<br />
# 先检查英文页面的对应段落,更新成最新的英文后再翻译,避免翻译过时的内容,减少信息遗漏。<br />
# 翻译完成后删除页面中的 <nowiki>{{translateme (简体中文)}}</nowiki> 标记<br />
# (推荐)给翻译完成的页面加上[[Template:TranslationStatus (简体中文)|翻译状态]],后有详细介绍。<br />
<br />
== 维护翻译 ==<br />
完成页面的翻译只是初步完成任务,即时同步英文页面改动、更新翻译是一个持续性的工作,可能会耗费更多的时间。<br />
<br />
=== 页面认领 ===<br />
所有人都可以认领页面。认领后的责任包括进行翻译,关注英文页面的改动,及时同步翻译。<br />
<br />
为了更好的跟踪英文页面的修改,请务必在设置中启用监视列表邮件通知,并监视对应的英文页面(从设置中找到监视列表,加入英文页面。或者直接到英文页面点击页面顶端的监视标签。这样只要有改动,就会收到邮件通知)。<br />
<br />
{{小贴士|如果收到邮件通知后没有访问页面或者访问了页面却没有登录用户,下次页面改动时就不会再发邮件通知。可以点击监视列表中的'''标记所有页面为已读'''再次获取更新。}}<br />
<br />
如果页面有维护者但长期得不到更新,将会在维护列表中删除维护者。<br />
<br />
=== 发现过期页面怎么办? === <br />
如果发现有 Wiki 页面过期或错误:<br />
* 小的改动,有时间可以立即进行修改同步,维护者并不控制页面的编辑权限,越多的人参与维护越好。如果改动较大,请先联系维护者,避免重复劳动。<br />
* 没有时间查看更改,请给页面加上 {{ic|<nowiki>{{out of date}}</nowiki>}} 模版,这样其他贡献者更容易发现需要更新的页面,而读者看到过期标记就可以直接查看英文页面,以免被错误内容误导,白白耽误时间。<br />
* 没有时间翻译,请将过期的中文部分删去,从英文页面中复制更改的部分到中文页面的相应部分,去掉{{ic|<nowiki>{{out of date}}</nowiki>}}模板(如果页面上有的话)并加上{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板,这样其他贡献者就更容易发现需要翻译的页面,而读者也不会被过期的内容误导。<br />
如果发现有页面未翻译:<br />
* 有时间的话,请将页面中的英文部分翻译为中文,并去掉{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板。<br />
* 没有时间翻译,请为页面添加{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板,这样其他的贡献者就能更容易发现需要翻译的页面。<br />
{{注意|在修改页面上的模板时,请同时更新页面维护列表的翻译状态。}}<br />
<br />
=== 翻译状态模板 ===<br />
Arch 作为滚动发行版,软件变化比较快,对应的文档变化也比较快。许多翻译的文章由于缺乏更新,会产生命令运行出错或不起作用等问题。而由于这些过期页面没有及时标记出来,所以用户无法及时获得更新。[[Template:TranslationStatus (简体中文)|翻译状态模板]]就是为了解决这个问题而创建。<br />
<br />
此模板可以起到如下作用:<br />
* 为用户提供翻译状况,包括翻译时间、英文页面的最后版本等<br />
* 用户可以点击查看翻译后,英文页面的改动,这样英文不是很好的用户可以只查看很小一部分英文内容,并判断出是否影响操作。<br />
* 翻译人员可以跟踪页面状况,通过[https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Template:TranslationStatus_(简体中文) 模板的反向链接]可以查找到所有标记页面,查看需要更新翻译的部分。<br />
<br />
[[Template:TranslationStatus (简体中文)|模板页面]]有详细的使用方法。<br />
<br />
=== 页面维护列表 ===<br />
{{注意|请按照拉丁字母顺序添加页面。}}<br />
翻译状态说明:<br />
;过期:页面内容未与英文页面同步,对应{{ic|<nowiki>{{out of date}}</nowiki>}} 模版<br />
;未翻译:页面中含有英文内容,对应{{ic|<nowiki>{{translateme (简体中文)}}</nowiki>}}模板<br />
;完成:页面已与英文页面同步<br />
{| class="wikitable sortable collapsible" border="1"<br />
|-<br />
! 页面<br />
! 翻译状态<br />
! 维护者<br />
! class="unsortable" width="30%" | 备注<br />
|-<br />
| [[acpid (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[ACPI hotkeys (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ACPI modules (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Activating Numlock on Bootup (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Ad-hoc networking (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Advanced Linux Sound Architecture (简体中文)]]<br />
| 翻译中<br />
| cuihao<br />
| 无<br />
|-<br />
| [[AHCI (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Allow Users to Shutdown (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[aMule (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Android (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Apache, suEXEC and Virtual Hosts (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Arch Based Distributions (Active) (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Arch Build System (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ArchWiki:About (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[ATI (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[AUR Helpers (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Avant Window Navigator (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[awesome (简体中文)]]<br />
| 进行中<br />
| Cael<br />
| 无<br />
|-<br />
| [[Bash (简体中文)]]<br />
| 完成<br />
| Jaurung<br />
| 无<br />
|-<br />
| [[Bumblebee (简体中文)]]<br />
| 完成<br />
| Peter<br />
| 无<br />
|-<br />
| [[AMD Catalyst (简体中文)]]<br />
| 完成<br />
| Shibao Zhao<br />
| 无<br />
|-<br />
| [[Common Applications (简体中文)]]<br />
| 翻译中<br />
| DavidChen<br />
| 翻译中<br />
|-<br />
| [[Compiz (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Configuring Network (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[CPU Frequency Scaling (简体中文)]]<br />
| 完成<br />
| Flockyrocky<br />
| 更新版本,补充了原来没翻译的内容<br />
|-<br />
| [[Creating Packages (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[Disabling IPv6 (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Downgrading Packages (简体中文)]]<br />
| 完成<br />
| Cael<br />
| 无<br />
|-<br />
| [[E17 (简体中文)]]<br />
| 完成<br />
| Aaron_chen<br />
| 同步翻译至2012年12月24日18:00英文页面<br />
|-<br />
| [[Emacs (简体中文)]]<br />
| 翻译中<br />
| Jaurung yuanhang<br />
| 未完成<br />
|-<br />
|-<br />
| [[Font Configuration (简体中文)]]<br />
| 翻译中<br />
| Jaurung<br />
| 完善中<br />
|-<br />
| [[Fonts (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Fstab (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无<br />
|-<br />
| [[GRUB (简体中文)]]<br />
| 翻译中<br />
| 无<br />
| 无<br />
|-<br />
| [[Help:Style (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无<br />
|-<br />
| [[IBus (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Improve_Pacman_Performance_(简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Intel Graphics (简体中文)]]<br />
| 完成<br />
| Shibao Zhao<br />
| 无<br />
|-<br />
| [[Kernel Compilation (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Kernel Compilation/Arch Build System (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[LAMP (简体中文)]]<br />
| 完成<br />
| Liuzhengyi<br />
| 勘误中<br />
|-<br />
| [[Laptop Mode Tools (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Lenovo ThinkPad T420 (简体中文)]]<br />
| 完成<br />
| Flockyrocky<br />
| 无<br />
|-<br />
| [[LibreOffice (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Local Mirror (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Makepkg (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[mkinitcpio (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Network Time Protocol daemon (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 部分未翻译<br />
|-<br />
| [[Official Repositories (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Openbox (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[OpenOffice (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Pacman (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Pacman GUI Frontends (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[pacman Tips (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[Pidgin (简体中文)]]<br />
| 进行中<br />
| Cael<br />
| 无 <br />
|- <br />
| [[Plasma (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|- <br />
| [[Polipo (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无 <br />
|-<br />
| [[Python (简体中文)]]<br />
| 完成<br />
| Fengchao<br />
| 无 <br />
|-<br />
| [[Smart Common Input Method platform (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Common Applications/Science (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 无<br />
|-<br />
| [[Secure Shell (简体中文)]]<br />
| 未翻译<br />
| 无<br />
| 部分未翻译<br />
|-<br />
| [[Systemd (简体中文)]]<br />
| 完成<br />
| cuihao<br />
| 无<br />
|-<br />
| [[TeXLive (简体中文)]]<br />
| 完成<br />
| reverland<br />
| 无<br />
|-<br />
| [[Vim (简体中文)]]<br />
| 完成<br />
| 无<br />
| 无<br />
|-<br />
| [[VMware (简体中文)]]<br />
| 过期<br />
| 无<br />
| 无<br />
|-<br />
| [[Wine (简体中文)]]<br />
| 完成<br />
| cuihao<br />
| 无<br />
|-<br />
| [[Xscreensaver (简体中文)]]<br />
| 完成<br />
| liuyix<br />
| 无<br />
|-<br />
| [[Xmonad (简体中文)]]<br />
| 未翻译<br />
| Rns<br />
| 翻译中<br />
|-<br />
| [[LXDE (简体中文)]]<br />
| 翻译中<br />
| Tuxzz<br />
| 无<br />
<br />
|}<br />
<br />
== 贡献列表 ==<br />
为翻译做出贡献的用户请加入列表,感谢所有人做出的贡献。<br />
* [[User:Fengchao|Fengchao]] &ndash; [[Special:Contributions/Fengchao|贡献]] &ndash; [[Special:EmailUser/Fengchao|Send Email]] &ndash; [[ArchWiki:Maintainers|ArchWiki Maintainers]]<br />
* [[User:Skydiver|Skydiver]] &ndash; [[Special:Contributions/Skydiver|贡献]] &ndash; [[Special:EmailUser/Skydiver|Send Email]] &ndash; [[ArchWiki:Maintainers|ArchWiki Maintainers]]<br />
* [[User:Alswl|Alswl]] &ndash; [[Special:Contributions/Alswl|贡献]] &ndash; [[Special:EmailUser/Alswl|Send Email]]<br />
* [[User:Reverland|Reverland]] &ndash; [[Special:Contributions/Reverland|贡献]] &ndash; [[Special:EmailUser/Reverland|Send Email]]<br />
* [[User:Cuihao|cuihao]] &ndash; [[Special:Contributions/Cuihao|贡献]] &ndash; [[Special:EmailUser/Cuihao|Send Email]]<br />
* [[User:Cael|Cael]] &ndash; [[Special:Contributions/Cael|贡献]] &ndash; [[Special:EmailUser/Cael|Send Email]]<br />
* [[User:Flockyrocky|Flockyrocky]] &ndash; [[Special:Contributions/Flockyrocky|贡献]] &ndash; [[Special:EmailUser/Flockyrocky|Send Email]]<br />
<br />
* [[User:Tuxzz|Tuxzz]] &ndash; [[Special:Contributions/Tuxzz|贡献]] &ndash; [[Special:EmailUser/Tuxzz|Send Email]]<br />
* [[User:Aaron_chen|Aaron_chen]] &ndash; [[Special:Contributions/Aaron_chen|贡献]] &ndash; [[Special:E17/Aaron_chen|Send Email]]<br />
* [[User:Shibao Zhao|Shibao Zhao]] &ndash; [[Special:Contributions/Shibao Zhao|贡献]] &ndash; [[Special:EmailUser/Shibao Zhao|Send Email]] &ndash;<br />
* [[User:Radflum|Yk]] &ndash; [[Special:Contributions/Radflum|贡献]] &ndash; [[Special:EmailUser/Radflum|Send Email]]<br />
* [[User:Yuyan|Yuyan]] &ndash; [[Special:Contributions/Yuyan|贡献]] &ndash; [[Special:EmailUser/Yuyan|Send Email]]</div>Hang yanhttps://wiki.archlinux.org/index.php?title=Graphical_pacman_frontends_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=252873Graphical pacman frontends (简体中文)2013-04-04T13:52:18Z<p>Hang yan: </p>
<hr />
<div>[[Category:Arch User Repository (简体中文)]]<br />
[[Category:Package management (简体中文)]]<br />
[[Category: 简体中文]]<br />
[[cs:Pacman GUI Frontends]]<br />
[[en:Pacman GUI Frontends]]<br />
[[it:Pacman GUI Frontends]]<br />
[[ru:Pacman GUI Frontends]]<br />
[[tr:Pacman_Önyüzleri]]<br />
{{Translateme (简体中文)}}<br />
<br />
<br />
这里列出 [[pacman]] 命令行工具的图形前端。本列表包括完整功能的 GUI 前端,信息化工具,以及一些系统托盘提示器。本列表也包含基于 Gtk2 或者 Qt 的软件类别。<br />
<br />
{{注意|这些工具都不是由Arch Linux/Pacman 开发人员官方支持的。}}<br />
<br />
== Pacman 图形化前端 ==<br />
=== X11 ===<br />
====PacmanXG====<br />
PacmanXG 是一个 pacman 的 GUI 前端。不依赖于 GTK 或者 Qt,仅仅依赖 X。它可以完成以下功能:<br />
<br />
* 安装/移除/升级软件包<br />
* 搜索/过滤软件包<br />
* 获取软件包信息,包括截图<br />
* 降级软件包 (需要 AUR/downgrade 工具)<br />
* 刷新包数据库,同步镜像<br />
* 一键式系统升级<br />
* YAOURT 支持<br />
'''屏幕截图:''' http://almin-soft.nx0.ru/index.php?pacmanxg/4x-series/pacmanxg-4x-screenshots <br><br />
'''二进制链接:''' http://almin-soft.nx0.ru/media/files/binaries/download.php?get=pacmanXG.tar.bz2<br />
|3='''Web page:''' http://translate.google.com.hk/translate?act=url&hl=en&ie=UTF8&prev=_t&sl=auto&tl=en&u=http://almin-soft.nx0.ru/index.php?pacmanxg/4x-series (en)<br />
|4='''AUR : ''' {{AUR|pacmanxg4-bin}} }}<br />
<br />
* {{App|1=PacmanExpress |2=pacman的一个GUI前端。不依赖于GTK或者QT,而仅仅依赖于X11。它是PacmanXG的一个轻量级版本。<br />
:* Interface "all in one box"<br />
:* No query. Install/remove packages takes place immediately.<br />
:* 可同时执行不过多个操作(删除包时须小心)<br />
:* YAOURT 支持<br />
<br />
:'''二进制包链接:''' http://almin-soft.nx0.ru/data/files/pacmanxg/download.php?get=pacmanexpress.tar.bz2<br />
|3='''Web page:''' http://translate.google.com.hk/translate?act=url&hl=en&ie=UTF8&prev=_t&sl=auto&tl=en&u=http://almin-soft.nx0.ru/index.php?pacmanxg/pacman-express(en) <br />
|4='''AUR : ''' {{AUR|pacmanexpress}} }}<br />
<br />
=== GNOME/GTK+ ===<br />
====Wakka====<br />
Wakka 是基于 GTK 的包管理器,源于 GtkPacman。它致力于精简代码,重构程序使之更稳定可扩展。<br />
<br />
'''主页:''' http://code.google.com/p/wakka-package-manager/ <br><br />
'''AUR 包:''' https:/a/aur.archlinux.org/packages.php?ID=47037 <br><br />
'''截图:''' http://mibloglinux.wordpress.com/2011/05/23/wakka-interfaz-grafica-para-pacman/<br />
:{{Warning|Wakka 现在不兼容 Pacman 4.}}<br />
<br />
====GNOME PackageKit====<br />
GNOME PackageKit 是独立于发行版的包管理软件集。使用 alpm 作为后端,它支持以下功能:<br />
<br />
* 从仓库中安装或删除软件包<br />
* 定期刷新软件包数据库并弹出更新提示。<br />
* 安装 tarball。<br />
* 根据名称、描述、类别或文件搜索软件包。<br />
* 显示依赖包,依赖文件和被依赖的包。<br />
* 忽略 IgnorePkgs 和 保留 HoldPkgs。<br />
* 报告可选依赖,.pacnew文件等。<br />
<br />
您可以通过更改GConf键值 /apps/gnome-packagekit/enable_autoremove 将移除操作由 -Rc 改为 -Rsc。<br />
<br />
软件包:<br />
pacman -S gnome-packagekit gnome-settings-daemon-updates<br />
<br />
如果您不希望安装PulseAudio,您可以从AUR安装 {{AUR|gnome-settings-daemon-nopulse}} 。<br />
<br />
=== KDE/Qt ===<br />
====KPackageKit/Apper====<br />
KPackageKit 现在被称为 {{pkg|apper}},是 [http://www.packagekit.org/ PackageKit]的前端图形界面。Pacman 整合是通过[community] 中的 {{Pkg|packagekit}} 软件包实现的,packagekit 上游已经支持的 pacman。此图形工具可以从 KDE 系统设置中完成:<br />
* 安装/删除/升级软件包<br />
* 查找 / 过滤软件包<br />
* 获取软件包信息<br />
* 刷新软件包数据库e<br />
* 选择更新源<br />
* 自动更新数据库(每小时、每天等)<br />
* 自动更新软件包<br />
<br />
尽管 PackageKit 支持 pacman 的时间不长,它已经能够完成大部分工作,简单易用,与 KDE 良好整合。<br />
<br />
'''主页:''' http://kde-apps.org/content/show.php/Apper?content=84745<br />
<br />
'''截图:''' http://kde-apps.org/content/show.php/Apper?content=84745<br />
<br />
====AppSet====<br />
AppSet是一个高级的多功能包管理图形前端。AppSet有如下功能:<br />
* 软件分类 (games, office, multimedia, internet 等等)<br />
* 在内嵌的浏览器中显示一选择的软件包的主页。<br />
* 在内嵌的feed阅读器中显示发布新闻。<br />
* 升级,安装和移除软件包。<br />
* 在系统通知区域有图标显示可用的更新。<br />
* 定期更新数据库。<br />
* 报告依赖相关的信息 (例如当试图移除一个被其他包依赖的软件包时)。<br />
* 清空缓存命令 (释放磁盘空间)。<br />
* 智能的启动器可以自动使用已安装的工具来获取管理员权限 (通过搜索 kdesu/gksu 或者最少一个由 sudo 命令启动的 xterm)<br />
* 目前以Paker为后端,提供AUR支持。<br />
<br />
AppSet 仅需要 QT 库作为安装依赖。它可以在任何桌面环境中运行。 目前仅使用 Pacman 运行于 Arch Linux。<br />
<br />
'''官方主页: ''' http://appset.sourceforge.net/ <br><br />
'''AUR 包: ''' https://aur.archlinux.org/packages.php?ID=43869 <br><br />
'''软件截图: ''' http://sourceforge.net/project/screenshots.php?group_id=376825<br />
<br />
=== NCurses ===<br />
====pcurses====<br />
基于curses的包管理器前端。功能:<br />
<br />
* 正则表达式过滤和查询任何包的特性信息<br />
* customizable colorcoding<br />
* 自定义排序<br />
* external command execution with package list string replacements<br />
* 用户自定义marcos和hotkeys<br />
<br />
'''主页:''' https://github.com/schuay/pcurses <br><br />
'''AUR Package:''' https://aur.archlinux.org/packages.php?ID=42685 <br><br />
'''Screenshots''' https://bbs.archlinux.org/viewtopic.php?id=122749<br />
<br />
* {{App|1=yaourt-gui|2=Yaourt-GUI 是为了那些刚开始使用Archlinux的新用户设计的。 Written in bash, it offers a gui from terminal to the common tasks of yaourt and pacman<br />
:'''Screenshots''' http://sourceforge.net/projects/yaourt-gui/ <br><br />
:'''Direct link to source:''' http://sourceforge.net/projects/yaourt-gui/files/yaourt-gui-0.9.tar.gz <br />
|3='''Web page:'''http://dark-linux.net/yaourt-gui-a-bash-gui-per-yaourt-3/<br />
|4='''AUR : ''' {{AUR|yaourt-gui}} }}<br />
<br />
== Pacman / AUR Package Browser ==<br />
===PkgBrowser===<br />
Pkgbrowser 用于搜索,查询软件包,显示选中软件包的详细信息。<br />
<br />
*查询和检索软件包(包括AUR)的信息。<br />
*不能用于安装,删除,升级软件包。它只是一个纯粹的显示信息的软件。<br />
*它被设计用来作为一个使用pacman的基于命令行的包管理器<br />
*可通过help menu获取关于它的更多用法Further details on use via manual accessed from help menu<br />
<br />
<br />
'''Forum:''' https://bbs.archlinux.org/viewtopic.php?id=117297 <br><br />
'''AUR Package:''' https://aur.archlinux.org/packages.php?ID=48372 <br><br />
'''Screenshot and source code:''' http://code.google.com/p/pkgbrowser/ <br><br />
<br />
===Pacinfo===<br />
Pacinfo is an application to browse the installed packages and show information like screenshot, installed files, installation date and others.<br />
Written in Mono/GTK#<br />
<br />
'''AUR Package:''' https://aur.archlinux.org/packages.php?ID=46065 <br><br />
'''Website:''' http://code.google.com/p/pacinfo/ <br><br />
<br />
== System Tray Notifiers ==<br />
<br />
===Aarchup===<br />
aarchup is a fork of archup. Has the same options as archup plus a few other features. For differences between both please check changelog at the topic https://bbs.archlinux.org/viewtopic.php?id=119129<br />
<br />
*Homepage: https://github.com/aericson/aarchup/<br />
*AUR Package Details: https://aur.archlinux.org/packages.php?ID=49100<br />
*Screenshots: http://i.imgur.com/yTNvg.png<br />
<br />
===pacman-notifier===<br />
Written in Ruby, uses Gtk. Shows an icon in the system tray and popup notifications (using libnotify) for new packages.<br />
<br />
*Homepage: https://github.com/v01d/pacman-notifier/wiki<br />
*AUR Package Details: https://aur.archlinux.org/packages.php?ID=15193<br />
*Screenshots: https://github.com/v01d/pacman-notifier/wiki<br />
<br />
===Pacupdate===<br />
Pacupdate is a small application that notifies the user about new updates for Arch Linux. If Pacupdate finds out that a update is available, it will display a notification in SystemTray.<br />
<br />
*Homepage (out of date): http://code.google.com/p/pacupdate/ '''Do not''' install packages with 'pacman -Sy foo' as [https://bbs.archlinux.org/viewtopic.php?id=89328 it may lead to breakage].<br />
*AUR Package Details: https://aur.archlinux.org/packages.php?ID=25082<br />
*Screenshots:<br />
<br />
===Yapan===<br />
Yapan - Yet Another Package mAnager Notifier - is written in C++ and Qt. It shows an icon in the system tray and popup notifications for new packages and supports other package manager like clyde or yaourt.<br />
<br />
*Homepage: https://bitbucket.org/otsug/yapan/wiki/Home , https://bbs.archlinux.org/viewtopic.php?id=113078<br />
*AUR Package Details: https://aur.archlinux.org/packages.php?ID=46213<br />
*Screenshots: https://bitbucket.org/otsug/yapan/wiki/Home<br />
<br />
===ZenMan===<br />
PacMan frontend (tray update notifier) for GTK/GNOME/zenity/libnotify.<br />
<br />
*Homepage:<br />
*AUR Package Details: https://aur.archlinux.org/packages.php?ID=25948<br />
*Screenshots: http://show.harvie.cz/screenshots/zenman-screenshot-2.png<br />
<br />
===pkgnotify.sh===<br />
A very simple 14 line shell script that displays the number of available updates in the dzen2 title window and a list of these updates in the slave window. Depends on yaourt, dzen2 and inotify-tools.<br />
<br />
*Homepage: http://pointfree.net/repo/?r=dzen2_scripts;a=headblob;f=/src/pkgnotify/pkgnotify.sh<br />
*AUR Package Details:<br />
*Screenshots: http://andreasbwagner.tumblr.com/post/853471635/arch-linux-update-notifier-for-dzen2<br />
<br />
== Inactive Software Packages ==<br />
*[http://gtkpacman.berlios.de/ GtkPacman]<br />
*[http://guzuta.berlios.de/ Guzuta]<br />
*[http://chakra-project.org/wiki/index.php/Shaman Shaman]<br />
*[http://code.google.com/p/pacmon/ pacmon]<br />
*[https://gna.org/projects/paku/ Paku]<br />
*[http://www.kde-apps.org/content/show.php/YAPG+-+Yet+Another+Pacman+Gui+?content=60052 YAPG]<br />
*[http://sourceforge.net/projects/zenitypacgui/ zenity_pacgui]</div>Hang yan