当您重新使用和编辑以前的命令时,bash 的某些实例会更改命令历史记录,而其他实例显然不会。我一直在搜索和搜索,但找不到任何说明如何防止历史记录中的命令在重用和编辑时被修改的内容。
有这样的问题这一个,但似乎说如何应对历史正在编辑。我最近才遇到一个 bash 实例,它在您重用命令时会编辑历史记录 - 我以前使用过的所有 bash shell(据我所知)都被配置为在您重用时不会更改历史记录并编辑命令。(也许我在过去 15 年左右的时间里没有适当关注我的 shell 历史......)
所以这可能是最好的问题:我可以告诉 bash 永远不要修改历史记录 - 如果可以,如何修改?
这个问题询问关于在某一列换行的问题,人们建议使用fold
orfmt
但据我所知,这些只是计算字符而不允许非打印字符。例如:
fold -w 20 -s <<<`seq 1 25`
Run Code Online (Sandbox Code Playgroud)
正如人们所料,产生:
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15
16 17 18 19 20 21
22 23 24 25
Run Code Online (Sandbox Code Playgroud)
但:
fold -w 20 -s <<<^[[32m`seq 1 25`^[[m
Run Code Online (Sandbox Code Playgroud)
(这里^[
是转义字符)直观应该产生绿色的文字同样的事情,而是产生:
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20
21 22 23 24 25
Run Code Online (Sandbox Code Playgroud)
在绿色文本中。
我看不到任何说明非打印字符的开关,并且标记非打印字符 …