「RandR :: Resize and Rotate」

RandR(“resize and rotate”),作为X11协议的扩展的通信协议。RandR还负责设置屏幕刷新率。
XRandR,提供了调整大小,旋转和反映屏幕根窗口的功能。
安装「XRandR」软件包
从发行版的源中安装

#!/bin/bash

# Kali GNU/Linux Rolling
# 「xrandr」包含在「x11-xserver-utils」软件包中。
apt-get install x11-xserver-utils

使用源码编译安装 安装过程参考BLFS/Xorg Applications: http://www.linuxfromscratch.org/blfs/view/7.10/x/x7app.html 在BLFS/Xorg Applications中,是同时安装了多个X Application,但是构建编译的命令是类似的的,参考编译命令即可。
软件包xrandr的下载地址:https://www.x.org/archive//individual/app/ 如果xrandr下载地址无法打开,可以到www.x.org中查找其他可访问的镜像服务器。
安装的可执行程序
xrandr 用于设置屏幕输出的大小、方向、反射等。也可以设置屏幕的大小。
参考文献
XRandR Homepage Wikipedia/RandR[……]

READ MORE

「X11」- 自定义屏幕分辨率

问题描述
在 VirtualBox 5.2.44, Guest Ubuntu 20.04 TLS 中,即使安装 Guest Additions 组件中,显示器分辨率自动调整还是存在问题。
最后,我们通过在 Ubuntu 中自定义分辨率来解决该问题,以实现虚拟机屏幕显示最大化。
该笔记将记录:在 Ubuntu 20.04 中,如何自定义屏幕分辨率(适用于 X.Org 桌面环境),以及相关问题的解决方法。
解决方案
临时配置

> cvt 1840 1015
# 1840×1015 59.94 Hz (CVT) hsync: 63.11 kHz; pclk: 154.50 MHz
Modeline “1840x1015_60.00” 154.50 1840 1952 2144 2448 1015 1018 1028 1053 -hsync +vsync

> xrandr –newmode “1840x1015_60.00” 154.50 1840 1952 2144 2448 1015 1018 1028 1053 -hsync +vsync

> xrandr –listactivemonitors
Monitors: 1
0: +*VGA-1 1840/487×1015/269+0+0 VGA-1

> xrandr –addmode VGA-1 1840x1015_60.00

最后,在 Settings 中,选择 1840×1015 分辨率即可。
持久保存
配置是临时的,无法持久化。如果希望持久化: 1)需要修改 ~/.profile 文件,添加命令,以在登录时自动执行; 2)或通过 xorg.conf 配置:How to set display resolution permanent in Ubuntu 16.04
常用设置

// —————————————————————————- // Linux as Host

# cvt 1880 972

# xrandr –newmode “1880x972_60.00” 151.25 1880 2000 2192 2504 972 975 985 1009 -hsync +vsync

# xrandr –listactivemonitors

# xrandr –addmode[……]

READ MORE

「Selections」

Clipboard(剪贴板)
Selections(选择缓冲区)
剪贴板管理工具
Arch Wiki: https://wiki.archlinux.org/index.php/clipboard
Anamnesis — Clipboard manager that stores all the clipboard history and offers an interface to do a full-text search. It has both a command line and GUI mode available. http://anamnesis.sourceforge.net/ || anamnesis
Autocutsel — Command line and daemon interfaces to synchronize PRIMARY, CLIPBOARD and cut buffer selections. http://www.nongnu.org/autocutsel/ || autocutsel
Clipboard Indicator — Clipboard manager extension for GNOME Shell. Adds a clipboard indicator to the top panel, and caches clipboard history. https://extensions.gnome.org/extension/779/clipboard-indicator
ClipIt — Fork of Parcellite.It has both a command line and GUI mode available. https://sourceforge.net/projects/gtkclipit/ || clipit Cliplt Homepage: http://clipit.rspwn.com/ Cliplt,轻量级的剪贴板管理器。我也是无意间发现世界上还有这么个东西。
Clipman — A clipboard manager for Xfce. It keeps the clipboard contents around while it is usually lost when you close an application. It is able to handle text and images, and has a feature to execute actions on specific text selections by matching them against regular expressions.[……]

