Vim 自动缩进命令

Vim 是一款模式化文本编辑器,支持多种编辑模式,不同模式下键盘按键的功能会发生变化。它自带一套功能强大、设置灵活的自动缩进机制,核心就是 indentexpr 选项。写代码时缩进看似小事,却很费时间,有了 Vim 的自动缩进,不用每一行都手动按 Tab,能省下不少功夫。

这套缩进机制会按预设表达式来控制缩进格式,搭配文件类型自动识别功能,用起来特别顺手。下面就说说怎么用好 Vim 的自动缩进。

一、开启 Vim 自动缩进

想永久开启自动缩进,把这行加到用户目录下的 .vimrc 配置文件里:

filetype indent on

也可以在 Vim 启动后,在命令模式直接执行 :filetype indent on,但这样只对当前会话有效,重启后就失效了。

开启后,可以用 :set filetype 查看当前文件被识别成什么类型。比如本文档就是 html 类型。对应的缩进规则一般放在 /usr/share/vim/vimXX/indent/文件类型.vim 里,XX 是你用的 Vim 版本号。如果这个路径找不到,也可以去 /usr/local/share 下面看看。这些文件里就是对应语言的缩进规则,不满意可以直接改,也能自己加新规则。

要是你用的文件类型没有现成规则,也可以自己写一套。动手前不妨先去 Vim 官网查一查,说不定已经有人做好了。

除了 indentexpr,autoindent 和 smartindent 是更简单的备选方案。建议也在 .vimrc 里加上,万一遇到 Vim 不认识的文件类型,也能有基础缩进:

set ai

set si

二、临时关闭 Vim 自动缩进

粘贴大段文本或代码时,多余缩进会很烦人。这时可以在命令模式输入:

:set paste

就能临时关掉自动缩进。想恢复正常缩进,再执行 :unset paste 就行。

三、其他实用缩进相关设置

还有几个常用配置,能让缩进更顺手:

1. 把缩进宽度设为 4 个空格:

:set shiftwidth=4

2. 对 C 语言用更严格的缩进规则:

:set cindent

3. 用鼠标粘贴时避免乱缩进,插入模式下按 F5 切换粘贴模式:

set pastetoggle=<F5>

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2597.html

Like (0)
Previous 2026年4月29日 下午2:00
Next 2026年4月29日

相关推荐

  • 如何使用远程桌面连接 Windows 服务器?

    远程桌面能够实现远程连接Windows 服务器的操作,管理员可以远程访问和管理服务器。 在这篇文章中,我们将介绍如何使用远程桌面连接到 Windows 服务器。此外,我们还将探讨用…

    2026年3月28日
    0
  • 什么是反向DNS?如何做DNS反向查询?

    反向 DNS,也称为 rDNS,是网络和网络安全领域中一项重要技术。它本质上与传统的前向 DNS 查找相反,后者接收域名并返回相应的 IP 地址。相比之下,反向 DNS 查询会接收…

    2026年3月25日
    0
  • 网站SSL安全加密安装常见问题及解决方法

    在用户需求日益提高的当下,如果您的网站尚未启用SSL安全证书,就难以跟上时代步伐。 但对于企业来说,选购服务器和域名已经足够头疼,更遑论了解SSL安全证书,自行安装可能会遇到一些小…

    2026年4月1日
    0
  • 异地备份是什么?守护企业数据安全的最后防线

    在恶意攻击日益频繁的当下,数据备份已成为保障数据安全的关键环节。然而,除了恶意病毒外,人为失误或自然灾害导致的数据中心损毁,也可能使服务器中存储的重要数据突然消失。丢失重要数据更可…

    2026年4月2日
    0
  • 什么是 HTML5?含义、元素和优势

    HTML5 是 HTML 的第五个版本,HTML 是一种标记语言,供 Web 浏览器用于可视化代码。它在网站功能、Web 内容开发等方面进行了多项改进。本文将介绍 HTML5 的含…

    2026年4月27日
    0
  • 理解带宽、延迟和流量

    在线观看电影、参加视频通话或部署云应用时,有三个无形因素决定了体验的流畅程度:带宽、延迟和流量。这些术语经常被混淆,但它们描述的是网络性能的不同方面。 带宽:定义与实际意义 带宽定…

    2026年4月17日
    0
  • 站点为什么要安装SSL证书?

    大数据时代互联网发展迅速,给我们的生活带来便利的同时,也伴随着很多网络钓鱼、信息泄露、网络诈骗等事件的频繁发生,互联网就像一张巨型的蜘蛛网,汇聚和扩散各种各样的信息,而网站在当中就…

    2026年4月25日
    0
  • 异步api是什么?与REST API的区别

    当今用户对实时信息的需求日益强烈,股价、列车时刻等数据都需要在发生的第一时间送达。如何实时推送这些关键信息,是每家企业面临的共同挑战。传统做法是让应用定期轮询后端服务器来获取最新数…

    2026年4月11日
    0
  • 如何在 Linux 服务器上使用 Dokploy 实现项目快速部署

    很多开发者写完应用后都会面临同一个问题:如何把本地代码稳定地上线到服务器。配置 Web 服务器、环境变量、SSL 证书、Docker、CI/CD 等一系列操作,对新手来说既繁琐又容…

    2026年4月21日
    0
  • 如何在 Arch Linux 系统上保障 SSH 服务器的安全性

    OpenSSH 是一种安全的远程登录协议,能够在不安全的网络上建立安全通道。它使系统管理员能够通过安全通道远程管理 Linux 服务器。它采用客户端-服务器架构,并允许用户远程连接…

    2026年4月3日
    0