📄 history.c
字号:
#include "ysh.h"
#include "extern.h"
void add_history(char *inputcmd)
{
envhis.end=(envhis.end+1)%HISNUM; /*end前移一位*/
if (envhis.end==envhis.start){ /*end和start指向同一数组*/
envhis.start=(envhis.start+1)%HISNUM; /*start前移一位*/
}
strcpy(envhis.his_cmd[envhis.end],inputcmd); /*将命令复制到end指向的数组中*/
}
void history_cmd()
{
int i,j=0;
if (envhis.start==envhis.end) /*循环数组为空*/
return;
else if (envhis.start<envhis.end) { /*start<end时*/
for (i=envhis.start + 1;i<=envhis.end;i++) { /*显示start+1到end数组中的命令*/
printf("%d\t%s\n",j,envhis.his_cmd[i]);
j++;
}
}else { /*start>end时*/
for (i=envhis.start + 1;i<HISNUM;i++) { /*显示start+1到HISNUN数组中的命令*/
printf("%d\t%s\n",j,envhis.his_cmd[i]);
j++;
}
for (i=0;i<=envhis.end;i++) { /*显示0到end数组中的命令*/
printf("%d\t%s\n",j,envhis.his_cmd[i]);
j++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -