在 VIM 中缩进文件夹中的所有文件

2024-05-03

我有一个包含数百个 TTL (TeraTermLanguage) 文件的文件夹。 现在我想缩进所有这些文件。

我已经创建了用于缩进的 teraterm.vim,并使用 VIM 打开一个文件并执行“gg=G”,整个文件得到了正确的缩进。

但是有什么方法可以缩进文件夹中的所有文件。

我想在壳牌的帮助下做。但在 VIM 中我无法将文件缩进命令作为参数传递给 VIM。

请建议我对 VIM 中的所有文件进行缩进的最佳方式。


比从 bash 命令行编写 vim 脚本要简单得多的是在 vim 内部使用 vimscript(或者可能是从命令行编写 vim 脚本的更简单的单行代码)。我个人更喜欢使用 arg 列表来进行所有多文件操作。例如:

:args ~/src/myproject/**/*.ttl | argdo execute "normal gg=G" | update
  • args使用通配符设置 arglist (**将匹配当前目录以及子目录)
  • |让我们在一行上运行多个命令
  • argdo在每个参数上运行以下命令(它将吞掉第二个|)
  • execute防止normal以免吞掉下一根管子。
  • normal运行以下正常模式命令(您首先使用的命令)
  • update就好像:w,但仅在修改缓冲区时保存。

This :args ... | argdo ... | update模式对于任何类型的项目范围文件操作都非常有用(例如通过搜索和替换%s/foo/bar/ge或设置制服fileformat or fileencoding).

