转发删除字符?

时间:2013-10-10 11:12:49

标签: ruby

要从字符串中动态删除字符,您可以使用/b字符。

puts "Hello\b World!" #=> Hell World!

\ b基本上和退格一样。是否有一个模拟前向删除的角色?

1 个答案:

答案 0 :(得分:1)

执行:

puts "Hello\b World!"

\b不会删除前一个字符。这是一种常见的误解,因为键盘上使用的退格键会在光标在屏幕上和键盘输入缓冲区之前删除先前键入的字符。出现这种情况的原因在于如何设计操作系统的键盘输入软件。

对于上述putso仍然存在于字符串中。发生的情况是,在显示时,退格会导致o被以下空格覆盖。发生这种情况的原因是首先显示o,然后依次显示退格(输出光标备份一个字符位置),然后依次显示空格。

如果你有这样的情况:

puts "Hello<del> World!"

会显示HelloWorld!,那么这意味着<del>值的输出会以某种方式导致以下空间输出()不会发生。换句话说,<del>将具有以下功能:“无论下一个章程是输出,都跳过它”。我不相信Windows或Linux输出中存在这样的控制字符,尽管我认为可以编写一个输出驱动程序,该驱动程序对某些已定义的控制字符具有该行为。

你甚至可以做这样的事情:

"Hello W<left-arrow><left-arrow><del><right-arrow>orld!"

如果您的终端设置为接受向左或向右移动光标的控制字符,那么将显示HelloWorld。但它显然与“未来删除”案例的功能不同。