READ MORE

「XDG」- X Desktop Group

freedesktop.org,以前称为 X Desktop Group,在他们的工作中 XDG 缩写仍然很常见。
相关杂记
回收站目录:~/.local/share/Trash Where is the .Trash folder?
XDG user directories(XDG 用户目录)
指在 $HOME 下那些“知名”的用户目录:Desktop Download Pictures Public …
在其他目录中快速创建用户目录的方法:目前(05/11/2021)没有可用命令,只能脚本实现。
参考文献
Wikipedia/freedesktop.org XDG user directories XDG user directories (简体中文) – ArchWiki XDG user directories – ArchWiki[……]

READ MORE

「xdg-utils」

主页:https://www.freedesktop.org/wiki/Software/xdg-utils/
软件包xdg-utils是一组工具的结合,用于将应用程序轻松地与用户的桌面环境集成,无论用户运行的桌面环境是什么。
该软件包大约一半的工具用于处理安装桌面应用程序时需要处理的通常任务,另一半用于在应用程序运行时与桌面环境的集成。
该软件包中包含的命令及作用
xdg-desktop-menu:命令行工具,用于安装或者卸载“桌面菜单项”。 xdg-desktop-icon:命令行工具,用于安装或者卸载到桌面的图标。 xdg-mime:命令行工具,用于“查询关于文件类型处理的信息”或”为新的文件类型添加描述”。可以用于设置默认的应用程序。 xdg-icon-resource:命令行工具,用于安装或者卸载图标资源。 xdg-open:以用户首选的应用程序来打开文件或URL。 xdg-email:打开用户首选的电子邮件编辑器来发送邮件。 xdg-screensaver:命令行工具,用于控制屏幕保护程序。 xdg-settings:命令行工具,用于管理桌面环境中的各种设置。
参考文献
软件包xdg-utils的主页:https://www.freedesktop.org/wiki/Software/xdg-utils/ BLFS/xgd-utils:http://www.linuxfromscratch.org/blfs/view/7.10/xsoft/xdg-utils.html[……]

READ MORE

「Xresources」- 文件语法(学习笔记)

Xresources是一个用户级的配置文件,通常位于~/.Xresources。它可以用来设置X resource,这些资源是X客户端应用程序的配置参数。
除此之外,还可以用来:

定义终端颜色;
配置终端首选项;
设置DPI,反锯齿,提示和其他X字体设置;
更改Xcursor主题;
主题xscreensaver;
配置低级X应用程序,如:xorg-xclock,xpdf,rxvt-unicode;

安装
安装xrdb包即可,在Debian中安装x11-xserver-utils(apt-get install x11-xserver-utils);
使用源码安装可以参考BLFS/Xorg Applications:http://www.linuxfromscratch.org/blfs/view/7.10/x/x7app.html
xrdb命令用于管理X resource数据库。
使用方法
加载resource文件
资源只被读取一次,并存储在X Server中。远程X Client也可以访问这些资源(例如:通过SSH转发)。
加载指定的resource文件(如传统的.Xresources),替换任何当前设置:xrdb ~/.Xresources
加载指定的资源文件,并与当前设置合并:xrdb -merge ~/.Xresources
注意事项 某些Display Manager会在登录的时候加载~/.Xresources文件。 当X11应用程序启动时,旧的~/.Xdefaults文件被读取,但只有在当前会话中没有使用xrdb的情况下。(~/.Xdefaults vs ~/.Xresources)
xinitrc
如果你使用的是自定义的.xinitrc文件,需要添加以下行:

-f ~/.Xresources && xrdb -merge -I$HOME ~/.Xresources

