在 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 命令行模式
基本上,要粘贴您运行的最后一个命令,您可以访问命令寄存器“:”。
“:对
获取您运行的最后几个命令的列表。然后您可以从历史记录中选择以重新运行该命令。
问: