雑なメモ書き

気楽にいきます

作りたくない一時ファイルを作らずにvimの力を借りたい(1)

なにかvimの力を借りて整形したい

  • 例えばRustのコードを別の箇所に貼るとき
  • とんでもなくインデントが深いコードを整形したい
  • あると思います
                    struct User {
                        username: String,
                        email: String,
                        sign_in_count: u64,
                        active: bool,
                    }
  • これをこのまま貼りたくないですよね
  • なのでvimを使って整形します
vim a
  • shift + < とかで頑張って調整します
  • もしくは、xxxfmtとかあればそれが頑張ってくれるはず
struct User {
    username: String,
    email: String,
    sign_in_count: u64,
    active: bool,
}

a つくりたくないよね?

  • そこでvim-jpの方々に聞いてみました。

そのプログラムがファイル開いて stdio で喋れるのなら::%!/path/to/program みたいなのでカレントバッファを流し込んむとか (よくやるのが JSON の整形で :%!python -m json.tool)

どういう意味なのか?

  • :%! で対象プログラムを指定すると
  • 現在の位置より下のbufferから流し込むことができる
  • 便利です。
  • また一ついいことを覚えました。
  • ありがとうございます。

ただ、僕が要望をうまく伝えられてないのでまだ終わっていない

  • 多分僕はaを作りたくなかった
  • tmpで編集できて邪魔にならない感じのファイルが欲しかった
  • vimよくわからないからこんな感じで書いてみたけど
  • 全然駄目でした。
:%! cat `tempfile`

次回に続きます。

参考になりそうなURL