而大多数Linux发行版默认就已经加载了$HOME/.Xresources,所以不需要手动添加上面的行。
注意事项 在~/.xinitrc中,不要在后台运行xrdb命令。否则,在xrdb之后启动的程序可能会在资源完成加载之前进行资源查找。
默认的resource配置
大多数的发行版中都有默认的X11应用的资源配置文件,比如Debian中位于/etc/X11/app-defaults/目录中。
有关某个程序的特定资源的详细信息通常在程序的手册页中有说明。xterm的手册页就是一个很好的例子,因为它包含一个X resource列表及其默认值。
查看当前已经加载[……]

READ MORE

「Linux Desktop」- 在远程主机中运行应用,但在本地主机中显示应用界面

问题描述
根据 X.Org 特性,我们可以:在远程服务器的命令行中(没有图形界面)运行 xterm 命令,但是却是在本地显示 XTerm 的终端界面。
该笔记将记录:如何使用这一特性。实际的用途,请自行挖掘 :-)
解决方案
环境概述: 1)Local Machine: laptop-01 2)Remote Server: server-01
执行命令:

laptop-01 # ssh -X root@server-01
server-01 # su – root
server-01 # xterm

// 稍后(取决于网络质量),我们便可在本地(laptop-01)看到打开的 XTerm 终端

参考文献
server – x11 forwarding fails with some apps opening in remote display and some in local display – Ask Ubuntu[……]

READ MORE

「Linux」- 编程工具箱

该模块或者分类主介绍在 Linux 下部分实用的工具,绝大多数都是有GUI。
GNU Package Blurbs:https://www.gnu.org/manual/blurbs.html

章节列表
「Linux」- 十六进制查看编辑工具 「Insomnia Designer」- 接口测试工具(Postman 的同类产品) 「Glade」 「Postman」- 强大的接口测试工具 「Linux」- 拾色程序、拾色器、Color Picker 「ScreenRuler」 「SwitchHosts」 「Linux」- 文件对比工具[……]

READ MORE

「Linux」- 拾色程序、拾色器、Color Picker

问题描述
该笔记将记录:在 Linux 中,我们使用的拾色程序,以及常见问题处理。
解决方案
Gpick is an advanced color picker and palette editing tool
gpick/README.md at master · thezbyg/gpick
源码仓库:thezbyg/gpick: Advanced color picker written in C++ using GTK+ toolkit
Gpick,在 Linux 下的取色程序。
通过仓库直接安装:

apt-get install -y gpick

使用源码编译安装:
编译器要求: Some of C++14 features are required. Compilation is currently only tested on gcc version 5.3.1.
安装依赖程序: SCons 2.4 or newer: http://www.scons.org Ragel 6.8 or newer: state machine compiler (http://www.colm.net/open-source/ragel). GTK+ 2.24 (http://www.gtk.org). Lua 5.3 or 5.2 (http://www.lua.org). Expat (http://expat.sourceforge.net). Boost 1.58 or newer (http://www.boost.org). Used libraries:

Filesystem.
System.
Test (only when building/running tests).

可选依赖库: gettext (http://www.gnu.org/s/gettext). Required if ENABLE_NLS is enabled. Required by default.
构建及安装命令: `scons` to compile all files and place executable file in build/source/. `scons install` to install executable and resources to DESTDIR. By default DESTDIR is /usr/local.
编译错误汇总:

/usr/bin/ld: build/source/dbus/DbusInterface.o: relocation R_X86_64_32[……]

READ MORE

「Linux」- 文件对比工具

解决方案
Meld – the visual diff and merge tool of GNOME
https://meldmerge.org/ Meld – Features

Meld,是在 Linux 中带有图形界面的文件对比、合并工具。具有以下特性: 1)File comparison 2)Directory comparison 3)Version control 4)Merge mode 5)Internationalization support
在桌面环境中,这是我们用的最多的文件对比工具。
安装并运行:

apt-get install meld
/usr/bin/meld # 程序文件

