首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在vim中将2-space缩进更改为4-space

在vim中将2-space缩进更改为4-space
EN

Stack Overflow用户
提问于 2013-06-03 08:37:06
回答 8查看 39.1K关注 0票数 103

我从互联网上复制了一些代码,它们有2个空格的缩进,我想把它改成4个空格的缩进。我想知道是否有一个简短的vim例程来完成这个任务,而不必编写vim脚本?下面是我目前使用HTML文件的方法:

  • 记录宏
  • 转到行的开头
  • 视觉选择所有空格,直到第一次出现"<"
  • Yank并粘贴所有空格(基本上是两倍)
  • 回放宏,直到文件结束

简而言之,qa0vt<yp<esc>jq

陷阱:

如果有空行或不是以"<“开头的行,宏将失败。而且我不知道如何将这个解决方案扩展到非HTML文件。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-06-03 15:42:13

更改缩进的一般方法是通过更改tabstop:

将文件粘贴到空缓冲区中,然后:

:set ts=2 sts=2 noet
:retab!

这会将每2个空格更改为一个制表符,然后:

:set ts=4 sts=4 et
:retab

这会将每个制表符更改为4个空格。

这种方法的优点是,您还可以反过来使用它,例如,将4个空格转换为2个空格。

票数 188
EN

Stack Overflow用户

发布于 2013-06-03 08:46:51

使用:set shiftwidth=4gg=G或许可以做到这一点。

票数 62
EN

Stack Overflow用户

发布于 2013-09-24 11:24:04

我所做的与esneider和cforbish的方法非常相似,但输入速度更快一些:

:%s/^\s*/&&

只需将前导空格(空格或制表符)替换为两倍的前导空格(匹配的表达式替换为&)。

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16888658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档