Выполнение команд vim без интерактивного режима - PullRequest
2 голосов
/ 02 февраля 2011

Мне нужно выполнять команды 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, но это вызывает ошибки с файлами> 32 ko

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

Ответы [ 2 ]

3 голосов
/ 02 февраля 2011

Я бы сделал:

find .... -print0 | xargs -0 vim -c 'argdo set fenc=utf8' -c 'wqa'
1 голос
/ 03 февраля 2011

Типы файлов, синтаксис и плагины отступов, вероятно, замедляют вас. Они указаны в вашем ~ / .vimrc с помощью строки, которая обычно выглядит следующим образом:

filetype plugin indent on
  • Вы можете попробовать это закомментировать, или
  • Вы можете запустить Vim без ваших плагинов и ~ / .vimrc, но оставаясь в несовместимом режиме, выполнив:

    vim -Nu NONE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...