:p[rint] 在 vi​​m 中有什么作用?

Jam*_*lgh 4 vim

帮助文本对于此命令的作用有点模糊。

                    Print [range] lines (default current line).
                    Note: If you are looking for a way to print your text
                    on paper see |:hardcopy|.  In the GUI you can use the
                    File.Print menu entry.
                    See |ex-flags| for [flags].
Run Code Online (Sandbox Code Playgroud)

我知道我过去曾多次错误地使用它来表示 :p[rev],但我从未听过打印机的嗡嗡声。也没有出现任何奇怪的文件,也没有发现我所在的行出现在标准输出中。

那么,在 vim中输入:print 有什么作用呢?

Ran*_*832 7

从历史上看,在“编辑”编辑(其中许多核心的:commands最终发源于),行去到stdout。

当然,由于 vim 是一个全屏编辑器,命令的输出不仅没有被处理到 stdout,而是显示在窗口的底部。(一行在命令栏中,多于一行 [技术上超过'cmdheight'] 得到“按 ENTER 或键入命令继续”,超过屏幕会显示-- More --提示。)

当您简单地键入时,:p您会看到(您可能没有注意到)您所在的行出现在命令栏中。

这个命令本身并不是特别有用(它在 ed 中稍微有用一些,当您正在编辑的行不会显示在屏幕上时),但与其他寻址模式结合使用会变得更有用。例如,:g/re/p(其中re是任何正则表达式)经常被认为是grep命令名称的来源。