# Vim 实用技巧

2024年8月08日3分钟阅读

- FormalSciences/ComputerScience
- GettingStarted/CommandLineTools
- Vim

## 文件备份和编辑

备份当前文件并打开进行编辑，避免无法还原旧配置文件。

    :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 %

这个命令会先保存当前文件，然后运行它并显示输出。