更改命令提示(不起作用)

问题描述 投票:0回答:1

我正在尝试根据脚本中更改的变量

current_username
更改提示,我希望每当 current_username 更改时提示都会更改。

这是我尝试过的 - 另外,即使使用命令

initialize
提示符更改一次也没关系,因为这样我就可以创建另一个函数,每当
current_username
更改时它会再次更改。

var current_username = "";
var host = "localhost";
var initialized = "False";
var prompt1 = current_username + "@" + host + "> ";
$('body').bind('keydown', function(e) {
  if (event.keyCode == 13 && initialized == "False") {
    alert('Enter command "initialize".')
    initialized = "True"
    return false;
  }
});
var term = $('body').terminal({
  initialize: async function() {
    term.set_prompt(prompt1)
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/js/jquery.terminal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/css/jquery.terminal.min.css"/>

javascript jquery jquery-terminal
1个回答
0
投票

如果您想更改每个命令后的提示并使其动态化,您可以使用函数作为提示:

var current_username = "";
var host = "localhost";
var initialized = "False";
var prompt1 = () => current_username + "@" + host + "> ";
var term = $('body').terminal({
  initialize: async function() {
    term.set_prompt(prompt1);
  },
  'set-user': function(name) {
    current_username = name;
  }
}, {
  completion: true
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/js/jquery.terminal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/css/jquery.terminal.min.css"/>

© www.soinside.com 2019 - 2024. All rights reserved.