在bash中使用read时,按退格键不会删除输入的最后一个字符,但似乎会在输入缓冲区中附加一个退格键.有什么方法可以更改它,以便删除从输入中键入的最后一个键?如果是这样的话?
这是一个简短的示例编程我正在使用它,如果有任何帮助:
#!/bin/bash
colour(){ #$1=text to colourise $2=colour id
printf "%s%s%s" $(tput setaf $2) "$1" $(tput sgr0)
}
game_over() { #$1=message $2=score
printf "\n%s\n%s\n" "$(colour "Game Over!" 1)" "$1"
printf "Your score: %s\n" "$(colour $2 3)"
exit 0
}
score=0
clear
while true; do
word=$(shuf -n1 /usr/share/dict/words) #random word from dictionary
word=${word,,} #to lower case
len=${#word}
let "timeout=(3+$len)/2"
printf "%s (time %s): " "$(colour $word 2)" "$(colour $timeout 3)"
read -t $timeout -n $len input #read input here
if [ …Run Code Online (Sandbox Code Playgroud) 我一直在寻找以不同方式映射退格键的方法,但这不是我所追求的.
我正在编写一个python代码的程序,基本上我想写一行代码,导致程序认为有人只是点击了GUI中的Backspace键(因为退格键删除了一些东西)
我如何在退格键击中编码?
我在AngularJS webapp中遇到了这个问题.
当用户输入带有要填写的表单并且他开始键入的页面时,如果他按下退格键并且焦点不在输入文本上,则页面将进入先前状态.
我使用jQuery 查找了这个解决方案,但它似乎不适合在AngularJS中实现这一点.
当我打开窗口cmd并输入时jshell,它可以工作,但是当我在写东西时。每当我按下BackSpace键。例如,如果我想删除一个错误的字母。jshell 因波纹管错误而崩溃,我正在使用windows 10,并且C:\Program Files\Java\jdk-11.0.1是我在 Windows 中的唯一路径System Environment variables,我也cmd用作终端。这是错误:
Exception in thread "main" java.lang.NullPointerException: charsetName
at java.base/java.lang.String.<init>(String.java:464)
at java.base/java.lang.String.<init>(String.java:537)
at jdk.internal.le/jdk.internal.jline.extra.AnsiInterpretingOutputStream.write(AnsiInterpretingOutputStream.java:92)
at java.base/java.io.OutputStream.write(OutputStream.java:157)
at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)
at java.base/sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:312)
at java.base/sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:316)
at java.base/sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:153)
at java.base/java.io.OutputStreamWriter.flush(OutputStreamWriter.java:254)
at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.flush(ConsoleReader.java:1052)
at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:3259)
at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:2383)
at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:2371)
at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext.readLine(ConsoleIOContext.java:142)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.getInput(JShellTool.java:1261)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.run(JShellTool.java:1174)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:975)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:254)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
Run Code Online (Sandbox Code Playgroud) 在Windows平台上开发我的Flash应用程序时,我注意到了这个错误.如果在Windows上的Safari 5浏览器中运行的Flash swf中的文本框中键入文本,然后按退格键,浏览器将跳转到历史记录中的上一页,而不是执行退格键应该执行的功能 - 这是指向另一个报表的链接这个苹果虫 -
http://www.ruelke.org/blog-entry-138.html
我们如何解决这个苹果问题?干杯
我需要找到一种方法来检测空间是否被删除或退格,并在这种情况下运行一个函数.我正在使用JavaScript/jQuery进行此操作.
我知道我可以通过使用以下方式获取删除或退格键
$(this).keyup(function(event) {
event.keyCode
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何判断删除或退格命令是否删除了空格?
非常感谢任何建议.
我正在尝试更新PyCharm控制台中的最后一行.说,我打印a然后我想将其更改为c.但是,我遇到了以下问题.当我跑:
print 'a\bc'
Run Code Online (Sandbox Code Playgroud)
它打印
a c
Run Code Online (Sandbox Code Playgroud)
而所需的输出(这也是我在Windows控制台中看到的)是:
c
Run Code Online (Sandbox Code Playgroud)
有没有办法将光标移回PyCharm的控制台?或者可能删除整行?
在OSX中几乎无处不在,使用command+ 可以一直退回到行的开头Backward delete.我找不到在IntelliJ IDEA中设置此行为的方法,我发现这非常......
...向后.
我试图阻止退格按钮在每个浏览器中返回一页.现在我正在使用此代码:
$(document).on("keydown", function (e) {
if (e.which === 8 && !$(e.target).is("input, textarea")) {
e.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
除了打开选择字段下拉列表时,它对所有内容都可以正常工作,此事件将被忽略,退格区无论如何都会返回一页.我怎么解决这个问题?谢谢您的回答.
我在Eclipse Mars(4.5.0)中的退格键与删除键的工作方式类似:它删除了正确的字符而不是左字符.这真令人困惑
也许我不小心使用了快捷键?
我试图重启Eclipse,但它没有用.我还尝试将键绑定首选项切换为"Emacs"方案,然后再恢复为"默认",但这也不起作用.
任何帮助表示感谢,谢谢!
编辑:该死的,我刚刚发现ctrl + x不再起作用了!