(其他人更喜欢使用缓冲区列表的类似模式和:bufdo,但有了 arg 列表,我不需要担心关闭当前缓冲区或打开新的 vim 会话。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VIM 中缩进文件夹中的所有文件 的相关文章

  • Vim:如何交换两个字符?

    有没有快速更改的命令 Cnotrol to Control While in normal mode with your cursor on top of the first character to swap you can type x
  • 在插入模式下移至行首

    我知道我可以使用 Home in insert mode Esc i to exit insert mode and enter it again effectively going to the beginning of line But
  • vim:打开预览窗口而不移动主窗口中的文本

    当全能完成 或其他方式 打开预览窗口时 主窗口的大小会减小 以便为预览窗口腾出空间 默认情况下 预览窗口弹出前主窗口中可见的第一行在预览窗口弹出后也将相同 这会产生不幸的效果 即主窗口中的文本在视觉上被下推 我希望主窗口中的文本保留在原来的
  • vim:视觉明星搜索未按预期工作

    我复制了这个函数来进行视觉搜索 and function s VSetSearch cmdtype let temp s norm gv sy let V substitute escape s a cmdtype n n g let s
  • 如何取消 Vim 中的粘贴操作?

    每当我不小心在 Putty 中右键单击 打开 Vim 时 我的剪贴板上就有相当多的文本 并且 Vim 启动了粘贴操作 该操作已经持续了大约十分钟 我不想丢失未保存的工作 有没有办法指示 Vim 停止粘贴文本 If you re in nor
  • 如何更改项目符号或非项目符号列表中除第一行之外的所有行的缩进?

    所以 我有这样的简单项目符号列表 ul li Apple Lorem ipsum dolor sit amet consectetur adipiscing elit Vivamus venenatis elit turpis vel fa
  • 切换 git 分支时如何处理 vim 缓冲区?

    因此 我在 vim 缓冲区中打开了大量文件 并且正在使用 git 处理功能分支 突然 我意识到我需要恢复到主分支来进行快速修复 提交后 我将 vim 会话保持打开状态并切换回 master 分支 但是 当我尝试从缓冲区加载我需要的文件时 我
  • 如何在vim中将菜单键(“应用程序键”)映射到Escape键?

    我认为使用菜单键退出 vim 的插入模式将是一件很棒的事情 使用 Super 键也很好 但我不确定是否可能 因为 Super 键是一个修饰符 无论如何 我找不到任何与此相关的内容 寻求您的帮助并提前致谢 我认为没有任何方法可以配置 Vim
  • 在 Vim 中以反转模式突出显示匹配项

    如何在 Vim 中使用 match 命令突出显示与给定模式不匹配的文本 所以 我想要相反的 match myGroup foo 好吧 你可以这样做 match myBaseHighlight foo 2match myGroup where
  • 如何在 Vim 中转置文件中的行和列的内容?

    我知道我可以使用 Awk 但我使用的是 Windows 机器 并且我正在为可能没有 Awk 的其他人创建一个函数 我也知道我可以编写 C 程序 但我不希望我正在制作的 Vim 实用程序需要编译和维护 原始文件可能是 THE DAY WAS
  • XML 在多行上分割属性值

    我有包含长属性值的 XML 数据 该值不包含空格字符 我想通过分割 XML 文本来格式化 XML 以提高可读性 以便行不超过最大列数 有什么办法可以实现这一点吗 是否可以在行的每一端放置任何换行符 以便 XML 解析器不会将其视为空格 如
  • vim - 如何删除 netrw?

    我正在测试https github com skwp dotfiles https github com skwp dotfiles 不幸的是它确实安装了很多我不想要的东西 例如 现在 使用空的 vimrc 当我打开 vim 时 我得到 N
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • 禁用 VIM 中的警告?

    有没有办法禁用 VIM 中的警告 特别是 当文件从只读变为可写时 我想禁用警告 12 我有一个脚本可以打开文件进行编辑 但 vim 认为文件已更改并发出警告 Thanks 我的 vimrc 中有以下内容 你应该只需要第二个 它将消息回显到状
  • Vim 函数插入带有传递参数的静态文本

    背景 I m interested in writing a function that assigned to keyboard shortcut s when invoked would 采取用户参数 计算值反映80 string le
  • vim 上有 cit、dit、yit(更改、删除、拉入标签内)...是否有类似坑(粘贴在标签内)之类的东西?

    使用 vim 我习惯了像这样的运动命令cit dit yit编辑 html xml 文件时 我喜欢 使用此命令后甚至更多 因为我只需按一下按键即可重复我所做的事情 我想知道是否有类似坑 粘贴在标签内 的东西已经可用 它会删除标签内并粘贴我想
  • 在 Vim 分割窗口中打开函数定义?

    我知道你可以使用ctrl 在 Vim 中跳转到定义 但是有没有办法让它在分割窗口而不是当前缓冲区中打开 我知道我可以打开一个新的分割窗口 然后使用ctrl 但是有没有更快的方法呢
  • 设置高亮大括号的 vim 颜色主题

    如何更改突出显示大括号的 vim 配色方案 我希望实际编辑 vim 主题文件以使更改永久生效 问候 克雷格 匹配括号的自动高亮颜色称为MatchParen 您可以通过执行以下操作来更改 vimrc 中的颜色 highlight MatchP
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • vim - 昏暗的非活动分割窗格

    如果您熟悉 iTerm2 应用程序 您就会知道您可以像 vim 一样分割视图 并且非活动视图会 变暗 我通常在 vim 中使用三个垂直分割视图 例如 通过将背景颜色设置为较暗的色调来调暗不活动的视图会很好 有没有办法做到这一点 我提出了以下

随机推荐

  • 将 lambda 函数应用于 pandas 滚动窗口系列

    我有一个函数 它接受一个数组和一个值 并返回一个值 我想将其应用到我的系列中s在滚动的基础上 所以数组始终是滚动 窗口 这是我尝试过 不成功 的一个最小示例 使用np random choice代替我真正的功能 我找到了很多查找滚动均值和其
  • 从 bazaar 转换为 git 并同步它们的正确方法

    我在 bazaar 中有一个开发存储库 我想将其转换为 git 并保持同步 我需要这个 因为我将与不了解 bazaar 的人分享我的代码 首先我需要将我的 bazaar 存储库转换为 git 我用谷歌搜索了一下 发现this http as
  • jersey.api.client.WebResource - 如何调试/记录请求标头

    我正在使用 jersey 生成 http 请求 我希望能够看到request在发送之前 用于调试目的 例如 WebResource resource client resource url resource header aa bb res
  • 如何使用MonkeyDevice.instrument?

    嗨 大家好 我正在尝试从 MonkeyRunner 脚本运行我的测试仪器之一 不幸的是我无法让它工作 我尝试使用不同的参数变量调用 MonkeyDevice instrument 但没有成功 我试过了 设备 MonkeyRunner wai
  • 与 EOF 比较时使用 int 作为字符类型

    引自 Kernighan 和 Ritchie 的 C 编程语言 第 16 页 include
  • 使用 Selenium 自动化结帐流程时出现 403

    我正在尝试使用 python 和 selenium 创建一个脚本来自动执行 bestbuy ca 的结帐过程 我一直到达最后阶段 您可以单击以查看最终订单 但当我尝试单击到最后一步时 收到以下 403 禁止消息 如网络响应中所示 是否有服务
  • 当目录中同时添加很多文件时FileSystemWatcher无法正常工作

    当许多文件同时添加到目录中时 FileSystemWatcher 无法正常工作 观察者根本找不到目录中的所有文件 仅当文件被一一放置在文件夹中时 如果大量文件同时复制到文件夹中则不会 线程的创建是问题的解决方案还是有其他方法来处理问题 Th
  • 分割如何提高埃拉托斯特尼筛法的运行时间?

    我遇到了埃拉托色尼筛的分段实现 它的运行速度比传统版本快很多倍 有人可以解释一下分段如何提高运行时间吗 请注意 我想在其中找到素数 1 b 它适用于这个想法 用于查找 10 9 之前的质数 我们首先生成 sqrt 10 9 以下的筛选素数
  • 如何使用 iText 将 HTML 转换为 PDF [重复]

    这个问题在这里已经有答案了 import java io File import java io FileOutputStream import java io OutputStream import com itextpdf text D
  • 如何在两个或多个 Servlet 之间共享变量或对象?

    我想知道是否有某种方法可以在两个或多个 Servlet 之间共享变量或对象 我的意思是某种 标准 方法 我认为这不是一个好的做法 但却是构建原型的更简单的方法 我不知道这是否取决于所使用的技术 但我会使用 Tomcat 5 5 我想共享一个
  • 使用单个共享后台线程进行 iOS 数据处理?

    我有一个应用程序 可以从网络下载大量资源 并对每个资源进行一些处理 我不希望这项工作发生在主线程上 但它非常轻量级且优先级低 因此所有这些都可以真正发生在同一个共享工作线程上 这似乎是一件好事 因为设置和拆除所有这些工作线程都需要工作 没有
  • 如何解决“程序主模块为空:运行时不会发生任何事情”

    我在 F 解决方案中有两个项目 1 主要项目有 EntryPoint http msdn microsoft com en us library dd402151 aspx并设置为启动项目 2 support 第二个项目 拥有一组支持模块
  • 为什么 CLR 为匿名方法创建新类?

    我在我的项目中也使用了匿名函数 直到知道我在想 C 编译器仅使用用于匿名方法的代码生成一个方法在同一个班 但是 在 IL 中反编译这段代码后 我看到 CLR 创建了一个新类 public class Comparer public dele
  • 如何在使用 NHibernate 进行任何插入之前增加 ID

    看起来NH只获取一次MAX ID 第一次插入然后在内部存储这个值 这会在其他进程插入数据时给我带来一些问题 然后我没有实际的 ID 并且抛出重复键异常 假设我们有桌子Cats CREATE TABLE Cats ID int Name va
  • 如何在Python程序中嵌入Google Speech to Text API? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个项目 在其中创建了客户端和主机之间的聊天程序 并且我必须在其中嵌入语音到文本 有什么方法可以在
  • 将毫秒时间戳解析为 R 中的时间

    我以前曾问过这个问题 但我找不到确切的答案 如果我有一个代表自午夜以来的毫秒数的数字 例如 34200577 我如何将其转换为 R 时间 在午夜构造一个 基线时间 添加给定的毫秒一旦转换为秒并解释为时间 R gt as POSIXct as
  • data.table 逐行求和、平均值、最小值、最大值,如 dplyr?

    还有其他关于数据表上的行式运算符的帖子 他们要么是太简单 https stackoverflow com questions 7885147 efficient row wise operations on a data table或解决一
  • 找到具有公共键的哈希数组的最大值?

    我有两个数组 每个数组包含任意数量的具有相同键但不同值的哈希值 ArrayA value abcd value length 4 type 0 value abcdefgh value length 8 type 1 ArrayB valu
  • 在 Kotlin 中将 Dp 转换为 Px - 这种转换永远不会成功

    我在使用 Kotlin 编码时遇到了问题 我复制粘贴了一个java代码示例 https stackoverflow com a 9685690 6818446将 DP 转换为像素 以便将其作为以编程方式设置填充的参数 我原本期望 IDE 能
  • 在 VIM 中缩进文件夹中的所有文件

    我有一个包含数百个 TTL TeraTermLanguage 文件的文件夹 现在我想缩进所有这些文件 我已经创建了用于缩进的 teraterm vim 并使用 VIM 打开一个文件并执行 gg G 整个文件得到了正确的缩进 但是有什么方法可