GNU Diffutils – Comparing and Merging Files
https://www.gnu.org/software/diffutils
在命令行,这是我们用的最多的文件对比工具。
/usr/bin/cmp /usr/bin/diff /usr/bin/diff3 /usr/bin/sdiff
Beyond Compare – Reconcile Your Differences
https://www.scootersoftware.com/index.php
对比二进制文件
How do I compare binary files in Linux?
我们使用最常用的命令进行二进制文件的对比:

diff <(od /path/to/file1) <(od /path/to/file2)

参考文献
How do I compare binary files in Linux?[……]

READ MORE

「Glade」

Glade是一个RAD工具,可以快速轻松地开发 GTK+ 工具包和 GNOME 桌面环境的用户界面。
Homepage: https://glade.gnome.org/
Glade 3.8 GTK+2
http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/
Glade 3.20 for GTK+3
http://ftp.gnome.org/pub/GNOME/sources/glade/3.20/
Git
git clone git://git.gnome.org/glade[……]

READ MORE

「Linux」- 十六进制查看编辑工具

vi/vim的十六进制模式
:%!xxd ——将当前文本转换为16进制格式。 :%!xxd -r ——将当前文件转换回文本格式。
Emacs的十六进制模式
M-x hexl-mode
od
顾名思义是查看八进制,可以通过指定参数为查看十六进制 -A 指定左边侧栏显示的地址基数,默认为八进制 -t 指定输出单元的进制格式和字节数 -x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到右为 [高字节|低字节]) 例: chenglian@chenglian-desktop:~/test$ od -t x1 asm | more 0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 0000020 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00
chenglian@chenglian-desktop:~/test$ od -A x -t x1 asm | more 000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00
chenglian@chenglian-desktop:~/test$ od -A x -x asm | more 000000 457f 464c 0101 0001 0000 0000 0000 0000 000010 0002 0003 0001 0000 8054 0804 0034 0000
hexdump
查看十六机制的首选工具。 -c 每单元以字节为单位,显示出对应的ASCII码 -C 每单元以字节为单位,同时显示十六机制和ASCII码 例: chenglian@chenglian-desktop:~/test$ hexdump -c asm | more 0000000 177 E L F 001 001 001 /0 /0 /0 /0 /0 /0 /0 /0 /0 0000010 002 /0 003 /0 001 /0 /0 /0 T 200 004 /b 4 /0 /0 /0
chenglian@chenglian-desktop:~/test$ hexdump -C asm | more 00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF…………| 00000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00 |……..T…4..[……]

READ MORE

「Insomnia Designer」- 接口测试工具(Postman 的同类产品)

Insomnia Designer,构建有效接口,使用协作式接口设计平台,使我们能够采用设计优先的方法来使用 OpenAPI 创建、管理、测试、部署接口。
使用 Insomnia Designer 的原因是 Postman 无法进行 UDS(Unix Domain Socket)测试。
安装应用
1)下载并安装 .tar.gz 即可(不再赘述) Releases · Kong/insomnia · GitHub
2)需要修改 chrome-sanbox 权限:

chown root: chrome-sandbox
chmod 4755 chrome-sandbox

发送 UDS 请求
Introducing Unix Domain Socket Support | Insomnia
The syntax was borrowed from the popular NodeJS request library:http://unix:$SOCKET:$PATH
比如请求 Docker Engine API 来查看当前全部镜像:

http://unix:/var/run/docker.sock:/v1.24/images/json

参考文献
Insomnia Designer | Insomnia[……]

READ MORE

「Postman」- 强大的接口测试工具

Postman,接口测试工具,强大的图形化功能,同时支持 Linux、MacOS、Windows 平台。
安装程序
Download Postman | Try Postman for Free
应用截图

