📜  vim 自动格式化 (1)

📅  最后修改于: 2023-12-03 15:21:01.308000             🧑  作者: Mango

Vim 自动格式化

如果你是一名 Vim 用户,你肯定会发现使用 Vim 进行代码编写时很容易出现代码风格混乱的情况。不要担心,Vim 有自动格式化的功能,可以让你在代码的格式化上事半功倍。本文将向你介绍 Vim 自动格式化的功能。

使用 Vim 自动格式化代码

要使用 Vim 自动格式化代码,你需要做以下几个步骤:

  1. 以插入模式进入命令行。在命令行中输入 :%!python -m json.tool,其中 python -m json.tool 表示使用 Python 自带的工具格式化 JSON 和 YAML 文件。

  2. 按下 Esc 键退出插入模式,然后再输入 :wq 保存文件并退出。

现在你的文件已经被格式化了。

指定格式化风格

Vim 的自动格式化功能可以使用不同的格式化风格。默认情况下,使用 Python 自带的 json.tool 和 Vim 内置的 XML 文件格式化器。

要指定其他格式化风格,你需要使用一个 Vim 插件。这里推荐两个比较常用的插件:

  • vim-autoformat:可以使用多个格式化器,并支持自定义格式化器。它可以自动检测所在文件的类型,并使用相应的格式化器。

    在 Vim 中安装该插件的方法如下:

    $ git clone https://github.com/Chiel92/vim-autoformat.git ~/.vim/bundle/vim-autoformat
    
  • vim-prettier:支持多种格式化器,其中包括 Prettier。

    在 Vim 中安装该插件的方法如下:

    $ git clone https://github.com/prettier/vim-prettier.git ~/.vim/bundle/vim-prettier
    
自定义格式化器

如果你想自定义一个格式化器,可以使用 Vim 的 filter 功能。你需要在 filter 中指定一个外部程序,并将当前文件的内容通过标准输入传递给它,然后该程序将格式化后的结果通过标准输出传递回来。下面是一个简单的例子,使用 awk 来格式化 Shell 脚本文件:

  1. 在 Vim 中打开一个 Shell 脚本文件,然后按下 Esc 键退出插入模式,输入 :%!awk '{ sub(/^[ \t]+/, "", $0); print }'

  2. 按下 <Enter> 键,你会发现代码的格式已经被自动调整了。现在你可以使用 Vim 的 undo 命令进行撤销操作。

结论

Vim 自动格式化可以提高你的工作效率,让你的代码更加整洁、易读。无论是默认的格式化器还是使用外部插件,它们都非常好用。如果你还没有尝试过 Vim 的自动格式化功能,赶快动手试试吧!