Vim使用案例
# Vim使用案例
# vi
或 vim
编辑器操作指南
# 1. 删除特定行
# 删除单行
- 命令:
dd
- 说明: 删除光标所在的当前行。
# 删除多行
- 命令:
:N1,N2d
- 示例:
:5,10d
- 说明: 删除从第 N1 行到第 N2 行的所有行(例如,删除第 5 行到第 10 行)。
# 2. 删除所有内容
- 命令:
:%d
- 说明: 删除整个文件的所有内容(
%
表示整个文件)。
# 3. 剪切(删除并复制)
# 剪切单行
- 命令:
dd
- 说明: 删除并剪切光标所在的当前行。
# 剪切多行
- 命令:
Ndd
- 示例:
5dd
- 说明: 剪切光标所在行及其后的 N-1 行(例如,剪切当前行及其后的 4 行)。
# 剪切指定文本(视觉模式)
- 步骤:
- 按
v
进入视觉模式。 - 使用箭头键选择要剪切的文本。
- 按
d
剪切选定的文本。
- 按
# 4. 粘贴
命令:
p
说明: 在光标后粘贴剪切或复制的内容。
命令:
P
说明: 在光标前粘贴剪切或复制的内容。
# 5. 跳转
# 跳转到文档末尾
- 命令:
G
- 说明: 将光标移动到文件的最后一行(
G
代表 "Go to last line")。
# 跳转到当前行的行尾
- 命令:
$
- 说明: 将光标移动到当前行的末尾。
# 6. 撤消和重做
# 撤消操作
- 命令:
u
- 说明: 撤消上一个操作。
# 重做操作
- 命令:
Ctrl + r
- 说明: 重做上一个被撤消的操作。
# 7. 搜索
# 搜索文本
- 命令:
/search_term
- 示例:
/example
- 说明: 向下搜索文件中的指定文本(按 Enter 键后,使用
n
查找下一个匹配项,使用N
查找上一个匹配项)。
# 8. 搜索结果导航
# 查找下一个匹配项
- 命令:
n
- 说明: 在搜索结果中向下查找下一个匹配项。
# 查找上一个匹配项
- 命令:
N
- 说明: 在搜索结果中向上查找上一个匹配项。
# 9. 替换
# 替换单个单词
- 命令:
:s/old/new
- 示例:
:s/example/test
- 说明: 将光标所在行中的第一个 "old" 替换为 "new"。
# 替换整行中的所有匹配
- 命令:
:s/old/new/g
- 示例:
:s/example/test/g
- 说明: 将光标所在行中的所有 "old" 替换为 "new"。
# 替换整个文件中的所有匹配
- 命令:
:%s/old/new/g
- 示例:
:%s/example/test/g
- 说明: 将整个文件中的所有 "old" 替换为 "new"。
# 10. 使用案例:编辑文本文件
假设我们有一个文本文件 example.txt
,内容如下:
Hello World
This is a sample file.
We will edit this file using vi.
1
2
3
2
3
# 1. 打开文件
- 命令:
vi example.txt
1
# 2. 删除特定行
# 删除第 2 行
步骤:
- 确保处于命令模式(按
Esc
键)。 - 输入
:2d
并按Enter
。
- 确保处于命令模式(按
效果:
Hello World
We will edit this file using vi.
1
2
2
# 3. 删除所有内容
步骤:
- 输入
:%d
并按Enter
。
- 输入
效果: 文件内容被清空。
# 4. 剪切并粘贴
# 剪切当前行并粘贴到第 1 行后
步骤:
- 移动光标到第 2 行(如果已经删除,则光标在第 2 行)。
- 使用
dd
剪切当前行。 - 移动光标到第 1 行(输入
:1
然后按Enter
)。 - 按
p
粘贴剪切的内容后。
效果:
Hello World
We will edit this file using vi.
This is a sample file.
1
2
3
2
3
# 5. 搜索文本
# 搜索 "sample"
步骤:
- 按
/
进入搜索模式,输入sample
,然后按Enter
。
- 按
效果: 光标将跳转到包含 "sample" 的行。
# 6. 导航搜索结果
# 查找下一个匹配项
- 命令:
n
- 说明: 再次按
n
可以继续查找下一个匹配项。
# 查找上一个匹配项
- 命令:
N
- 说明: 按
N
可以返回到上一个匹配项。
# 7. 替换文本
# 将 "sample" 替换为 "example"
步骤:
- 确保光标在包含 "sample" 的行。
- 输入命令
:s/sample/example/
并按Enter
。
效果:
Hello World
We will edit this file using vi.
This is a example file.
1
2
3
2
3
# 8. 替换整个文件中的所有 "file" 为 "document"
步骤:
- 输入命令
:%s/file/document/g
并按Enter
。
- 输入命令
效果:
Hello World
We will edit this document using vi.
This is a example document.
1
2
3
2
3
# 9. 撤消和重做
# 撤消上一步操作
步骤:
- 按
u
撤消上一个替换操作(将 "document" 改回 "file")。
- 按
效果:
Hello World
We will edit this file using vi.
This is a example file.
1
2
3
2
3
# 重做上一步操作
- 步骤:
- 按
Ctrl + r
重新执行上一步撤消的操作。
- 按
# 10. 保存并退出
- 命令:
:wq
1 - 说明: 保存文件并退出
vi
或vim
编辑器。
# 完整流程总结
- 打开文件:
vi example.txt
- 删除第 2 行:
:2d
- 删除所有内容:
:%d
- 剪切当前行并粘贴到第 1 行后:
dd
,:1
,p
- 搜索 "sample":
/sample
- 导航搜索结果:
n
(下一个匹配),N
(上一个匹配) - 替换 "sample" 为 "example":
:s/sample/example/
- 替换整个文件中的 "file" 为 "document":
:%s/file/document/g
- 撤消上一步操作:
u
- 重做上一步操作:
Ctrl + r
- 保存并退出:
:wq
# 在 Vim 中,u
是用来撤销(undo)操作的,而反撤销(redo)则是用来恢复被撤销的操作。
# 撤销 (Undo)
- 按
u
可以撤销上一步操作。 - 如果你要撤销多次,可以反复按
u
。
# 反撤销 (Redo)
- 要进行反撤销,可以按
Ctrl + r
。 - 这样会恢复之前撤销的操作。
# 总结:
u
:撤销(Undo)Ctrl + r
:反撤销(Redo)
你可以通过这些命令进行操作历史的往返。如果你想更细粒度地控制撤销和反撤销,可以在 vim
中启用 "undofile"(撤销文件)功能,这样可以跨会话保留撤销历史。
# 使用 :w
命令与 sudo
强制保存
确保处于命令模式:
- 按
Esc
键,确保您不在插入模式。
- 按
使用
:w
命令与sudo
:- 输入以下命令,然后按
Enter
::w !sudo tee %
1 - 这个命令的作用是将当前文件的内容通过
sudo
命令写入原文件。这里%
代表当前文件名。
- 输入以下命令,然后按
退出
vi
或vim
:- 保存操作完成后,您可以使用
:q
命令退出编辑器::q
1
- 保存操作完成后,您可以使用
# 详细步骤说明
:w !sudo tee %
:这个命令首先通过sudo
获取写入权限,然后将当前文件的内容输出到文件中,从而实现以超级用户权限保存修改。tee
命令会接受标准输入并将其写入指定的文件(这里是当前文件)。
# 注意事项
- 在执行上述步骤时,您可能需要输入您的用户密码以确认使用
sudo
的权限。
通过这种方式,您可以在编辑完成后以超级用户权限保存文件,而无需放弃已做的更改。
在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54