我想在bash shell中标记垂直位置。
例如,当我运行一个程序时,我想在打印的第一行中设置一个标记,这样当我工作时(仍在shell下),我只需按几个键即可看到第一个结果我的程序。考虑一下VIM方式,你在当前行上方设置一个标记(按ma
),当你稍微工作时,当你想看到你以前做的时候,你只需输入'a
。
更具体地说,我在gdb下运行一个程序,它通过多行给出结果。然后我运行测试,仍在gdb中,我想定期检查调试期间得到的内容是否仍然与我得到的第一个打印结果相对应,但我并不喜欢无限期地滚动。
这甚至可能吗?
答案 0 :(得分:1)
如果您想比较同一命令的两次运行,请确保将第一次保存到文件中:
$ command > command.log
然后将第二个命令的输出传送到tee
以同时显示和保存它:
$ command | tee command2.log
现在你可以在第二个命令运行时区分两个:
$ diff command.log command2.log
(您可能希望将diff
输出传递给例如head
,以切断第二个命令尚未完成的可能较大的差异。)
如果您在终端历史记录中回到打印 时仍然打开,那么在多个终端中您可以按 Ctrl - Shift - f 查找文字。
如果您想在以后找到Bash命令,可以使用注释添加标记:
$ my_complicated_remote_command # ssh server thingie
现在你可以用 Ctrl - r 搜索“ssh”或“thingie”,然后出现旧命令。
答案 1 :(得分:0)
您可以运行TMUX并将模式键设置为vi:
set-window-option -g mode-keys vi
此后,当您进入复制模式(默认值为Ctrl + B)时,可以使用vi绑定跳转。您绝对可以跳到特定的行号并搜索文本,但是我还没有看到vi mark的功能。