111 lines
2.2 KiB
Markdown
111 lines
2.2 KiB
Markdown
|
---
|
||
|
title: Vim 实用技巧
|
||
|
description: 汇总 Vim 的实用技巧,包括文件备份、快速查找替换、批量处理文件、自动补全和窗口管理等。
|
||
|
keywords:
|
||
|
- Vim
|
||
|
- 实用技巧
|
||
|
tags:
|
||
|
- 技术/入门
|
||
|
- Vim
|
||
|
author: 仲平
|
||
|
date: 2024-08-08
|
||
|
---
|
||
|
|
||
|
## 文件备份和编辑
|
||
|
|
||
|
备份当前文件并打开进行编辑,避免无法还原旧配置文件。
|
||
|
|
||
|
```
|
||
|
:w hosts.back.240808 | e!
|
||
|
```
|
||
|
|
||
|
## 快速查找并替换
|
||
|
|
||
|
在所有文本文件中查找并替换某个模式。
|
||
|
|
||
|
```
|
||
|
:args **/*.txt | argdo %s/pattern/replacement/g | update
|
||
|
```
|
||
|
|
||
|
这个命令会在所有文本文件中查找并替换 `pattern` 为 `replacement`,并保存所有修改。
|
||
|
|
||
|
## 批量处理文件
|
||
|
|
||
|
批量删除所有文件的行尾空白字符。
|
||
|
|
||
|
```
|
||
|
:args **/* | argdo %s/\s\+$//e | update
|
||
|
```
|
||
|
|
||
|
这个命令会在所有文件中删除行尾的空白字符,并保存所有修改。
|
||
|
|
||
|
## 快速拼接文件内容
|
||
|
|
||
|
将多个文件的内容拼接到当前文件。
|
||
|
|
||
|
```
|
||
|
:r !cat file1.txt file2.txt file3.txt
|
||
|
```
|
||
|
|
||
|
这个命令将 `file1.txt`、`file2.txt` 和 `file3.txt` 的内容插入到当前文件光标所在位置。
|
||
|
|
||
|
## 自动补全并打开文件
|
||
|
|
||
|
自动补全路径并打开文件。
|
||
|
|
||
|
```
|
||
|
:e <C-R>=expand("%:p:h") . "/" <C-R>=input("File: ")<CR>
|
||
|
```
|
||
|
|
||
|
这个命令会打开一个提示,输入文件名后会自动补全路径并打开文件。
|
||
|
|
||
|
## 快速窗口管理
|
||
|
|
||
|
垂直分割窗口,打开文件,关闭其他窗口
|
||
|
|
||
|
```
|
||
|
:vsplit file.txt | only
|
||
|
```
|
||
|
|
||
|
这个命令会垂直分割窗口并打开 `file.txt`,然后关闭其他所有窗口。
|
||
|
|
||
|
## 自动格式化代码
|
||
|
|
||
|
格式化当前文件并保存
|
||
|
|
||
|
```
|
||
|
gg=G`` | w
|
||
|
```
|
||
|
|
||
|
这个命令会格式化整个文件并保持光标位置不变,然后保存文件。
|
||
|
|
||
|
## 批量执行宏
|
||
|
|
||
|
在所有文本文件中执行宏。
|
||
|
|
||
|
```
|
||
|
:args **/*.txt | argdo normal @q | update
|
||
|
```
|
||
|
|
||
|
这个命令会在所有文本文件中执行寄存器 `q` 中的宏,并保存所有修改。
|
||
|
|
||
|
## 快速编译并打开错误列表
|
||
|
|
||
|
编译当前项目并打开 QuickFix 列表。
|
||
|
|
||
|
```
|
||
|
:make | copen
|
||
|
```
|
||
|
|
||
|
这个命令会编译当前项目并打开 QuickFix 窗口显示错误列表。
|
||
|
|
||
|
## 运行代码并显示输出
|
||
|
|
||
|
运行当前 Python 文件并显示输出
|
||
|
|
||
|
```
|
||
|
:w | !python3 %
|
||
|
```
|
||
|
|
||
|
这个命令会先保存当前文件,然后运行它并显示输出。
|