Codemirror -extrakeys

HTML

<link rel="stylesheet" href="https://codemirror.net/theme/ambiance.css">
<script src="https://codemirror.net/lib/codemirror.js"></script>
<link rel="stylesheet" href="https://codemirror.net/lib/codemirror.css">
<script src="https://codemirror.net/3/mode/shell/shell.js"></script>
<form>
  <textarea id="code" name="code">
$ mkdir webserver
$ cd webserver
$ edjangerinit --template=demo_httpd
> Initialize edjanger project ...
  . Initialize edjanger template file example: edjanger.template ...
  . Initialize edjanger configuration file example: configuration.properties ...
  . Initialize edjanger.properties file from template edjanger.template ...
> Initialize edjanger.properties from template and configuration file (configuration.properties)...
  . process informations of template: "./edjanger.template"  ...
  . use main configuration file: "configuration.properties"  ...
  . create "./edjanger.properties" file from template "./edjanger.template" and configuration file "configuration.properties"
  . Initialize edjanger build folder for Dockerfile: /build ...
  . Initialize Dockerfile: build/Dockerfile ...
> Initialize edjanger.properties from template and configuration file (configuration.properties)...
  . process informations of template: "./edjanger.template"  ...
  . use main configuration file: "configuration.properties"  ...
edjanger:WARNING edjanger properties file "./edjanger.properties" already exist, do you want to replace it (y/n) ?
y
  . create "./edjanger.properties" file from template "./edjanger.template" and configuration file "configuration.properties"
$ ls -la
  </textarea>
</form>

CSS

.CodeMirror {
  border: 1px solid #eee;
  height: auto;
}

JavaScript

$(document).ready(function() {
  var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
    mode: 'shell',
    theme: "ambiance",
    lineNumbers: true,
    matchBrackets: true
  });
});