vim - 如何在文本文件上执行 vim 命令列表?

标签 vim

我有一个大约 1000 行长的文本,我有一堆想要应用到它的 vim 命令。很多正则表达式查找和替换的东西。例如:

  • :%s/^[^\$\$]/def
  • :%s/\$\$/
  • %s/='/ = ['

  • 我可以一个一个地复制和粘贴这些命令,但是每次收到这个文件的新版本时,我都必须再次这样做。我想知道是否有办法保存一长串命令,然后我可以将其应用于文件?谢谢!

    最佳答案

    寄存器

    您可以通过在暂存缓冲区中键入这些命令然后 y 将它们全部放入寄存器中。进入寄存器,或通过显式赋值:

    :let @a = "%s///\n%s///"
    

    然后,通过 :@a 执行

    根据您的 Vim 配置,寄存器内容可能会跨 session 持续存在 (cp. :help viminfo ),但您必须小心不要覆盖它们。

    脚本

    一个更持久和更具可扩展性的解决方案是将命令放入一个单独的脚本文件中,最好使用 .vim延期。你可以把它们放在任何地方(除了 ~/.vim/plugin ,除非你想让它们自动执行),然后通过
    :source /path/to/script.vim
    

    自定义命令

    如果你经常需要一组命令,你可以给它们一个名字并将它们变成一个自定义命令:
    :command! MyCommands %s/// | %s///
    

    将此放入您的 ~/.vimrc , 或者(如果它是特定于文件类型的),将其设为 :help ftplugin .

    关于vim - 如何在文本文件上执行 vim 命令列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723873/

    相关文章:

    ios - 使用 Vim 代替(或与)Xcode 进行 iOS 开发

    vim - VIM 中的 "buffer"是什么?

    c++ - cmake 生成多个 compile_commands.json?

    python - 安装YCM报错: python site module not loaded

    vim 将注释行视为空行

    c++ - 我应该如何与使用 Xcode 的开发人员协作?

    ruby-on-rails - 有没有办法在 Vim 中运行单个集中的 Shoulda 测试或上下文(可能使用rails.vim)?

    vim - 如何在 Vim 中为 CUDA .cu 和 .cuh 文件启用语法高亮?

    vim - 如何在 VIM 中阅读 RSS?

    macos - iterm vim colorscheme无法正常工作