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日

相关推荐

  • 什么是僵尸网络?

    僵尸网络,作为一类极具破坏性的网络攻击手段,是指攻击者借助多台联网设备,在每台设备上植入并运行特定的机器人程序,进而操控这些被感染的设备,对服务器、公司网站、其他设备或个人发起攻击…

    2026年4月28日
    0
  • HTTPS靠什么保障通信安全?

    大多数人都听说过HTTPS,也清楚它的作用是保障通信安全,但如果没仔细研究过,大概率说不清它到底是怎么做到的。 这篇文章围绕三个核心问题展开: 1、HTTPS到底是什么? 2、它跟…

    2026年6月11日
    0
  • cpu核数是什么意思

    CPU是什么意思?CPU是日常生活中很常见的硬件设备,台式电脑、笔记本电脑、手机、服务器中都必须要有CPU,CPU核数即一个CPU由多少个核心组成,核心数越多,代表这个CPU的运转…

    2026年5月22日
    0
  • 0day漏洞是什么意思?

    为了操作便捷、桌面整洁美观,多数用户都会选用无线鼠标替换传统有线鼠标。但当前市面上部分无线鼠标设备与电脑的传输通信未做加密处理,这一安全缺陷给网络黑客留下了可乘之机,存在不小的网络…

    2026年6月1日
    0
  • 如何在Debian上安装NGINX

    Nginx是一款免费、开源、轻量级、高性能的web服务器,专为高流量的应用场景设计,也是Apache Web服务器和微软IIS之后的流行Web服务器。Nginx比Apache对资源…

    2026年5月11日
    0
  • 如何检查RAID阵列运行状态

    检查RAID阵列运行状态需要区分软件RAID和硬件RAID两类场景,不同场景对应不同的专属检查方法,以下是具体操作步骤: 一、软件RAID(mdadm管理)检查方法 ‌查看实时运行…

    2026年8月6日
    0
  • 如何在Ubuntu和Debian上设置时区和NTP

    对于服务器管理员来说,正确配置和维护服务器上的时间是很重要的。错误的时间配置将导致服务器环境混乱,例如数据不一致、数据同步失败和作业调度等问题。 为了避免这些情況,首先需要在服务器…

    2026年5月11日
    0
  • 什么是会话固定攻击(Session Fixation)?

    你知道吗?登录网站时,网站是怎么记住你身份的?答案就是会话(Session)。 可以把 Session 想象成住酒店拿到的房卡。拿着这张卡,酒店就知道你是哪个房间的客人,能进出房间…

    2026年5月18日
    0
  • 独立服务器存储扩容方案:在线添加硬盘不中断业务扩展存储容量

            在独立服务器的长期运维过程中,存储容量不足是几乎所有业务都会遇到的典型问题。随着网站访问量增长、用户数据累积、日志文件持续膨胀以及应用迭代更新,原本规划充裕的存储空…

    2026年10月1日
    0
  • 什么是数据库审计?

    防火墙主要负责阻挡外部安全威胁,而数据库审计则侧重于管控数据库内部的隐患。面对潜在的安全威胁,搭建一套行之有效的信息安全审计体系,强化对数据库的管控,有效治理并缩减信息安全风险,是…

    2026年6月5日
    0