emacs与konsole不对付的那点事

作为Linux重度用户,折腾过各式各样的WM/DE,最终还是觉得KDE PLASMA的易用性和美观程度是最佳的,考虑到不折腾的缘故,一直使用KDE至今,虽则时有crash,但总体上不优点大于缺点,瑕不掩瑜。

在linux上,存在较多的终端仿真器,即terminal emulator,所谓的仿真器就是把图形系统即X窗口上的键盘输入,转化成virtual terminal的输入,传送给那些将标准输入关联在/dev/pts这些伪终端设备上的控制台程序,使得这些控制台程序能够像在文本模式下那样工作。

这些仿真器中就包括KDE自带的konsole。

但konsole有一个问题就是,如果我们在终端仿真器里进行emacs -nw即文本模式的emacs(图形模式下不存在下面所述问题),则ctrl+2/ctrl+2这个emacs默认用来激活mark的命令大概率不能用,当然ctrl+space也可以用,但对于中文用户而言,ctrl+space大多绑定到输入法中英文切换,相应的键不能用,还是带来了诸多不便。

由于konsole可以通过手工设置key binding,因此可以手工将ctrl+2这个键绑定到发送\0这个控制序列给终端程序,来解决此问题,但对于适应了ctrl+@这个相似功能的键位的用户来说,目前key binding无法设置,仍是非常不便。

https://bugs.kde.org/show_bug.cgi?id=341157 KDE社区有人提了类似的bug,且已经解决,但似乎只解决了西语用户所关注的ctrl+space问题,但ctrl+@这个仍未解决,我已经提供了相关的反馈,期待进一步的进展。

:::console
fortitude@fortitude:~$ konsole -version
QCoreApplication::arguments: Please instantiate the QApplication object first
Qt: 5.5.1
KDE Frameworks: 5.19.0ppp
Konsole: 15.12.2

由于C++代码不够熟悉,自己也没有过我的精力去钻研这里,就先写在这里,供遇到相似问题的朋友参考关注。

Emacs批量重命名文件

对于Emacs党来说,最好什么事情都能在Emacs中用键盘完成,即酷又方便,今天在编码过程中决定对一批文件进行重命名,发现在Emacs里完成这件事是相当的直觉(intuitive,直觉很重要,我个人很喜欢这种方式,因为通过减少思考而能够形成潜意识,从而提高效率),总结下来一共如下四步:

1> 使用find-dired命令找到所有待修改的文件

/home/fortitude/tmp/:
find . \( -name "test*" \) -ls
1180244    0 -rw-r--r--   1 fortitude bigdog          0 1月 31  2013 test.py~
1224276    4 -rw-r--r--   1 fortitude bigdog         36 1月 31  2013 test.py
1180238    4 -rw-r--r--   1 fortitude bigdog        142 1月 31  2013 test.pyc

2> 使用wdired-change-to-wdired-mode命令切换dired模式到wdired模式,即可编辑的dired模式

注意modeline上将出现Editable Dired标识

3> 像替换buffer一样替换上面的test为test1,祭出Emacs的各种编辑功能:)

/home/fortitude/tmp/:
find . \( -name "test*" \) -ls
1180244    0 -rw-r--r--   1 fortitude bigdog          0 1月 31  2013 test1.py~
1224276    4 -rw-r--r--   1 fortitude bigdog         36 1月 31  2013 test1.py
1180238    4 -rw-r--r--   1 fortitude bigdog        142 1月 31  2013 test1.pyc

4> 使用wdired-finish-edit1(默认快捷键为C-c C-c)来保存配置,批量编辑完成

/home/fortitude/tmp:
总用量 100
drwxr-xr-x  3 fortitude bigdog 4096 5月   5 23:22 .
drwxr-xr-x 84 fortitude bigdog 4096 5月   5 22:47 ..
-rw-r--r--  1 fortitude bigdog   36 1月  31 2013 test1.py
-rw-r--r--  1 fortitude bigdog    0 1月  31 2013 test1.py~
-rw-r--r--  1 fortitude bigdog  142 1月  31 2013 test1.pyc

我认为这里最酷的东西就是wdired-change-to-wdired-mode这个命令了,使得编辑文件名如同编辑buffer一样,相当惊喜!