6. Editors
对于那些希望在LFS系统上使用其他编辑器的人来说,本章在LFS书中有引用。您还将看到在安装GUI库之后重新编译一些LFS安装的程序是如何受益的。
6.1 Bluefish-2.2.12
简介Bluefish
Bluefish是一个针对程序员和网页设计师的GTK+文本编辑器,有许多选项来编写网站,脚本和编程代码。Bluefish支持许多编程和标记语言,它专注于编辑动态和交互式网站。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://www.bennewitz.com/bluefish/stable/source/bluefish-2.2.12.tar.bz2
-
下载MD5校验和: 33dd8262c4d8a564a517f8c98c0cce19
-
下载大小: 4.0 MB
-
预计所需的磁盘空间: 69 MB
-
预计构建时间: 0.4 SBU
Bluefish 依赖
必要
GTK+-2.24.33 或 GTK+-3.24.36 (如果两者都安装了,configure默认使用GTK+ 3)
推荐
desktop-file-utils-0.26 (用于更新桌面数据库)
可选
enchant-2.3.3 (用于拼写检查), Gucharmap-15.0.2, PCRE-8.45 和 Jing
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/bluefish
安装Bluefish
运行以下命令安装Bluefish:
./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.12 &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
注意
这个包将图标文件安装到/usr/share/icons/hicolor层次结构中,将桌面文件安装到/usr/share/applications层次结构中。您可以通过更新/usr/share/icons/hicolor/icon-theme.cache和/usr/share/applications/mimeinfo.cache来提高系统性能和内存使用。要执行更新,您必须有desktop-file-utils-0.26 (用于桌面缓存),并以root用户发出以下命令:
gtk-update-icon-cache -t -f --include-image-data /usr/share/icons/hicolor &&
update-desktop-database
内容
安装程序: bluefish
安装库: several under /usr/lib/bluefish/
安装目录: /usr/lib/bluefish, /usr/share/bluefish, /usr/share/doc/bluefish-2.2.12, and /usr/share/xml/bluefish
简要描述
bluefish 是一个用于标记和编程的GTK+文本编辑器。
6.2 Ed-1.19
简介Ed
Ed是一个面向行的文本编辑器。它用于以交互方式或通过shell脚本创建、显示、修改和以其他方式操作文本文件。Ed不是很多人用的词。这里描述它是因为如果遇到基于ed的补丁文件,补丁程序可以使用它。这种情况很少发生,因为现在更喜欢基于差异的补丁。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://ftp.gnu.org/gnu/ed/ed-1.19.tar.lz
-
下载 (FTP): ftp://ftp.gnu.org/gnu/ed/ed-1.19.tar.lz
-
下载MD5校验和: fa861f0c9ebb8c0e1b79fda770a73b1c
-
下载大小: 65 KB
-
预计所需的磁盘空间: 1.2 MB
-
预计构建时间: less than 0.1 SBU
Ed 依赖
必要解压缩tarball
libarchive-3.6.2 (for bsdtar)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/ed
安装Ed
运行以下命令安装Ed:
./configure --prefix=/usr &&
make
要测试结果,执行: make check.
现在,作为root用户:
make install
内容
安装程序: ed 和 red
安装库: None
安装目录: None
简要描述
ed 是一个面向行的文本编辑器。
red 是一个受限制的ed – 它只能编辑当前目录下的文件,不能执行shell命令。
6.3 Emacs-28.2
简介Emacs
Emacs包包含一个可扩展的、可定制的、自文档化的实时显示编辑器。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载MD5校验和: cb799cdfc3092272ff6d35223fc6bfef
-
下载大小: 46 MB
-
预计所需的磁盘空间: 466 MB
-
预计构建时间: 0.5 SBU (Using parallelism=4)
Emacs 依赖
推荐
HarfBuzz-7.0.0, giflib-5.2.1, GnuTLS-3.8.0, jansson-2.14, 和 libtiff-4.5.0
可选
a graphical environment, alsa-lib-1.2.8, Cairo-1.17.6, dbus-1.14.6, GConf-3.2.6, gobject-introspection-1.74.0, gsettings-desktop-schemas-43.0, GPM-1.20.7, GTK+-2.24.33 or GTK+-3.24.36, ImageMagick-7.1.0-61, Little CMS-2.14, libjpeg-turbo-2.1.5.1, libpng-1.6.39, librsvg-2.54.5, libxml2-2.10.3, MIT Kerberos V5-1.20.1, Valgrind-3.20.0, intlfonts, libungif, libotf, and m17n-lib - 正确显示像印度语和高棉语这样复杂的文字,以及需要阿拉伯语整形支持的文字(阿拉伯语和波斯语), mailutils, 和 libXaw3d
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/emacs
安装Emacs
运行以下命令安装Emacs:
./configure --prefix=/usr &&
make
如果make成功,您可以通过运行src/emacs -Q来测试结果,这是将要安装的程序及其辅助文件。这将启动并显示应用程序打开屏幕。
现在,作为root用户:
make install &&
chown -v -R root:root /usr/share/emacs/28.2
注意
这个包安装图标文件到/usr/share/icons/hicolor层次结构,你可以通过更新/usr/share/icons/hicolor/index.theme来提高系统性能和内存使用。要执行更新,您必须安装GTK+-2.24.33或GTK+-3.24.36,并以root用户发出以下命令:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor
命令解释
--with-imagemagick: 如果您已经安装了 ImageMagick-7.1.0-61 并希望链接到它,请使用此选项。
--with-gif=no: 如果您没有安装,请使用此选项 giflib-5.2.1 或 libungif.
--with-tiff=no: 如果您没有安装,请使用此选项 libtiff-4.5.0.
--with-gnutls=no: 如果您没有安装,请使用此选项 GnuTLS-3.8.0.
--without-harfbuzz: 如果您没有安装,请使用此选项 HarfBuzz-7.0.0.
--with-json=no: 如果您没有安装,请使用此选项 jansson-2.14.
内容
安装程序: ctags, ebrowse, emacs (symlink), emacs-28.2, emacsclient, and etags
安装库: None
安装目录: /usr/libexec/emacs and /usr/share/emacs
简要描述
ctags 为源代码创建交叉引用标记文件数据库文件。
ebrowse 允许从emacs内部浏览c++类层次结构。
emacs 是一个编辑器。
emacsclient 将一个emacs会话附加到一个已经运行的emacsserver实例。
etags 是另一个程序生成源代码交叉引用标记文件。
6.4 Gedit-44.2
简介Gedit
Gedit包包含一个用于GNOME桌面的轻量级UTF-8文本编辑器。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/gedit/44/gedit-44.2.tar.xz
-
下载 (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/gedit/44/gedit-44.2.tar.xz
-
下载MD5校验和: fc257c0bce2ee900208032913f94053f
-
下载大小: 2.6 MB
-
预计所需的磁盘空间: 66 MB (with tests)
-
预计构建时间: 0.5 SBU (using parallelism=4; with tests)
Gedit 依赖
必要
git-2.39.2, gsettings-desktop-schemas-43.0, gtksourceview4-4.8.4, itstool-2.0.7, libpeas-1.34.0, 和 tepl-6.4.0
推荐
gspell-1.12.0, Gvfs-1.50.3 (运行时), ISO Codes-4.12.0, 和 PyGObject-3.42.2 (Python 3 模块)
可选
GTK-Doc-1.33.2, Vala-0.56.4, 和 zeitgeist
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gedit
安装Gedit
运行以下命令安装Gedit:
mkdir gedit-build &&
cd gedit-build &&
meson setup --prefix=/usr \
--buildtype=release \
-Dgtk_doc=false \
.. &&
ninja
要测试结果,执行: ninja test.
现在,作为root用户:
ninja install
注意
如果您使用”DESTDIR”方法将包安装到系统中,/usr/share/glib-2.0/schemas/gschemas.compiled将不会被更新/创建。以root用户使用以下命令创建(或更新)文件:
glib-compile-schemas /usr/share/glib-2.0/schemas
命令解释
--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。
-Dgtk_doc=false: 此开关禁用生成API文档。如果您安装了GTK-Doc-1.33.2并希望生成API文档,请忽略此开关。
内容
安装程序: gedit
安装库: libgedit-44.so
安装目录: /usr/include/gedit-44 和 /usr/{lib,share,share/help/*}/gedit
简要描述
gedit 是与GNOME Desktop集成的轻量级文本编辑器。
6.5 JOE-4.6
简介JOE
JOE (JOE自己的编辑器)是一个小型文本编辑器,能够模拟WordStar、Pico和Emacs。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://downloads.sourceforge.net/joe-editor/joe-4.6.tar.gz
-
下载MD5校验和: 9017484e6116830d846678b625ea5c43
-
下载大小: 1.8 MB
-
预计所需的磁盘空间: 22 MB
-
预计构建时间: 0.2 SBU
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/joe
安装JOE
运行以下命令安装JOE:
./configure --prefix=/usr \
--sysconfdir=/etc \
--docdir=/usr/share/doc/joe-4.6 &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install &&
install -vm 755 joe/util/{stringify,termidx,uniproc} /usr/bin
配置JOE
配置文件
/etc/joe/jmacsrc, /etc/joe/joerc, /etc/joe/jpicorc, /etc/joe/jstarrc, /etc/joe/rjoerc, 和 ~/.joerc
内容
安装程序: jmacs, joe, jpico, jstar, rjoe, stringify, termidx, 和 uniproc
安装库: None
安装目录: /etc/joe, /usr/share/joe, 和 /usr/share/doc/joe-4.6
简要描述
jmacs 是指向joe的符号链接,用于启动Emacs仿真模式。
joe 是一个小型文本编辑器,能够模拟WordStar, Pico和Emacs。
jpico 是指向joe的符号链接,用于启动Pico仿真模式。
jstar 是指向joe的符号链接,用于启动WordStar仿真模式。
rjoe 是一个指向joe的符号链接,它限制joe只能编辑命令行中指定的文件。
stringify 是joe用来将rc和。jsf文件转换为C文件的程序(参见/usr/share/doc/joe-4.6/util/README)。
termidx 是joe用来生成termcap索引文件的程序 (参见/usr/share/doc/joe-4.6/util/README).
uniproc 是一个由joe用来生成joe的unicode数据库文件unicat.c的程序,从Blocks.txt casefolders .txt EastAsianWidth.txt和UnicodeData.txt(找到它们在/usr/share/doc/joe-4.6/util;参见usr/share/doc/joe-4.6/util/README)。
6.6 Kate-22.12.2
简介Kate
Kate包包含一个高级的基于KF5的图形文本编辑器。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://download.kde.org/stable/release-service/22.12.2/src/kate-22.12.2.tar.xz
-
下载MD5校验和: 10b1d9b7061da8f6042d6ecb62a43a37
-
下载大小: 7.5 MB
-
预计所需的磁盘空间: 119 MB
-
预计构建时间: 1.1 SBU (using parallelism=4)
Kate 依赖
必要
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/kate5
安装Kate
运行以下命令安装Kate:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
-Wno-dev .. &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
Contents
安装程序: kate 和 kwrite
安装库: Several plugins under $KF5_PREFIX/lib/plugins
安装目录: $KF5_PREFIX/lib/plugins/ktexteditor, $KF5_PREFIX/lib/plugins/plasma/dataengine, $KF5_PREFIX/share/doc/HTML/*/{kate,katepart,kwrite}, $KF5_PREFIX/share/{kateproject,katexmltools}, 和 $KF5_PREFIX/share/plasma/plasmoids/org.kde.plasma.katesessions
简要描述
kate 是kde的高级文本编辑器。
kwrite 是一个用于KDE的文本编辑器,它是kate的轻量级版本。
6.7 Mousepad-0.5.10
简介Mousepad
Mousepad是用于Xfce桌面环境的简单GTK+ 3文本编辑器。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://archive.xfce.org/src/apps/mousepad/0.5/mousepad-0.5.10.tar.bz2
-
下载MD5校验和: 4c6cde9a05c6f8048133d8d4137edca9
-
下载大小: 937.2 KB
-
预计所需的磁盘空间: 16 MB
-
预计构建时间: 0.1 SBU
Mousepad 依赖
必要
可选
DConf-0.40.0 (运行时) 和 dbus-glib-0.112
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/mousepad
安装Mousepad
运行以下命令安装Mousepad:
./configure --prefix=/usr --enable-keyfile-settings &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
命令解释
--enable-keyfile-settings: 使用GSettings密钥文件后端,而不是默认的 DConf-0.40.0.
内容
安装程序: mousepad
安装库: None
安装目录: None
简要描述
mousepad 是一个简单的GTK+ 3文本编辑器。
6.8 Nano-7.2
简介Nano
Nano包包含一个小而简单的文本编辑器,旨在取代Pine包中的默认编辑器Pico。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://www.nano-editor.org/dist/v7/nano-7.2.tar.xz
-
下载MD5校验和: 13742c686c6ddb0b7b294634f0c13cec
-
下载大小: 1.5 MB
-
预计所需的磁盘空间: 20 MB
-
预计构建时间: 0.2 SBU
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/Nano
安装Nano
Install Nano 运行以下命令安装:
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-utf8 \
--docdir=/usr/share/doc/nano-7.2 &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install &&
install -v -m644 doc/{nano.html,sample.nanorc} /usr/share/doc/nano-7.2
命令解释
--enable-utf8: 此开关在Nano中启用unicode支持。
配置 nano
配置文件
/etc/nanorc and ~/.nanorc
配置信息
示例配置(创建为系统范围的/etc/nanorc或个人的~/.nanorc的文件)
set autoindent
set constantshow
set fill 72
set historylog
set multibuffer
set nohelp
set positionlog
set quickblank
set regexp
检查安装的文档目录中的sample.nanorc文件。它包括颜色配置,并在注释中包含了一些文档。
在/usr/share/nano/目录中,为几种文件类型提供了语法高亮显示。例如,对于shell脚本,你可以在个人或全局配置文件中插入include /usr/share/nano/sh.nanorc。如果您希望突出显示所有支持的文件,请使用include /usr/share/nano/*.nanorc。这个include不会下降到extra目录。将所需文件向上移动一层。
内容
安装程序: nano 和 rnano (符号链接)
安装库: None
安装目录: /usr/share/nano 和 /usr/share/doc/nano-7.2
简要描述
nano 是一个小的,简单的文本编辑器,旨在取代Pico, Pine包中的默认编辑器。
rnano 是nano的受限模式。
6.9 Vim-9.0.1273
简介Vim
Vim包是VI IMproved的缩写,包含了一个vi克隆版本,与原来的vi相比,它具有额外的功能。
默认的LFS指令将vim安装为基本系统的一部分。如果您希望将vim与X链接,则应该重新编译vim以启用GUI模式。不需要特殊的指令,因为X支持是自动检测到的。
注意
vim的版本每天都在变化。获取最新版本,请访问 https://github.com/vim/vim/releases.
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://anduin.linuxfromscratch.org/BLFS/vim/vim-9.0.1273.tar.xz
-
下载MD5校验和: 9c80755d2d95ec4ef713f66e57671797
-
下载大小: 11 MB
-
预计所需的磁盘空间: 166 MB (add 67 MB for tests)
-
预计构建时间: 0.4 SBU (with parallelism=4; add 7.7 SBU for tests)
Vim 依赖
推荐
a graphical environment 和 GTK+-3.24.36
可选
GPM-1.20.7, Lua-5.4.4, rsync-3.2.7, 和 Ruby-3.2.1
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/vim
安装Vim
注意
如果您重新编译Vim以链接到X,并且您的X库不在根分区上,那么您将不再拥有用于紧急情况的编辑器。您可以选择安装一个额外的编辑器,不将Vim链接到X,或者将当前的vim可执行文件以不同的名称(如vi)移动到/bin目录下。
运行以下命令安装Vim:
注意
如果您打算运行测试并且没有在/usr中安装Xorg,请将LDFLAGS=’-L$XORG_PREFIX/lib’追加到下面的配置行。
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h &&
echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h &&
./configure --prefix=/usr \
--with-features=huge \
--enable-gui=gtk3 \
--with-tlib=ncursesw &&
make
注意
如果全局配置文件/etc/vimrc引用了VIMRUNTIME环境变量,一些测试可能会抱怨无法找到相应的目录并等待用户输入。如果是这种情况,则应该在运行测试之前保存并删除该文件。
要测试结果,执行: make -j1 test. 即使其中一个测试未能在src/testdir中生成文件test.out,其余测试仍将执行。如果一切顺利,日志将报告ALL DONE。一些被标记为“不可靠”的测试可能偶尔会失败,可以忽略不计。如果将输出重定向到文件,以及在“屏幕”会话中运行测试,则已知测试会失败。
注意
一些颜色测试期望在xterm终端模拟器下执行。
现在,作为root用户:
make install
默认情况下,Vim的文档安装在/usr/share/vim中。下面的符号链接允许通过/usr/share/doc/vim-9.0.1273访问文档,使其与其他软件包的文档位置一致:
ln -snfv ../vim/vim90/doc /usr/share/doc/vim-9.0.1273
如果希望更新运行时文件,请执行以下命令 (需要 rsync-3.2.7):
rsync -avzcP --exclude="/dos/" --exclude="/spell/" \
ftp.nluug.nl::Vim/runtime/ ./runtime/
安装运行时文件并重新生成tags文件,作为root用户问题:
make -C src installruntime &&
vim -c ":helptags /usr/share/doc/vim-9.0.1273" -c ":q"
命令解释
--with-features=huge: 此开关启用Vim中可用的所有附加功能,包括对多字节字符的支持。
--with-tlib=ncursesw: 这个开关强制Vim链接到libncursesw库。
--enable-gui=no: 这将阻止GUI的编译。Vim仍然会链接到X,因此一些特性,如客户机-服务器模型或x11选择(剪贴板)仍然可用。
--without-x: 如果不希望将Vim与X链接,请使用此开关。
--enable-luainterp, --enable-perlinterp, --enable-python3interp=dynamic, --enable-tclinterp --with-tclsh=tclsh, --enable-rubyinterp: 这些选项包括Lua、Perl、Python3、Tcl或Ruby解释器,它们允许在vim脚本中使用其他应用程序代码。所有的--enable-... options可以接受=dynamic,以便在需要时动态加载解释器。这是Python 3防止分段错误所必需的。对于tcl,有必要指出tclsh可执行文件的名称,因为configure只搜索带有旧版本的版本名。
配置 Vim
配置文件
/etc/vimrc and ~/.vimrc
配置信息
Vim有一个集成的拼写检查器,你可以通过在Vim窗口中发出以下命令来启用它:
:setlocal spell spelllang=ru
此设置将为当前会话启用俄语的拼写检查。
默认情况下,Vim只安装英语语言的拼写文件。如果语言的拼写文件不可用,那么Vim将调用$VIMRUNTIME/plugin/spellfile.vim插件并尝试获取 *.spl 和可选的 *.sug 通过使用$VIMRUNTIME/plugin/netrwPlugin.vim插件,从vim ftp服务器中获取。
或者,您可以手动下载.spl和.sug从: ftp://ftp.vim.org/pub/vim/runtime/spell/ 并将它们保存到~/.vim/spell或/usr/share/vim/vim90/spell/。
要了解Vim-9.0.1273中的新内容,请执行以下命令:
:help version-9.0.1273
有关设置Vim配置文件的其他信息,请参见 The vimrc Files 和 https://vim.fandom.com/wiki/Example_vimrc.
内容
重新安装的文件列表以及它们的简短描述可以在LFS Vim Installation Instructions中找到。
安装程序: gview, gvim, gvimdiff, gvimtutor, rgview, 和 rgvim
安装库: None
安装目录: /usr/share/vim
简要描述
gview 以只读模式启动gvim。
gvim 是在X下运行的编辑器,包含一个GUI。
gvimdiff 使用gvim编辑文件的两个或三个版本,并显示差异。
gvimtutor 教授gvim的基本键和命令。
rgview 是gview的限制版本。
rgvim 是gvim的限制版本。