使用 vi 或 vim 文本编辑器时可以直接保存现有文件吗?如何在 Linux 或类 Unix 系统上运行的 vi/vim 中运行“另存为”命令?
Vi 是适用于 Linux 和类 Unix 系统的文本编辑器。现代 Unix 系统附带的 vi 更新版本称为 vim (Vi IMproved),向上兼容 Vi。人们可以使用 vi 编辑任何纯文本文件。然而,vim 对于编辑程序非常有用。
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | 文本编辑器 |
先决条件 | vi 或 vim |
操作系统兼容性 | BSD • Linux • macOS • Unix |
美东时间。阅读时间 | 2分钟 |
在 vi 或 vim 下将现有文件保存到新文件的过程
- vim 或 vi 文本编辑器中没有“另存为”对话框。但是,可以运行以下命令来保存现有文件。
- 选择一个尚不存在的文件名。例如,foo.txt
- 现在按ESC键
- 输入:w foo.txt(其中 foo.txt 是您选择在 vi 或 vim 中保存的文件名)
让我们详细查看所有 vim / vi 命令。
vim 另存为命令
让我们启动 vi/vim 并创建一个名为 bar.txt 的新文件。打开终端应用程序并键入以下命令:
$ vim bar.txt
按i插入一些文本:
要保存文件,请按
:w 文件名 :x 文件名 :x foo.txt
保存更改后,您可以使用以下命令退出 Vim(先按ESC然后键入):
:q
如何在 vim/vi 中将文件保存到其他目录中?
您必须使用 write 命令键入要保存文件的位置的完整路径。例如,将文件保存在 /home/vivek/backups/foo.txt 中:
:w /home/vivek/backups/foo.txt
使用 sudo 技巧在没有 root 权限的情况下在 Vim / Vi 中保存文件
让我们打开一个名为 /etc/httpd/example.com.conf 的文件:
$ vim /etc/httpd/example.com.conf
要在 vim 或 vi 中以 root 用户身份将 /etc/httpd/example.com.conf 保存为“/etc/httpd/example.com.conf”,类型:
:w !sudo tee /etc/httpd/example.com.conf
需要注意的是,在现有文件中使用这些方法时,缓冲区不会切换到新创建的文件。相反,您将继续编辑原始文件。如果您更喜欢功能更像传统“另存为”的命令,请考虑使用以下“saveas”命令方法。
上面的注释saveas vim 命令
要将当前缓冲区(文件)保存在名称 {file} 下并将当前缓冲区的文件名设置为 {file},请使用以下语法:
:sav[eas][!] [++opt] {文件}
以前的名称用作备用文件名。需要 [!] 来覆盖现有文件。当“文件类型”为空时,在写入文件之前使用新名称完成文件类型检测。当写入成功时,“只读”将被重置。例如,打开现有文件并添加一些文本
$ vim demo.txt
下一步,将“demo.txt”另存为“final-draft.txt”并切换到该文件以继续编辑。按Esc并输入:
:保存final-draft.txt
结论
请注意,如果您不编辑现有文件,则可以在保存时随时提供文件名。您可以使用 来执行此操作:w filename。相同的命令也充当“另存为”命令。有关详细信息,请通过绑定以下 vim 命令来查看 vim 命令帮助:
:帮助:w :帮助:保存