Linux gedit配置
编辑-首选项-插件 里打开外部工具
编译:
#!/bin/sh
name=$GEDIT_CURRENT_DOCUMENT_NAME
name2=${name%.*}
g++ $name -o $name2 -g
运行:
#!/bin/sh
name=$GEDIT_CURRENT_DOCUMENT_NAME
name2=${name%.*}
ulimit -s unlimited
g++ $name -o $name2 -g
gnome-terminal -x bash -c "time ./$name2;echo;read;"
#!/bin/sh
加高亮(?
name=$GEDIT_CURRENT_DOCUMENT_NAME
找到当前的文件名.cpp(可以在 工具-构建 里找到DIR=$GEDIT_CURRENT_DOCUMENT_DIR,改成NAME)
name2=${name%.*}
https://www.cnblogs.com/chengd/p/7803664.html
${string%ch*},意思是去掉string中最后一个ch及其后面的部分
所以name=文件名.cpp,name2=文件名
ulimit -s unlimited
解除栈空间限制
g++ $name -o $name2 -g
编译,-o前面的是cpp后面是可执行文件,-g添加gdb
gnome-terminal -x bash -c "time ./$name2;echo;read;"
gnome-terminal是打开终端(可以在 工具-在此处打开终端 里找到)
直接写是只打开,gnome-terminal -x表示打开并执行后面的所有命令,不用加其他符号
https://blog.csdn.net/zong596568821xp/article/details/78623130
问题是直接写gnome-terminal -x ./$name2运行结束后会直接退,所以再加上bash
bash -c "string"表示运行命令string,echo+空 是换行,read等于pause,命令用分号隔开
加上time看运行时间
然后就可以用♂了
改一下得到一键gdb:
#!/bin/sh
name=$GEDIT_CURRENT_DOCUMENT_NAME
name2=${name%.*}
ulimit -s unlimited
g++ $name -o $name2 -g
gnome-terminal -x bash -c "gdb $name2"
初始:
#!/bin/sh
printf '%s\n' '#include <bits/stdc++.h>'
printf '%s\n' '#define fo(a,b,c) for (a=b; a<=c; a++)'
printf '%s\n' '#define fd(a,b,c) for (a=b; a>=c; a--)'
printf '%s\n' '#define ll long long'
printf '%s\n' '#define file'
printf '%s\n' 'using namespace std;'
printf '%s\n' ''
printf '%s\n' 'int main()'
printf '%s\n' '{'
printf '%s\n' ' freopen("a.in","r",stdin);'
printf '%s\n' ' #ifdef file'
printf '%s\n' ' freopen("a.out","w",stdout);'
printf '%s\n' ' #endif'
printf '%s\n' ' '
printf '%s\n' ' fclose(stdin);'
printf '%s\n' ' fclose(stdout);'
printf '%s\n' ' return 0;'
printf '%s' '}'
数据:
#!/bin/sh
printf '%s\n' '#include <bits/stdc++.h>'
printf '%s\n' '#define fo(a,b,c) for (a=b; a<=c; a++)'
printf '%s\n' '#define fd(a,b,c) for (a=b; a>=c; a--)'
printf '%s\n' '#define ll long long'
printf '%s\n' 'using namespace std;'
printf '%s\n' ''
printf '%s\n' 'int random(int x,int y) {return (233333ll*rand()+rand())%(y-x+1)+x;}'
printf '%s\n' ''
printf '%s\n' 'ifstream f1;'
printf '%s\n' 'ofstream f2;'
printf '%s\n' 'int Seed;'
printf '%s\n' ''
printf '%s\n' 'int main()'
printf '%s\n' '{'
printf '%s\n' ' f1.open("test.txt");'
printf '%s\n' ' f1>>Seed;'
printf '%s\n' ' f1.close();'
printf '%s\n' ' srand(time(NULL)+Seed);rand();'
printf '%s\n' ' f2.open("test.txt");'
printf '%s\n' ' f2<<random(1,1000000000);'
printf '%s\n' ' f2.close();'
printf '%s\n' ' freopen("a.in","w",stdout);'
printf '%s\n' ' '
printf '%s\n' ' fclose(stdin);'
printf '%s\n' ' fclose(stdout);'
printf '%s\n' ' return 0;'
printf '%s' '}'
对拍:
#!/bin/sh
printf '%s\n' '#include <bits/stdc++.h>'
printf '%s\n' '#define fo(a,b,c) for (a=b; a<=c; a++)'
printf '%s\n' '#define fd(a,b,c) for (a=b; a>=c; a--)'
printf '%s\n' '#define ll long long'
printf '%s\n' '#define file'
printf '%s\n' 'using namespace std;'
printf '%s\n' ''
printf '%s\n' 'int tot;'
printf '%s\n' ''
printf '%s\n' 'int main()'
printf '%s\n' '{'
printf '%s\n' ' while (1)'
printf '%s\n' ' {'
printf '%s\n' ' system("./_data");'
printf '%s\n' ' system("./_bl");'
printf '%s\n' ' system("./");'
printf '%s\n' ' if (system("diff a.out .out -b")) return 0;'
printf '%s\n' ' ++tot;'
printf '%s\n' ' cout<<tot<<endl;'
printf '%s\n' ' }'
printf '%s' '}'
diff加个-b可以忽略空格的不同(windows/linux)
神必1:
#!/bin/bash
st='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_=+[]{}\;:/?,.<>1234567890'
aa=$(($RANDOM%89))
bb=$(($RANDOM%89))
ch1=${st:$aa:1}
ch2=${st:$bb:1}
sed s/$ch1/$ch2/
其他以后再加