在Vi中复制文件内容 | AI生成和翻译
在 Vi 中将文件内容全部复制(或移动)到新文件
根据你对 vi 的使用习惯,我理解你想要选择并复制/删除文件的全部内容,然后粘贴到新文件中。Vi 不像图形界面编辑器那样有直接的”全选”功能,但你可以在命令模式下高效完成此操作(按 Esc 确保处于该模式)。我将同时介绍复制(保留原文件)和剪切/删除(移动内容)两种方式。
逐步操作:将所有内容复制到新文件
- 打开源文件:
vi oldfile.txt - 拉取(复制)整个文件:
- 输入
gg(跳转到文件顶部) - 然后输入
yG(从当前位置复制到文件末尾)
替代方案(Vim 特有,适用于 Red Hat 的 vim): 输入:1,$y后按Enter(复制第 1 行到末尾的所有行)
- 输入
- 打开新文件:
- 输入
:e newfile.txt后按Enter(创建/打开新文件)
- 输入
- 粘贴内容:
- 输入
p(在光标后粘贴;由于是空文件,会粘贴在顶部)
替代方案: 输入P在光标前粘贴
- 输入
- 保存并退出新文件:
- 输入
:wq后按Enter
- 输入
原文件将保持不变。
逐步操作:删除所有内容并粘贴到新文件(移动)
此操作会在复制后删除原始内容。
- 打开源文件:
vi oldfile.txt - 先拉取(复制)整个文件:
gg然后yG(或:1,$y)
- 删除所有内容:
- 输入
gg(返回顶部) - 然后
dG(从当前位置删除到文件末尾)
替代方案: 输入:%d后按Enter(删除所有行)
如需保存可执行::w(覆盖当前空文件)
- 输入
- 打开新文件:
- 输入
:e newfile.txt后按Enter
- 输入
- 粘贴:
- 输入
p
- 输入
- 保存并退出:
:wq
实用技巧
- 如果误操作未复制就直接删除,可使用
u撤销 - 若要在不同文件间操作而无需每次都打开新文件:在第一个文件中复制,然后使用
vi newfile.txt打开新文件,粘贴后保存 - 对于大文件,这些命令运行很快,因为 vi 能高效处理缓冲区
建议在测试文件上练习掌握!
如何在 Vim 中将文本复制到另一个文件
Vim:拉取(复制)整个文件