ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
Vim
5
どのような問題がありますか?

この記事は最終更新日から5年以上が経過しています。

投稿日

Vimをバッチモード(-e -s)で使う際のTips

ファイルを1行ずつ読み込みながら処理するのはawkが向いていますが、
途中の行から前に戻りながら編集したい場合など、
エディタ操作としてなら簡単に記述できる処理をスクリプトとして実行したい場合、
Vimのバッチモードは便利です。
(shell script中から、バッチモードで起動したVimを、1つのフィルタとして使う等)

最近Ex mode用スクリプトを2つ書いた際のTipsです。

GNU edのコメントは#だがvimは"

Ex modeでのスクリプト実行では、ed用スクリプトもある程度動作。

--noplugin

plugin内(fakeclip.vim等)でエラーが発生するとexit codeが1になるのを回避するため。

-X

Xサーバへの接続にPCによっては70ms程度かかる場合があるので。

前の行へは-、次の行へは+

-4等も使用可。

:-は、:.-1の省略とみなされる模様。
Vimのヘルプには明示的な記述は無いが、:rangeあたり。

Ex mode用スクリプトファイル内に空行があるとE501: At end-of-file

エラーが発生するとvimのexit codeが1になる

スクリプトのデバッグは-Vを付けてvimを実行

画面に何も表示されずに、Vimが動き続けて終了しない場合は、qa!<Enter>と入力してみると終了するかも

ユーザ入力待ちになっている可能性。

shell scriptから呼んでいる場合、以降の処理を中断させたいときは:cquitしてexit codeを1にして、shell script側で判定

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
この記事は以下の記事からリンクされています

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
5
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー