比使用 vim :r! 命令行更好的方法将文本从命令行历史记录中取出,就像将目录路径放入文件中一样

比使用 vim :r! 命令行更好的方法将文本从命令行历史记录中取出,就像将目录路径放入文件中一样

在 vim 中有没有更好的方法可以做到这一点

我喜欢命令行补全,它让我可以快速得到完整的路径。所以我使用 :!ls 和 tab 来快速得到我正在寻找的路径。

:!ls /usr/share/doc/
向上箭头再次在命令行上获取它,访问命令行历史记录。
:!ls /usr/share/doc/
然后我像这样编辑它
:r! echo "/usr/share/doc/"

因为我想将路径放入文件而不是目录的内容。基本上,这是一种将命令行历史记录的内容放入文件的快速方法。

答案1

(删除了我的愚蠢答案,因为我没有读过问题)

嗯,我应该更仔细地阅读问题。

Vim 的 Omni-complete 为您提供路径补全。

从...开始

/usr

然后点击<C-x><C-f>获取目录/文件列表。

它只适用于一个级别,因此您需要重复该过程直到获得所需的结果。

因为<C-x><C-f>不太友好,所以我把它映射到了,:

:help compl-filename

--EDIT--

在 Vim 中执行以下操作:

:!ls<CR><CR>
:r !echo !<CR>

放入ls缓冲区,这似乎就是您正在寻找的内容。

在终端中,输入以下命令将 shell 会话的整个历史记录放入文件中:

$ history > history.txt

答案2

http://vim.wikia.com/wiki/Using_command-line_history

在 vim 中,下面的内容也值得一读。

:help 命令行模式

基本上,要粘贴您运行的最后一个命令,您可以访问命令寄存器“:”。

“:对

获取您运行的最后几个命令的列表。然后您可以从历史记录中选择以重新运行该命令。

问:

相关内容