2011-02-02 16 views
2

対話モードが遅くならずに何千ものファイルに対してvimコマンドを実行する必要があります。対話モードのない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 
+0

vimの-Nu

"それは> 32 KOファイルでエラーが発生" - なっていることです:のvimrcが、実行してnocompatibleモードに滞在していません「ko」の代わりに「kb」を読む? –

答えて

3

ファイルでエラーが発生します。

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

私の完全なfindコマンドは 'find -exec file -i {} \;です。 | grep iso-8859 | awk -F ':' '{print $ 1}' 'なので、' -print0 | xargs -0'は困難です。 'xargs vim -c 'を使ってリダイレクトすると、argdoはfenc = utf8' -c 'wqa'をセットします。ターミナルは異常に動作します(vimからのエスケープ文字?)。しかしforループでは、うまくいきます。返信をありがとう –

1

ファイルタイプ、構文とインデントプラグインは、あなたを遅く何おそらくありますダウン。 これらは一般的に次のような行を使用して、〜/ .vimrcとで指定されています。あなたはそれをコメントアウトしてみてください可能性があり

filetype plugin indent on 
  • 、または
  • あなたのプラグインや〜/なしでVimを起動することができます。 NONE

+0

それはうまく動作します。返信いただきありがとうございます。 –

関連する問題