注意事项
UDS (Unix Domain Socket) Support please – Help – Postman 目前(10/22/2020 Postman v7.34.0)不支持访问 Unix Domain Socket 接口。可以使用 Insomnia Designer(同类产品)进行 UDS 测试。
常见问题汇总
在美化数据后,数据会被重新排序
Pretty seems to be sorting keys?!!? #837 Does JavaScript Guarantee Object Property Order?
问题描述:在 Postman中,通过美化数据功能,可以对返回数据格式化(比如 JSON 数据)。但是,它会自动排序返回数据,如果显示原始(RAW)格式则是正常的。
问题原因:在 JS 中,不保证对象属性的顺序。
POST 请求数据丢失
Postman causing 301 redirect which is losing POST data #1490
使用 Postman 接口测试,使用 http 请求,POST 数据丢失,使用 https 请求数据正常。
在http请求中,使用file_get_contents(“php://input”)无法获取数据,而https是正常的。
参考文献
Postman | The Collaboration Platform for API Development[……]

READ MORE

「ScreenRuler」

屏幕像素尺。
参考文献
ScreenRuler 访问该项目在Launchpad的主页[……]

READ MORE

「SwitchHosts」

快速地在不同的 Hosts 文件之间切换。
软件截图

参考文献
Github/SwitchHosts! Github/SwitchHosts! 下载地址1[……]

READ MORE

「Eclipse」- The Leading Open Platform for Professional Developers

参考文献
Wikipedia/Eclipse All Releases[……]

READ MORE

「Eclipse」- 升级到新版本

问题描述
我们想升级 Eclipse 到最新版本。
但是我们不想重新安装,否则我们就要重新安装插件、以及其他设置。
该笔记将记录:在现有基础上,升级 Eclipse 到最新版本的方法。
解决办法
You first need to add the new release’s repository as follows: 1)Window > Preferences > Install/Update > Available Software Sites 2)Click ‘Add’ 3)Enter the URL of the new repository (for example, http://download.eclipse.org/releases/2019-03/ ) —- 如果想要使用其他的版本,参考:https://download.eclipse.org/releases/ —- 如果想始终保持最新版本,使用:http://download.eclipse.org/releases/latest/ 4)Click ‘Ok’ 5)Help > Check for Updates
如果发现更新,则可以进行更新。否则的话,阅读错误信息并处理。
注意事项: 1)启动屏幕可能会被缓存,即显示旧版本的启动界面; 2)并且在重新启动 Eclipse 程序,也不一定会更新到最新版本; 3)执行“完全重新启动”(退出,再启动)可以显示新版本号;
使用测试版本
原理和上面的方法一样,但是要使用两个URL地址,比如: 1)http://download.eclipse.org/staging/2019-03/ 2)http://download.eclipse.org/releases/2019-03/
详细内容参考官方文档:「Beta-testing milestones and release candidates」
参考文献
Upgrading existing Eclipse IDE and Installed Features to newer release[……]

READ MORE

「Eclipse」- 常用设置(杂记)

在 Package Explorer 中,同步显示当前文件
只需要选中那个“带黄色的箭头”的按钮:
在格式化时,禁止较长的代码换行
How to set maximum line length in eclipse
我们以 Java 为例: 1)Windows => Preferences => Java => Code Style => Formatter 2)New…,然后复制已经存在的配置并设置名称,回到 Formatter 页面 3)Edit… => Line Wrapping => Maximum line width,设置为较大值
显示隐藏目录及文件
How can I make hidden files display in Eclipse Project explorer when using a RSE linked folder?
作为项目打开目录时,如果如果目录是以点开头的,导入的状态是关闭的,需要在 Window -> Show View -> Navigator 中才能看见。
修改 Eclipse User Storage 工具栏、删除工具栏重复项
Hiding Duplicate Toolbars Items in Eclipse
修改 /path/to/workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi 文件,但是在该工作目录下与界面相关的设置将丢失。
或者可以在 Window -> Perspective -> Customize Perspective 中直接隐藏 Eclipse User Storage 功能。
设置紧凑主题
Can I make Eclipse on Ubuntu look more compact?
如何缩小工具栏的大小
Is it possible to reduce size of eclipse toolbar? Eclipse toolbar size
修改作者的名字
change author name in eclipse
禁用自动构建
stop automatic building with maven / eclipse
在打开 MAVEN 项目后,默认会开始自动构建,我们希望关闭该功能: 1)全局:General -> Workspace -> Build -> Build Automatically 2)项目:Window -> Preference,然后直接搜索到具体的功能下查找[……]

