Tachibana Yuuki's Blog

∄

嘈杂喧闹的网络世界不再适合我。

Vim功能:按下两次 ! 可执行外部命令并把命令输出插入到光标所在位置。

ZSH功能:可使用alias设置命令别名。

~/.zshenv
1
alias -g mypgp="gpg --armor --export <PGP-Public-Key-ID>"

您可以自由更改mygpg为任何您想要的别名。

使用.zshenv可以让设置全局生效,只要命令通过zsh执行(除非使用-f选项指定了脚本)。

您可以尝试将上述内容添加到.zshrc然后试验一下效果,您将可以在TTY和Terminal环境下使用别名(alias),但是不能在Vim中通过外部命令执行alias。

然后,在Vim中尝试:

  1. 按下两次 !
  2. 键入mypgp

大功告成,你也可以把相同的方法运用在其它命令上。

Image Copyright reserved 图像著作权保留

以下两张截图来自易语言编辑器,该界面设计版权归属原作者所有。
The following two screenshots are from Easy Language editor, and the copyright of the user interface design belongs to the original author.

Edit locale.gen:

/etc/locale.gen
1
2
3
4
5
# Uncomment these lines
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN GB2312

Then, run command:

1
sudo locale-gen

Start wine:

1
2
export LC_ALL=zh_CN.GBK # Change zh_CN.GBK to zh_CN.GB2312 / zh_CN.GB18030 if it does not work
wine <excutable.exe>

抓取整个站点:

1
wget -m -r -p -np -k -E 'https://example.com'
1
2
3
4
-r # 递归抓取
-k # 修复绝对链接为相对链接,适合本地浏览
-m # 镜像
-E # 将 MIME TYPE 为 `text/html` 的文档用 `.html` 扩展名保存
1
-e robots=off # 忽略 robots.txt 进行抓取,请注意这样使用可能违法

原作者没有特别声明,默认保留所有权利

Anaconda with clear command

Anaconda 导致:

  • clear 命令不起作用
    • 显示 terminals database is inaccessible
1
2
$ clear
terminals database is inaccessible

https://github.com/ContinuumIO/anaconda-issues/issues/331

1
sudo mv $CONDA_PREFIX/bin/clear $CONDA_PREFIX/bin/clear_old

Anaconda with ibus

Anaconda 导致:

  • ibus 冲突
    • 提示无法导入 gi
1
2
3
4
5
$ ibus-setup
Traceback (most recent call last):
File "/usr/share/ibus/setup/main.py", line 34, in <module>
from gi import require_version as gi_require_version
ImportError: cannot import name 'require_version'

Solution 1

https://blog.csdn.net/weixin_30764771/article/details/96301488

1
2
3
4
# Check where Anaconda is
whereis anaconda # anaconda: /opt/anaconda/bin/anaconda
# Disable it
sudo chmod 000 /opt/anaconda/
阅读全文 »

55分:考虑 father[i]=i-1 的情况

Online

样例:

1
2
3
01234567 // Pos
()()(()) // Stdin
01020013 // a[i] 贡献度
1
2
3
0123456 // Pos
((())() // Stdin
0001102 // a[i] 贡献度

说明:

1
2
3
4
5
6
7
for(int i=1; i<=stdin.size(); i++){
case stdin[i]=='(': stack.push(i);
break;
case stdin[i]==')': int tmp = stack.pop();
a[i]=a[father[tmp]]+1;
break;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<bits/stdc++.h>
using namespace std;

unsigned long long n, k, ans=0;
bool a[100];

int main(){
cin>>n>>k;
while(n){
if(k<(1ull<<(n-1))){
a[n--]=0;
cout<<0;
k=k&((1ull<<n)-1);
}else{
a[n--]=1;
cout<<1;
k=k&((1ull<<n)-1);
k=((1ull<<n)-1)-k;
}
}
cout<<endl;
return 0;
}

首先需要卸载挂载:

1
umount <path-to-mount-file>

如果你使用nautilus文件管理器,其左栏中有一方便的按钮可以轻松卸载设备。

对于更普遍的情况,使用udisksctl关闭设备电源:

1
udisksctl power-off -p <block-device-path>

然后再移除设备。

最近换用了Arch,每天开机第一件事就是pacman -Syu

非常推荐有一定技术能力的人去尝试Arch,无论是学习还是实用,Arch is the best。

Arch特点

Arch采用滚动更新,这意味着所有最新的功能都会立刻推送给用户,其它非Arch衍生发行版都不具有这样的优势。

Arch的包管理器是pacman,相比于yumapt,pacman有更大的自由空间。

AUR——Arch用户仓库,包含的其它人自己编写的安装脚本或软件,虽然不受官方支持,但是软件极其丰富,基本涵盖日常需要。

Arch Linux Wiki,有着最齐全的Linux资料,即使你不使用,其上的资料也有很大的参考价值。

BTW I use Arch

我不推荐使用Manjaro,虽然它提供一个开箱即用的环境,但是维护起来仍然需要一定的Linux知识,维护难度几乎与Arch相当,甚至更高。

Arch的安装方式只有命令行,相比于Ubuntu、Debian、CentOS显得更难,但是纯命令行界面允许用户按其所想自由定制。

Arch安装完后不会有多余的预装软件,一切由用户决定。

对于新手,建议从Ubuntu开始入门。

谨记,安装Arch时必须要打开官方教程和搜索引擎,所有的报错信息务必先理解然后再解决,这是一种学习。

本文内容已过期。

Ubuntu:

1
2
sudo apt-get install libcrypto++6 libcrypto++-dev -y
pkg-config --cflags libcrypto++

Arch Linux:

1
2
sudo pacman -Syyu crypto++
pkg-config --cflags libcryptopp

为什么会有这么多的别名