我最近了解到,如果我使用 分页文件less
,我可以v
在 Emacs 中按下并打开缓冲区。只要我$EDITOR
正确设置了环境变量,这就会起作用,在我的情况下,我将其设置为:
export EDITOR='env TERM=xterm-256color emacs -nw'
Run Code Online (Sandbox Code Playgroud)
以上使我能够在运行less
.
但是,当将命令通过管道传输到less
. 执行此操作时,会less
显示以下消息:
Cannot edit standard input (press RETURN)
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么会发生这种情况?但最重要的是,有什么解决方法吗?
blu*_*yed 23
一个好的解决方法是将输出从 less 传送到您的编辑器,例如在“echo foo | less”之后,您可以执行以下操作:
g|$vim -
Run Code Online (Sandbox Code Playgroud)
g
将跳转到文件/输入的第一行,|
将调用“管道”操作,$
是标记(“结束”),然后是将范围通过管道导入的命令(vim -
在这种情况下,“-”表示从标准输入读取输入)。
如前所述,您不能编辑输入流。
解决方法很明显:从内部将流保存到文件less
并打开保存的文件。要在查看时执行此操作,请按s
并给出文件名。然后退出less
并手动打开文件,或者,仍然在 中less
,键入:e
并给出刚刚保存的文件的名称。
归档时间: |
|
查看次数: |
3343 次 |
最近记录: |