READ MORE

「Programming in Eclipse」-

[……]

READ MORE

「Emacs」- Editor MACroS(From 1970s)

问题描述
该笔记将记录:Emacs 文本编辑器(但又不仅是文本编辑器),以及相关内容、常见问题的解决办法。
Emacs Channel
Emacs
Emacs,编辑器,功能多,但或许开箱不能即用。它有众多的分支,比如GNU Emacs、XEmacs、SXEmacs等等。如果没有特殊说明,则相关文章中指的都是GNU Emacs版本。
GNU Emacs是Emacs的一个版本,由原始(PDP-10)Emacs的作者Richard Stallman编写。GNU Emacs的用户功能包含其他编辑器所做的一切,并且由于其编辑命令是用Lisp编写的,所以它很容易扩展。
GNU Emacs的主要文档在GNU Emacs手册中,可以使用Info从Emacs或作为独立程序阅读。请查看完整和最新的文档。此手册页仅在有人志愿者更新时更新。
Emacs有一个广泛的交互式帮助工具,但该工具假设您知道如何操作Emacs窗口和缓冲区:

CTRL-h或F1进入Help工具;
(CTRL-h t)Help Tutorial启动一个交互式教程,以快速向初学者讲授Emacs的基础知识;
(CTRL-h a)Help Apropos帮助您查找名称与给定模式匹配的命令;
(CTRL-h k)Help Key描述给定的键序列;
Help Function(CTRL-h f)描述给定的Lisp函数。

GNU Emacs的许多特殊包能够处理邮件阅读(RMail)和发送(Mail),大纲编辑(Outline),编译(编译),在Emacs窗口中运行子Shell(Shell),运行Lisp的read-eval-print循环(Lisp-Interaction-Mode),自动化心理治疗(Doctor)等等。
我们的Emacs运行的XTerm中,使用的是emacs -nw的无窗口模式运行,因为这个样子可以绕过无法输入中文的问题。但是现在(08/22/2018)根本不需要了。因为,可以指定LC_CTYPE=zh_CN.UTF-8 emacs来运行Emacs,解决窗口模式下无法使用中文输入法的问题。
http://www.gnu.org/software/emacs/tour/index.html http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html http://www.gnu.org/software/emacs/manual/html_node/eintr/index.html http://www.gnu.org/software/emacs/manual/html_node/elisp/index.[……]

READ MORE

「GNU Emacs」- 概念及术语

在正式开始使用 GNU Emacs 前,需要了解常用属于及基本概念,例如界面组成、什么是缓冲区、窗口、区域、标记等等基本概念。详细内容可以参考 1 The Organization of the Screen 文档,这里仅进行简单记录。
Frame, Window and Buffer
以图形化界面启动后……
Frame
就是我们常说的应用窗口(Window),但是在 Emacs 中,被称之为 Frame 而不是 Window 。
在 Emacs 中,相同会话可以创建多个 Frame,并且 Frame 通常还包含菜单栏、工具栏、回显区域 。
在 Frame 中,包含单个或多个 Window 。
关于 Frame 的结构,可以参考 29.3.1 Frame Layout 文档。
Window
在每个 Frame 中,包含单个或多个 Window,即 Frame 可以分隔为多个 Window 。
在 Window 中,用于显示单个 Buffer 的内容 。
Buffer
在 Buffer 中,包含要修改的文本内容。
在缓冲区中移动(Moving around in buffers)
标记(Mark)
区域(Region)
Mark和Point一起标记出一个Region。许多命令可以只操作Region中的文本。可以使用C-SPC设置一个Mark,然后移动光标,或者通过点击并拖动鼠标来设置Region。Emacs提供了一些命令,通过适当的移动Point和Mark来为你设置Region,比如:

