帮助文本对于该命令的作用有点模糊。
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].
我知道过去我曾多次错误地使用它来表示 :p[rev],但我从未听到过打印机的呼呼声。也没有出现任何奇怪的文件,我也没有发现我所在的行出现在标准输出中。
那么,打字呢?:打印在vim中做什么?
答案1
从历史上看,在“ed”编辑器中(其中许多核心:commands
最终源自该编辑器)中,该行会转到标准输出。
当然,由于 vim 是一个全屏编辑器,命令的输出不仅不会被处理到 stdout,而且会显示在窗口的底部。 (命令栏中有一行,多于一行 [技术上多于'cmdheight'
] 会显示“按 ENTER 或键入命令继续”,多于屏幕上会显示的内容会出现提示-- More --
。)
当您简单地键入时,:p
您将看到(您可能没有注意到)您所在的行出现在命令栏中。
该命令本身并不是特别有用(当您正在编辑的行不会显示在屏幕上时,它在 ed 中稍微有用一些),但与其他寻址模式结合使用时会变得更有用。例如,:g/re/p
(其中关于是任何正则表达式)经常被认为是命令名称的起源grep
。
答案2
它打印当前行或行范围。该:%p
命令将打印整个文件(例如)。 “打印”并不意味着“在打印机上打印”(您引用的手册也指出了这一点),但可能与p
例如sed
和中的相应命令有更多关系ed
。