在没有交互模式的情况下执行 vim 命令

发布于 2024-10-15 17:30:18 字数 451 浏览 0 评论 0原文

我需要对数千个文件执行 vim 命令,而不会受到交互模式缓慢的影响。我尝试过:

    find ... | xargs vim '+set fileencoding=utf-8 | x'

    for file in ... ; do 
        vim '+set fileencoding=utf-8 | x' $file
    done

它太慢了,而且我有警告

Vim : Warning : Output is not to a terminal

是否不可能避免 vim 中的交互模式?

ps:我可以使用 iconv,但它会导致 files > 错误32 科

    iconv --from-code=ISO-8859-1 --to-code=UTF-8  $file -o $file

I need to execute vim commands on thousands of files without suffering from interactive mode slowness. I tried :

    find ... | xargs vim '+set fileencoding=utf-8 | x'

and

    for file in ... ; do 
        vim '+set fileencoding=utf-8 | x' $file
    done

but it's too slow and I have warnings

Vim : Warning : Output is not to a terminal

Is it impossible to avoid interactive mode in vim ?

ps: I can otherwise use iconv, but it causes errors with files > 32 ko

    iconv --from-code=ISO-8859-1 --to-code=UTF-8  $file -o $file

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

好菇凉咱不稀罕他 2024-10-22 17:30:18

我会这样做:

find .... -print0 | xargs -0 vim -c 'argdo set fenc=utf8' -c 'wqa'

I would do:

find .... -print0 | xargs -0 vim -c 'argdo set fenc=utf8' -c 'wqa'
心安伴我暖 2024-10-22 17:30:18

文件类型、语法和缩进插件可能会减慢您的速度。
这些是在你的 ~/.vimrc 中用一行通常看起来像这样的行指定的:

filetype plugin indent on
  • 你可以尝试将其注释掉,或者
  • 你可以在没有插件和 ~/.vimrc 的情况下启动 Vim,但保持不兼容模式,方法是:

    vim -Nu NONE

Filetype, syntax and indent plugins are probably what's slowing you down.
These are specified in your ~/.vimrc with a line that looks typically like:

filetype plugin indent on
  • You could try commenting that out, or
  • You can start Vim without your plugins and ~/.vimrc but staying in nocompatible mode by doing:

    vim -Nu NONE

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文