demo

<template>
<div id="app" class="app-box">Hello</div>
</template> <script>
import {
Terminal
} from 'xterm'
import 'xterm/dist/xterm.css'
export default {
name: 'app',
mounted() {
let term = new Terminal({
rendererType: "canvas", //渲染类型
rows: 40, //行数
convertEol: true, //启用时,光标将设置为下一行的开头
scrollback:10,//终端中的回滚量
disableStdin: false, //是否应禁用输入。
cursorStyle: 'underline', //光标样式
cursorBlink: true, //光标闪烁
theme: {
foreground: 'yellow', //字体
background: '#060101', //背景色
cursor: 'help',//设置光标
}
})
term.open(document.getElementById('app')) term.writeln(`✔ Installed 1 packages
✔ Linked 0 latest versions
✔ Run 0 scripts
Recently updated (since 2019-05-10): 1 packages (detail see file
/Users/baolilei/Desktop/project/felab/xterm.js/fe-source-stage/src/xterm/node_modules/.recently_updates.txt)
Today:
→ xterm@*(3.13.1) (01:15:03)
✔ All packages installed (1 packages installed from npm registry, used 1s(network 1s), speed 365.87kB/s, json
1(7.12kB), tarball 509.49kB)`) function runFakeTerminal() {
if (term._initialized) {
return;
} term._initialized = true; term.prompt = () => {
term.write('\r\n$ ');
}; term.writeln('Welcome to xterm.js');
term.writeln('This is a local terminal emulation, without a real terminal in the back-end.');
term.writeln('Type some keys and commands to play around.');
term.writeln('');
term.prompt(); term.on('key', function (key, ev) {
const printable = !ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey;
console.log(key,ev.keyCode);
console.log(term._core.buffer.x); if (ev.keyCode === 13) {
term.prompt();
} else if (ev.keyCode === 8) {
// Do not delete the prompt
if (term._core.buffer.x > 2) {
term.write('\b \b');
}
} else if (printable) {
term.write(key);
}
}); term.on('paste', function (data) {
term.write(data);
});
}
runFakeTerminal();
} } </script> <style lang="scss">
html,
body {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
}
</style>

  参考资料:

- [xterm的配置](https://github.com/xtermjs/xterm.js/blob/3.12.0/typings/xterm.d.ts#L16)
 

xterm.js的深入学习的更多相关文章

  1. js callee,caller学习

    原文地址:js callee,caller学习 /* * caller 返回一个对函数的引用,该函数调用了当前函数. * 如果函数是由顶层调用的,那么 caller包含的就是 null . * 如果在 ...

  2. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  3. Knockout.Js官网学习(系列)

    1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...

  4. json2.js的初步学习与了解

    json2.js的初步学习与了解,想要学习json的朋友可以参考下. json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org/json2.js 2.)在页面 ...

  5. 原生JS研究:学习jquery源码,收集整理常用JS函数

    原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...

  6. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  7. 《JS权威指南学习总结--开始简介》

    本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...

  8. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  9. Underscore.js 源码学习笔记(上)

    版本 Underscore.js 1.9.1 一共 1693 行.注释我就删了,太长了… 整体是一个 (function() {...}());  这样的东西,我们应该知道这是一个 IIFE(立即执行 ...

随机推荐

  1. Android禁止输入表情符号

    在我们Android开发的项目中,难免有要求在输入框中禁止输入表情,所以呢,写了一个输入框禁止输入表情的demo,供大伙参考 效果图 如图显示,如果用户输入了表情字符,会提示. EmojiFilter ...

  2. 【学习总结】Python-3-转义字符

    参考: 本教程的评论区:菜鸟教程-Python3-Python数字 转义字符: 在需要在字符中使用特殊字符时,python用反斜杠()转义字符 END

  3. react学习笔记_01-jsx

    const element = <h1>Hello, world!</h1>; 首先我们看到声明了一个element元素,而他的内容并非字符串或者html. 它被称为 JSX, ...

  4. 关于正则表达式RegExp

    常用元字符串 元字符 说明 \d 匹配   数字 \D 匹配   非数字 \w 匹配   数字,字母,下划线 \W 匹配   任意不是字母,数字,下划线 \s 匹配   空白符 \S 匹配   任意不 ...

  5. 一、AJAX

    一. (function ($) { //1.得到$.ajax的对象 var _ajax = $.ajax; $.ajax = function (options) { //2.每次调用发送ajax请 ...

  6. ffmpeg音频文件转换之使用stdin/stdout或BytesIO对象输入输出

    最近在搞小程序录音,然后使用百度接口做语音识别. 小程序目前仅支持mp3和aac编码格式.虽然百度接口提供的m4a格式支持能直接识别小程序的录音文件,但由于自己还有其他一系列需求(比如直接读取数据,根 ...

  7. python读取pcap包

    import struct class FileConvert(object): ''' test python file''' def __init__(self): self.aa = 0 sel ...

  8. html5 像素模拟渐变

    代码实例: <!DOCTYPE html> <html> <head> <style> canvas{ background:#eee; } </ ...

  9. Facebook的利润创下历史新高,不受最近的丑闻影响

    外媒:Facebook周三表示,其第一季度收入主要由广告支出,增长49%至120亿美元.净利润同比增长65%,创纪录的49亿美元. 尽管很多用户表示,他们在3月中旬发生的隐私丑闻导致他们删除了Face ...

  10. ROS环境下使用Wireshark抓包(网桥)

    在ROS的管理工具>数据包探测设置里>常规接口选为LAN,数据流>数据流启用>服务器:Wireshark电脑的IP,筛选> IP选要抓包的IP地址 然后在Wireshar ...