精华内容
下载资源
问答
  • vi:Visual Editor的缩写,是一种命令行界面的文本编辑器。 vim:Vi IMproved(增强版vi) 1、用不同颜色显示文字内容(vi的是黑白的) 2、进行诸如shell脚本,c等程序编辑功能 3、可以视为一种程序编辑器。 vim...

    vim的工作模式

    vi:Visual Editor的缩写,是一种命令行界面的文本编辑器。

    vim:Vi IMproved(增强版vi)
    1、用不同颜色显示文字内容(vi的是黑白的)
    2、进行诸如shell脚本,c等程序编辑功能
    3、可以视为一种程序编辑器。
    在这里插入图片描述

    vim安装命令

    yum install -y vim-enhanced
    

    vim的3种工作模式(重点)

     ①一般模式(也叫指令模式):光标移动、删除、复制粘贴、查找替换。
     
     ②编辑模式:编辑文本,进行文本的插入或者替换等。
     
    ③命令行模式:保存文件,离开vi,读入文件,显示行号等。
    

    在这里插入图片描述
    在这里插入图片描述
    操作:
    运行vim

    vim   filename
    

    如果有该文件,则打开文件;如果没有,则新建文件,因此,该命令无论什么时候都不会报错。
    在这里插入图片描述
    回车进入vim工作界面,此时是一般模式:
    在这里插入图片描述
    如果要输入内容,要从一般模式切换成编辑模式(输入i,I,a,A,r,R任意一个):
    ①插入模式(insert):i, I

    ②插入模式(append):a , A

    ③插入模式(open): o , O

    ④替换模式(replace):r, R

    注意:按【Esc】键退出编辑模式,回到一般模式中。
    在这里插入图片描述
    输入完成后,要保存,在编辑模式不能保存,要用命令行模式。编辑模式不能直接切换成命令行模式,要先切成一般模式(按Esc),再切命令行模式(按:):
    在这里插入图片描述

    vim常见命令

    一般模式下的快捷键

    移动光标:

    h, j, k, l, H, M, L,G, 1G, nG, n<space>, n[Enter], 0或者【Home】, $或者【End】
    

    删除、复制与粘贴:

    x相当于【Del】,X,nx,dd,ndd,d1G,dG,d$,d0,yy,nyy,y1G,yG,y0,y$,
    

    p为将已复制的数据在光标下一行粘贴(小写p),

    P为将已复制的数据在光标上一行粘贴(大写P)

    u:复原前一个操作

    【Ctrl】+r:重做上一个操作

    . :重复前一个操作

    查找与替换:

     /word     ?word       n       N
    
    :n1,n2s/word1/word2/g
    
     :1,$s/word1/word2/g
    
     : 1,$s/word1/word2/gc
    

    在这里插入图片描述
    n+方向键(n为一个数字):移动多个字符
    例:
    光标向左移动8个字符:8h 或 8←
    光标向右移动20个字符:20l 或 20→ 或20空格

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    vim的其他事项——文件救援

    在使用vim 编辑时, vim 会在被编辑的文件的目录下,再建立一个名为 .filename.swp的文件(临时的交换文件,用于备份缓冲区中的内容)。

    如果只读取文件,没有对文件进行修改,是不会建立.filename.swp文件的。

    如果你的系统因为某些原因断线了, 导致你编辑的文件还没有储存,就可以通过.filename.swp恢复原文件

    在这里插入图片描述
    操作:

    新建文件:
    在这里插入图片描述
    回车,按i,输入文本内容:
    在这里插入图片描述
    不保存,之间关掉终端,然后再次打开终端,查看文件,看到产生了.swp文件:
    在这里插入图片描述
    再次打开aa.txt:
    在这里插入图片描述
    在这里插入图片描述
    如果要恢复,按R,回车,就回到编辑页面了
    这次按Esc,输入:wq保存:
    在这里插入图片描述
    然后再进一次:
    在这里插入图片描述
    还是会看到以下界面;
    在这里插入图片描述
    因为.swp还没有删除,要手动删除之后,才不会有这个提示:
    在这里插入图片描述
    然后再 vim aa.txt就是直接正常打开了

    vim的其他事项——改变颜色

    vi /etc/profile 打开文件:
    在这里插入图片描述
    可以看到字体是纯黑的
    vim /etc/profile 打开:
    在这里插入图片描述
    可以看到代码是有颜色的,可读性较好
    (所以推荐编程序时使用vim)

    vim的其他事项——多窗口编辑

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    操作示例:
    这里用O,垂直分割:
    在这里插入图片描述
    在这里插入图片描述
    要切换的话,先按Ctrl+w,松手,然后按←或→,每次切换都要先按一次Ctrl+w

    如果现在只想保留当前的窗口,其他的都关掉,按Esc,输入:only,回车;

    此时想再打开3.java文件,按Esc,输入:sp 3.java
    在这里插入图片描述
    此时上面是3.java,下面是2.java

    如果想退出2.java,保留3.java,先Ctrl+w,松手,按↓,切到2.java的窗口,然后按Esc,输入:q ,就只剩下3.java:

    vim的其他事项——多文件编辑

    在这里插入图片描述
    操作示例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    但是切换不是循环结构,再输入:n不会回到1.java,要回1.java只能通过:N
    在这里插入图片描述
    如果要查看现在vim都打开了哪些文件,用:files
    在这里插入图片描述
    后面的行数是说明之前打开文件时光标最后停在了哪一行

    vim的其他事项——块选择

    在这里插入图片描述
    操作示例:
    在这里插入图片描述
    按下v:
    在这里插入图片描述
    此时按上下左右的箭头就可以进行字符选择,这里选择到三个单词,然后按y就可以复制:
    在这里插入图片描述
    到最后一行,按p,就可以进行粘贴:
    在这里插入图片描述
    按V,按上下箭头可选择行:
    在这里插入图片描述
    按y,复制:
    在这里插入图片描述
    下面没有行号了。就按i进入编辑模式,敲几个回车,按Esc回到一般模式,按p粘贴:
    在这里插入图片描述
    区块选择:
    按Ctrl+v,按箭头选择(是长方形的):
    在这里插入图片描述
    按y复制,按p粘贴
    删除也一样,选中,然后按d删除

    综合练习

    1.请在 /tmp 这个目录下建立一个名为 vimtest 的目录;

    mkdir /tmp/vimtest
    

    2.进入 vimtest 这个目录当中;

    cd /tmp/vimtest
    

    3.将 /etc/man.config 复制到本目录下;

    cp /etc/man.config .
    

    4.使用 vim 打开本目录下的 man.config 这个文件;

    vim man.config
    

    5.在 vim 中设定一下行号;

    :set nu     (然后你会在画面中看到左侧出现数字即为行号。)
    

    6.移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?

    先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;
    

    7.移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?

    先执行『1G』或『gg』后,直接输入『/bzip2』,则会去到第 118 行才对!
    

    8.接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』,结果会在最后一行出现改变了几个 man 呢?

    直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换 25个字符串』的说明。
    

    9.修改完后,突然反悔了,要全部复原,有哪些方法?

    (1)简单的方法可以一直按『 u 』回复到原始状态,
    (2)使用丌储存离开『 :q! 』之后,再重新读取一次该文件;
    

    10.我要复制 65 到73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;

    『65G』 然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。按下『 G 』到最后一行,再给他『 p 』贴上九行!
    

    11.21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?

    因为 21~42 22 行,因此『 21G 』→『 22dd 』就能删除22 行,此时你会収现游标所在 21 行的地方变成MANPATH 开央啰, 批注的 # 符号那几行都被删除了。
    

    12.将这个文件另存成一个 man.test.config 的文件名;

    『 :w man.test.config 』,你会发现最后一行出现 "man.test.config" [New].. 的字样。
    

    13.去到第 27 行,并且删除 15 个字符,结果出现的第一个单词是什么?

    『27G』 之后,再给他『15x 』即可删除 15 个字符,出现『 you 』的字样;
    

    14.在第一行新增一行,该行内容输入『I am a student…』;

    先『 1G 』去到第一行,然后按下大写的『 O 』便新增一行且在插入模式;开始输入『I am a student...』后,按下[Esc]回到一般模式等待后续工作;
    

    15.储存后离开vim。

    :wq
    
    展开全文
  • 一,静态文本编辑器Edit Control 第一个小控件案例(不全) 可以通过GetDlgItemText(控件id,接收数据的变量)和SetDlgItemText(控件id,带有数据的变量)方法直接通过控件的ID获取或修改控件的值 Edit Control: 属性...

    一,静态文本编辑器Edit Control

    第一个小控件案例(不全)
    可以通过GetDlgItemText(控件id,接收数据的变量)和SetDlgItemText(控件id,带有数据的变量)方法直接通过控件的ID获取或修改控件的值

    Edit Control:

    1. 属性
      1. Horizontal Scroll: 水平滚动条
      2. Vertical Scroll:垂直滚动条
      3. want return :是否接收回车
      4. ···
        在这里插入图片描述
    void Cmfc011105Dlg::OnBnClickedButtonCount()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	//统计文本框中输入的字符的个数
    	CString strLength;
    	GetDlgItemText(IDC_EDIT_INPUT,strLength);
    	int n = strLength.GetLength();
    
    	CString strOutput;
    	strOutput.Format(_T("字符串长度为:%d, 字符个数为:%d"), n, n);
    	SetDlgItemText(IDC_STATIC_OUTPUT,strOutput);
    }
    
    
    展开全文
  • 答案怎么网课@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们...

    答案怎么网课@TOC

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block var foo = 'bar'; 

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目 Value
    电脑 $1600
    手机 $12
    导管 $1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列 第二列 第三列
    第一列文本居中 第二列文本居右 第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPE ASCII HTML
    Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
    Quotes "Isn't this fun?" “Isn’t this fun?”
    Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to-HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

    Γ(z)=0tz1etdt&ThinSpace;. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    gantt
            dateFormat  YYYY-MM-DD
            title Adding GANTT diagram functionality to mermaid
            section 现有任务
            已完成               :done,    des1, 2014-01-06,2014-01-08
            进行中               :active,  des2, 2014-01-09, 3d
            计划一               :         des3, after des2, 5d
            计划二               :         des4, after des3, 5d
    
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

    张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • 网课脚本

    2021-03-30 10:22:19
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    // UserScript
    // @name 知到/智慧树网课助手(稳)
    // @namespace
    // @version 1.0.7
    // @description 自动挂机看智慧树/知到MOOC,支持自动切换下一节,章节测试和kaoshi支持自动答题,视频自动倍速播放、默认静音等,解除各类功能限制;
    // @author aliang
    // @match 😕/.zhihuishu.com/*
    // @connect api.s759n.cn
    // @grant unsafeWindow
    // @grant GM_xmlhttpRequest
    // @grant GM_setClipboard
    // @supportURL 222
    // @license MIT
    // /UserScript

    // 设置修改后,需要刷新或重新打开网课页面才会生效
    var setting = {
    // 5E3 == 5000,科学记数法,表示毫秒数
    time: 3E3 // 默认响应速度为5秒,不建议小于3秒
    ,token: ‘’ // 捐助用户可以使用定制功能,更精准的匹配答案,此处填写捐助后获取的识别码

    // 1代表开启,0代表关闭
    ,video: 1 // 视频支持课程、见面课,默认关闭
    ,work: 1 // 自动答题功能,支持章测试、考试,高准确率,默认开启
    ,jump: 1 // 自动切换视频,支持课程、见面课,默认关闭
    
    // 仅开启video时,修改此处才会生效
    ,line: '流畅' // 视频播放的默认线路,可选参数:['高清', '流畅', '校内'],默认'流畅'
    ,vol: '0' // 默认音量的百分数,设定范围:[0,100],'0'为静音,默认'0'
    ,speed: '30' // 进度统计速率,高倍率可以快速完成任务点,设定范围:(0,+∞),默认'1.5'倍
    
    
    // 上方参数支持在页面改动,下方参数仅支持代码处修改
    ,que: 1 // 屏蔽视频时间点对应的节试题,取消屏蔽则自动切换为模拟点击关闭弹题,默认开启
    ,danmu: 1 // 见面课弹幕,关闭后在网页中无法手动开启,默认关闭
    ,habit: '0' // 限制视频挂机时长,单位是分钟,如需挂机习惯分,可以修改参数为'30',默认不限制
    
    // 仅开启work时,修改此处才会生效
    ,none: 0 // 无匹配答案时执行默认操作,默认关闭
    ,hide: 0 // 不加载答案搜索提示框,键盘↑和↓可以临时移除和加载,默认关闭
    

    },
    _self = unsafeWindow,
    url = location.pathname,
    $ = _self.jQuery,
    xhr = _self.XMLHttpRequest;

    String.prototype.toCDB = function() {
    return this.replace(/\s/g, ‘’).replace(/[\uff01-\uff5e]/g, function(str) {
    return String.fromCharCode(str.charCodeAt(0) - 65248);
    }).replace(/[“”]/g, ‘"’).replace(/[‘’]/g, “’”).replace(/。/g, ‘.’);
    };

    // setting.time += Math.ceil(setting.time * Math.random()) - setting.time / 2;
    setting.queue = setting.curs = [];

    if (!$) {
    } else if (url.match(’/videoList’)) {
    $.tmDialog.alert({content: ‘2.X版本已取消支持旧版界面,问题反馈加QQ:2116718937’, title: ‘提示’});
    } else if (url == ‘/videoStudy.html’) {
    setting.habit *= 6E4;
    setting.video && hookVideo(_self.vjsComponent, 1);
    setting.jump && setInterval(checkToNext, setting.time);
    } else if (url == ‘/portals_h5/2clearning.html’) {
    setting.video && hookVideo(_self.vjsComponent, 2);
    setting.jump && setInterval(checkToNext, setting.time);
    } else if (url == ‘/live/vod_room.html’) {
    setting.video && hookVideo(_self.vjsComponent);
    setting.jump && setInterval(checkToNext, setting.time, 1);
    } else if (location.hostname.match(‘examh5’)) {
    setTimeout(relieveLimit, 100, document);
    if (location.hash.match(/dohomework|doexamination/) && setting.work) beforeFind();
    $(window).on(‘hashchange’, function() {
    setting.work && location.reload();
    });
    } else if (url.match(’/sourceLearning’)) {
    setting.video && hookVideo(_self.vjsComponent, 3);
    setting.jump && setInterval(checkToNext, setting.time, $(’.source-file-item’));
    } else if (url == ‘/shareCourse/questionDetailPage’) {
    setTimeout(relieveLimit, 100, document);
    $(‘textarea[oncut]’).each(function() {
    setTimeout(relieveLimit, 100, this);
    });
    } else if (url.match(‘exerciseList’) && setting.work) {
    _self.XMLHttpRequest = hookHiexam;
    setInterval(function() {
    $(setting.queue.shift()).parent().click();
    }, 1E3);
    setting.jump && setInterval(function() {
    // var $li = setting.queue.length ? $() : $(’.jobclassallnumber-div li’);
    // li.slice(li.slice(li.index($(’.greenbordercur’)) + 1).not(’.greenbgcur’).eq(0).click();
    setting.queue.length || $(’.Topicswitchingbtn:contains(下一题)’).click();
    }, setting.time);
    }

    function hookVideo(Hooks, tip) {
    // _self.PlayerUtil.debugMode = true;
    _self.vjsComponent = function() {
    var config = arguments[0],
    options = config.options,
    line = $.map(options.sourceSrc.lines, function(value) {
    return value.lineName.replace(‘标准’, ‘高清’);
    }),
    vol = setting.vol > 100 ? 100 : setting.vol,
    rate = tip == 3 ? [1, 1.25, 1.5, 2, 2.5, 3] : [1, 1.25, 1.5];
    vol = Math.round(vol) / 100;
    options.volume = vol > 0 ? vol : 0;
    options.autostart = true;
    setting.speed = setting.speed > 0 ? +setting.speed : 1;
    options.rate = $.inArray(setting.speed, rate) < 0 ? options.rate : setting.speed;
    tip && config.callback.playbackRate(setting.speed);
    options.chooseLine = $.inArray(setting.line, line) + 1 || options.chooseLine + 1;
    options.src = options.sourceSrc.lines[–options.chooseLine].lineUrl || options.src;
    if (!setting.danmu) {
    config.defOptions.control.danmuBtn = false;
    delete options.control.danmuBtn;
    }
    Hooks.apply(this, arguments);
    config.player.on(‘loadstart’, function() {
    this.loop(true);
    this.play();
    $(’.speedBox span’).text(‘X ’ + setting.speed);
    });
    };
    $(document).on(‘click’, ‘.definiLines b’, function() {
    setting.line = ({xiaonei: ‘校内’, line1gq: ‘高清’, line1bq: ‘流畅’})[this.classList[0]];
    }).on(‘mouseup click’, function() {
    setting.vol = self.PlayerStarter.playerArray[0].player.cache.volume * 100;
    }).on(‘click’, ‘.speedList div’, function() {
    setting.speed = $(this).attr(‘rate’);
    });
    if (tip != 1) return;
    setting.tip = setting.habit && setInterval(totalTime, setting.time);
    setInterval(doTest, 1E3);
    _self.XMLHttpRequest = setting.que ? function() {
    var ajax = new xhr(),
    open = ajax.open;
    ajax.open = function(method, url) {
    if (url.match(’/loadVideoPointerInfo’)) method = ‘OPTIONS’;
    return open.apply(this, arguments);
    };
    return ajax;
    } : xhr;
    }

    function totalTime() {
    var player = _self.PlayerStarter.playerArray[0].player;
    setting.habit -= player.paused() ? 0 : setting.time;
    if (setting.habit >= 0) return;
    clearInterval(setting.tip);
    player.pause();
    $.getScript(’//cdn.jsdelivr.net/gh/sentsin/layer/dist/layer.js’, function() {
    _self.layer.open({content: ‘已达到挂机限制时间’, title: ‘提示’, end: function() {
    setting.habit = 0;
    }});
    });
    }

    function checkToNext(tip) {
    if (setting.habit < 0) return;
    var $tip = (.video,.lessonItem);if(('.video, .lessonItem'); if ((’.current_play .time_icofinish’).length) {
    tip.slice(tip.slice(tip.index(KaTeX parse error: Expected 'EOF', got '}' at position 73: …).click(); }̲ else if ((’.lessonItemActive .finish’).length) {
    // _self.PlayerStarter.playerArray[0].callback.playerNext();
    tip.slice(tip.slice(tip.index($(’.lessonItemActive’)) + 1).not(’:has(.finish)’).eq(0).click();
    } else if (tip == 1) {
    $(’.current_player:contains(“100%”) + li’).click();
    // KaTeX parse error: Expected 'EOF', got '}' at position 66: …('签到已完成'); }̲ else if ((’.settleOn .finish’).length) {
    tip.slice(tip.index($(’.settleOn’)) + 1).not(’:has(.finish)’).eq(0).find(’.file-name’).click();
    }
    }

    function doTest() {
    if (!$(’.dialog-test’).length) {
    } else if (setting.queue.length) {
    KaTeX parse error: Expected 'EOF', got '}' at position 47: …).click(); }̲ else if (!(’.answer’).length) {
    KaTeX parse error: Expected 'EOF', got '}' at position 36: …).click(); }̲ else if (!(’.right’).length) {
    var tip = $(’.answer span’).text().match(/[A-Z]/g) || [];
    if (tip.length == 1) return $(’.topic-option-item:contains(’ + tip[0] + ‘)’).click();
    $(’.topic-option-item’).each(function() {
    .inArray(.inArray((this).text().slice(0, 1), tip) < 0 == KaTeX parse error: Expected 'EOF', got '&' at position 27: …lass('active') &̲& setting.queue…(’.btn-next:enabled’).length) {
    $(’.btn-next:enabled’).click();
    } else {
    $(’.dialog-test .btn’).click();
    _self.PlayerStarter.playerArray[0].player.play();
    }
    }

    function relieveLimit(doc) {
    if (!doc.oncut && !doc.onselectstart) return setTimeout(relieveLimit, 100, doc);
    doc.oncontextmenu = doc.onpaste = doc.oncopy = doc.oncut = doc.onselectstart = null;
    }

    function beforeFind() {
    setting.div = $(

    ’ +
    ’ +
    正在搜索答案…
    ’ +
    ‘暂停答题’ +
    ‘重新查询’ +
    ‘折叠面板’ +
    ‘未作答题目’ +
    ‘’ +
    ’ +
    ‘’ +
    ~ ’ +
    ‘’ +
    ‘’ +
    ’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    ‘’ +
    题号题目(点击可复制)答案(点击可复制)
    答案提示框 已折叠
    ’ +
    ’ +

    ).appendTo(‘body’).on(‘click’, ‘button, td’, function() {
    var len = $(this).prevAll(‘button’).length;
    if (this.nodeName == ‘TD’) {
    KaTeX parse error: Expected 'EOF', got '&' at position 22: ….prev().length &̲& GM_setClipboa…(this).text());
    } else if (len === 0) {
    if (setting.loop) {
    clearInterval(setting.loop);
    delete setting.loop;
    len = [false, ‘已暂停搜索’, ‘继续答题’];
    } else {
    setting.loop = setInterval(findAnswer, setting.time);
    len = [true, ‘正在搜索答案…’, ‘暂停答题’];
    }
    setting.div.find(‘input’).attr(‘disabled’, len[0]);
    setting.div.children(‘div:eq(0)’).html(function() {
    return $(this).data(‘html’) || len[1];
    }).removeData(‘html’);
    $(this).html(len[2]);
    } else if (len == 1) {
    location.reload();
    } else if (len == 2) {
    setting.div.find(‘tbody, tfoot’).toggle();
    } else if (len == 3) {
    var $li = $(’.el-scrollbar__wrap li’),
    $tip = $li.filter(’.white, .yellow’).eq(0);
    $tip.click().length ? setting.div.children(‘div:last’).scrollTop(function() {
    var $tr = $(‘tbody tr’, this).has(‘td:nth-child(1):contains(’ + tip.text()+));if(!tip.text() + ')'); if (!tr.length) return arguments[1];
    return $tr.offset().top - $tr.parents(‘table’).offset().top; // $tr[0].offsetTop
    }) : KaTeX parse error: Expected 'EOF', got '}' at position 24: …ide(); }̲ }).on('cha…/) ? parseInt(this.value) - 1 : -1;
    if (!this.value) setting[this.name] = this.name == ‘num’ ? 0 : undefined;
    }).detach(setting.hide ? ‘*’ : ‘html’);
    setting.type = {
    单选题: 1,
    多选题: 2,
    填空题: 3,
    问答题: 4,
    ‘分析题/解答题/计算题/证明题’: 5,
    ‘阅读理解(选择)/完型填空’: 9,
    判断题: 14
    };
    setting.lose = setting.num = setting.small = 0;
    $(document).keydown(function(event) {
    if (event.keyCode == 38) {
    setting.div.detach();
    } else if (event.keyCode == 40) {
    setting.div.appendTo(‘body’);
    }
    });
    setting.loop = setInterval(findAnswer, setting.time, true);
    setInterval(function() {
    $(setting.queue.shift()).parent().click();
    }, 1E3);
    }

    function findAnswer(tip) {
    if (setting.queue.length) {
    return;
    } else if (tip && !$(’.answerCard’).length) {
    return setting.div.children(‘div:eq(0)’).data(‘html’, ‘非自动答题页面’).siblings(‘button:eq(0)’).click();
    } else if (setting.max < 0 || setting.num < 0) {
    return setting.div.children(‘div:eq(0)’).data(‘html’, ‘范围参数应为 正整数’).siblings(‘button:eq(0)’).click();
    } else if (setting.num >= $(’.subject_stem’).length || setting.num > setting.max) {
    // setting.div.children(‘button:eq(3)’).toggle(!!setting.lose);
    tip = setting.lose ? ‘共有 ’ + setting.lose + ’ 道题目待完善(已深色标注)’ : ‘答题已完成’;
    return setting.div.children(‘div:eq(0)’).data(‘html’, tip).siblings(‘button:eq(0), form’).hide().click();
    } else if (!setting.curs.length) {
    setting.curs = $(’.infoList span’).map(function() {
    return $(this).text().trim();
    });
    if (!setting.curs.length) return;
    }
    var $TiMu = $(’.subject_stem’).eq(setting.num).parent(),
    $dom = TiMu.find(.smallStemdescribe).eq(setting.small).children(div).slice(1,1),question=filterStyle(TiMu.find('.smallStem_describe').eq(setting.small).children('div').slice(1, -1), question = filterStyle(dom) || filterStyle($TiMu.find(’.subject_describe’)),
    type = TiMu.find(.subjecttype).text().match(/(.+)TiMu.find('.subject_type').text().match(/【(.+)】|/)[1];
    type = type ? setting.type[type] || 0 : -1;
    GM_xmlhttpRequest({
    method: ‘GET’,
    url: ‘http://api.s759n.cn/api.php?w=’ + encodeURIComponent(question),
    headers: {
    ‘Content-type’: ‘application/x-www-form-urlencoded’
    },
    timeout: setting.time,
    onload: function(xhr) {
    if (!setting.loop) {
    } else if (xhr.status == 200) {
    var obj = $.parseJSON(xhr.responseText) || {};
    if (obj.code) {
    setting.div.children(‘div:eq(0)’).text(‘正在搜索答案…’);
    var data = obj.data.replace(/&/g, ‘&’).replace(/<([^i])/g, ‘<$1’);
    obj.data = /^http/.test(data) ? ‘’ : obj.data;
    $(
    ‘’ +
    ‘’ + $TiMu.find(’.subject_num’).text().trim().replace(’.’, ‘’) + ‘’ +
    ‘’ + (question.match(’<img’) ? question : question.replace(/&/g, ‘&’).replace(/</g, ‘&lt’)) + ‘’ +
    ‘’ + (/^http/.test(data) ? obj.data : ‘’) + data + ‘’ +
    ‘’
    ).appendTo(setting.div.find(‘tbody’)).css(‘background-color’, function() {
    $dom = $dom.length ? $dom.closest(’.examPaper_subject’) : TiMu;if(fillAnswer(TiMu; if (fillAnswer(dom, obj, type)) return ‘’;
    setting.div.children(‘button:eq(3)’).show();
    return ‘rgba(0, 150, 136, 0.6)’;
    });
    setting.small = ++setting.small < $TiMu.find(’.smallStem_describe’).length ? setting.small : (setting.num++, 0);
    } else {
    setting.div.children(‘div:eq(0)’).html(obj.data || ‘服务器繁忙,正在重试…赞助或问题反馈QQ:209787028’);
    }
    setting.div.children(‘span’).html(obj.msg || ‘’);
    } else if (xhr.status == 403) {
    var html = xhr.responseText.indexOf(’{’) ? ‘请求过于频繁,建议稍后再试,赞助或问题反馈QQ:209787028’ : $.parseJSON(xhr.responseText).data;
    setting.div.children(‘div:eq(0)’).data(‘html’, html).siblings(‘button:eq(0)’).click();
    } else {
    setting.div.children(‘div:eq(0)’).text(‘服务器异常,正在重试…赞助或问题反馈QQ:209787028’);
    }
    },
    ontimeout: function() {
    setting.loop && setting.div.children(‘div:eq(0)’).text(‘服务器超时,正在重试…赞助或问题反馈QQ:209787028’);
    }
    });
    }

    function fillAnswer($TiMu, obj, type) {
    var $div = $TiMu.find(’.nodeLab’),
    str = String(obj.data).toCDB() || new Date().toString(),
    data = str.split(/#|\x01||/),
    state = setting.lose;
    // $div.find(’📻checked’).prop(‘checked’, false);
    obj.code > 0 && $div.each(function() {
    var $input = (input,this)[0],tip=filterStyle(.nodedetail,this).toCDB()newDate().toString();if(tip.match(/(Tri)('input', this)[0], tip = filterStyle('.node_detail', this).toCDB() || new Date().toString(); if (tip.match(/^(正确|是|对|√|T|ri)/)) {
    data.join().match(/(^|,)(正确|是|对|√|T|ri)(,|KaTeX parse error: Expected 'EOF', got '&' at position 5: )/) &̲& setting.queue…input);
    } else if (tip.match(/^(错误|否|错|×|F|wr)KaTeX parse error: Expected '}', got 'EOF' at end of input: …|否|错|×|F|wr)(,|)/) && setting.queue.push(KaTeX parse error: Expected 'EOF', got '}' at position 17: …nput); }̲ else if (type ….inArray(tip, data) + 1 || str.indexOf(tip) + 1) == input.checkedsetting.queue.push(input.checked || setting.queue.push(input);
    } else {
    KaTeX parse error: Expected 'EOF', got '&' at position 25: …tip, data) + 1 &̲& setting.queue…input);
    }
    });
    if (setting.queue.length) {
    } else if (/^(1|2|14)$/.test(type)) {
    var $input = $div.find(‘input’);
    input.is(:checked)(setting.none?setting.queue.push(input.is(':checked') || (setting.none ? setting.queue.push(input[Math.floor(Math.random() * KaTeX parse error: Expected 'EOF', got '}' at position 40: …g.lose++); }̲ else if (/^[3-…/.test(type)) {
    data = String(obj.data).split(/#|\x01||/);
    str = $TiMu.find(‘textarea’).each(function(index) {
    index = (obj.code > 0 && data[index]) || ‘’;
    this.value = index.trim();
    // if (this.value == this._value) return true;
    this.dispatchEvent(new Event(‘input’));
    this.dispatchEvent(new Event(‘blur’));
    }).length;
    (obj.code > 0 && data.length == str) || setting.none || setting.lose++;
    } else {
    setting.none || setting.lose++;
    }
    return state == setting.lose;
    }

    function hookHiexam() {
    var ajax = new xhr();
    ajax.onload = function() {
    if (this.status != 200 || !this.responseURL.match(‘getDoQuestSingle’)) return;
    var obj = JSON.parse(this.responseText).rt;
    $.each(obj.questionOptionList || [], function(index) {
    var $input = KaTeX parse error: Expected '}', got '&' at position 111: …this.isCorrect &̲& setting.queue…input);
    } else if (obj.questionTypeId == 2) {
    this.isCorrect == input.checkedsetting.queue.push(input.checked || setting.queue.push(input);
    }
    });
    };
    return ajax;
    }

    function filterStyle(dom, that) {
    var $dom = $(dom, that).clone().find(‘style’).remove().end();
    return $dom.find(‘img[src]’).replaceWith(function() {
    return $(’

    ’).text(’’);
    }).end().text().trim();
    }
    展开全文
  • 今天给大家带来网课搜题公众号搭建教程。 (附搜题接口,支持文字、语言、图片查题) 先给大家看一下已搭建成功的吧: ↓ ↓ ↓ 目前支持文字、语音、图片查题! 我自己也是抱着学习的态度去做的这类公众号,然后...
  • 网课答案查询助手是一款能够查询大学生网络课答案的工具,采用Python编写,目前能查智慧树的答案,相信大学学习网课的朋友一定苦恼网课后的练习题以及考试,有了这款工具,就再也不用担心发愁了,感兴趣的朋友快来...
  • 网课答案查询助手是一款能够查询大学生网络课答案的工具,采用Python编写,目前能查智慧树的答案,相信大学学习网课的朋友一定苦恼网课后的练习题以及考试,有了这款工具,就再也不用担心发愁了,感兴趣的朋友快来...
  • JavaScript网课

    千次阅读 2020-02-10 14:19:30
    HTML(Hyper Markup Language)超文本标记语言, CSS(Cascading Style Sheets)层叠样式表 HTTP(HyperText Transfer Protocol)超文本传输协议 什么是JavaScript? JavaScript是一种基于对象(Object)和事件驱动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 459
精华内容 183
关键字:

网课文本编辑