C-x h 使Region包含整个Buffer。(全选)
M-h 使Region包含当前段落。

还有的命令可以将Region设置为它们所做的一部分,比如:C-y(粘贴)、文件插入、Buffer插入都会将Region设置为包含插入文本。
Narrowing可以将Buffer的显示内容(和编辑)限制在某个Region中。当你只想编辑Buffer中的一小部分(例如书中的章节)时,这是很方便的。然后,比如增量搜索、beginning-of-buffer、end-of-buffer等命令不会超出当前Region,而且搜索和替换等命令不会影响整个文件。

C-x n n 使Buffer的显示内容限制在某个区域。
C-x n w 恢复显示完整的文件。

有关Narrowing的相关内容可以参考文档:http://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html 或者:info “(emacs)Narrowing”
撤销(u[……]

READ MORE

「Emacs」- 常见术语整理

该笔记将整理在 GNU Emacs 中某些常用术语,完整的术语列表参考 Glossary 页面。
Point: The place in the text where editing commands operate. Echo Area: Short messages appear at the bottom of the screen. Mode Line: Interpreting the mode line. Menu Bar: How to use the menu bar.
minibuffer[……]

READ MORE

「Emacs」- 安装(Debian、Ubuntu、CentOS、源码编译)

问题描述
该笔记将记录:在各平台中,如何安装 GNU Emacs 编辑器,以及部分常见问题处理方法。
Debian-based(Debian、Ubuntu、Kali Linux)

apt-get install -y emacs emacs-bin-common emacs-common emacs-el emacs-gtk

# 无图形化界面版本
apt-get install emacs24-nox

安装最新版本
EmacsWiki: Emacs For Linux EmacsWiki: App Image
我们需要安装 Emacs 最新版,我们想体验 Emacs 27 的 Tab Bars 功能(事实证明,对于我们来说这个功能相当棒)
解决方案
这里有两种方法可以获取最新版本: 1)使用 AppImage 镜像; 2)使用源码编译安装最新版本;
方法一、使用 AppImage 镜像(推荐)
1)到 Releases · probonopd/Emacs.AppImage 下载 AppImage 文件; 2)授予执行权限:chmod u+x Emacs-xxxxx.AppImage 3)运行 AppImage 文件:./Emacs-xxxxx.AppImage
方法二、源码编译安装
源码编译的方法不再展开(因为涉及很多细节,内容有冗长),参考「编译安装」部分。
编译安装
BLFS/Emacs-25.1-rc2 BLFS/Emacs-27.1
如果编译 Emacs 只是为了体验新版本,建议使用 AppImage 程序,参考「安装最新版本」笔记。
第一步、源码下载
镜像服务器地址列表:https://www.gnu.org/prep/ftp 清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/emacs
第二步、编译并安装

# Without GUI
./configure \
–prefix=/usr \
–localstatedir=/var \
–without-x

# With GUI
apt-get install libgtk2.0-dev libxpm-dev libgif-dev

./configure \
–prefix=/usr \
–localstatedir=/var \
–with-x-toolkit=gtk2

# 参考 BLFS/Emacs-25.1-rc2 页面,获取详细构建说明
# http://www.linuxfromscratch.org/blfs/view/7.10/postlfs/emacs.html

# 参[……]

READ MORE

「Emacs」- 进行文本编辑

重启 Emacs 应用
Restart emacs from within emacs – Emacs Stack Exchange GitHub – iqbalansari/restart-emacs: A simple emacs package to restart emacs from within emacs
我们想记录另外一种重启 Emacs 的方法:使用 restart-emacs 扩展

章节列表
「Emacs」- 编辑二进制文件 「Emacs」- Region 「Emacs」- 快捷键绑定 「GNU Emacs」- 常用 Buffer 操作 「GNU Emacs」- 打开文件 「GNU Emacs」- 编辑文件[……]

READ MORE

「GNU Emacs」- 打开文件

解决方案
打开本地文件
打开文件:Ctrl x + Ctrl f
Tramp Mode(编辑远程文件)
通过 TRAMP 插件(已经集成到 Emacs 中),实现编辑远程文件(ssh、smb)、编辑其他用户文件(sudo)等等。
该插件的大致使用方法过程: 1)C-x C-f 2)输入不同格式的文件路径,将采用不同的模式编辑文件:

编辑其他用户的文件:/su::/etc/hostname 或者 /sudo::/etc/hostname
编辑远程主机的文件:/ssh:root@192.168.1.4:/path/file
3)当回车(ENTER)确认后,会提示输入密码;
4)在输入密码后,Emacs 将打开文件以进行编辑;

官方 3 Short introduction how to use TRAMP 文档,是 TRAMP 使用方法的简短介绍
参考文献
EmacsWiki: Open Files In Different Ways dired – Edit file with super-user rights – Emacs Stack Exchange EmacsWiki: Tramp Mode[……]

READ MORE

「GNU Emacs」- 编辑文件

问题描述
该笔记将记录:在 GNU Emacs 中,常用文件编辑,比如代码格式化、多行排序等等方法。
解决方案
对齐等号
在使用 GNU Emacs 编辑时,我们需要进行代码格式化,以增强代码的可读性。使用 M-x align-regexp 函数,进行代码对齐,这里可以输入自定义对齐符号。比如,对齐等号(=)。
多行排序(字母,数字)
对于根据字母排序,使用如下方法: 1)选中多行 2)然后对多行进行排序:

字母顺序排序:M-x sort-lines [RET];
字母顺序反向排序:C-u M-x sort-lines [RET]

对于数字排序,使用那个如下方法: 1)选中多行 2)然后对多行进行排序:

顺序排序: M-x sort-numeric-fields [RET];
反序排序:在顺序排序之后,执行 M-x reverse-region 以反序;
根据特定列排序:C-u 3 M-x sort-numeric-fields

参考文献
EmacsWiki: Reformat Buffer formatting – In Emacs, how to line up equals signs in a series of initialization statements? Sort lines in a region | Pragmatic Emacs[……]

READ MORE

「GNU Emacs」- 常用 Buffer 操作

结束多个 Buffer(匹配特地模式): 1)M-x kill-matching-buffer
显示当前 Buffer 关联的文件名: 1)M-: buffer-file-name 2)或者,利用保存,此时将在 MiniBuffer 中将显示当前文件名;
参考文献
emacs kill multiple buffers by using regex – Stack Overflow emacs – The function to show current file’s full path in mini buffer – Stack Overflow[……]

READ MORE

「Emacs」- 编辑二进制文件

使用 hexl-mode 进入二进制模式。另外 nhexl-mode 使用不同技术实现 hexl-mode 功能。
但是该模式对于二进制文件,但是只能编辑,不能编写。
编写二进制文件的方法
03/22/2020 目前还没有找到编写二进制文件的插件。为了能够编写二进制文件,我们可以先创建内容只有 NUL 的文件。但是依旧很难用,每输入一次就要按一次快捷键。我们决定还是用 hexedit 进行编辑。
参考文献
Emcas Manual/43 Editing Binary Files[……]

READ MORE

「Emacs」- 快捷键绑定

在终端下,使用 Emacs 时的组合健:http://blog.chinaunix.net/uid-21977330-id-3733604.html
查看全部快捷键绑定:C-h b
退出 Emacs:C-x C-c 创建“Frame”:C-x 5 2 关闭“Frame”:C-x 5 0
Frame
Creating Frames Frame Commands
Window

快捷键
功能

C-x 0
关闭 Window 但是不结束 Buffer

Buffer
参考文献
Learning emacs part 4: buffers, windows, and frames keymap – How do I list all key-bindings available in a given buffer? – Emacs Stack Exchange[……]

READ MORE