Vim Advent Calendar 2018 その2 18日目の記事です。
こんにちわ
自分は普段vimに関するTipsや情報を記事から得る事がほとんどで、
マニュアルをあまり読んできませんでした。
マニュアルを読まない癖がついてしまっていますが、
記事などでは得られない情報があるので、最近はなるべくマニュアルを読むようにしています。
vimにはvim-jpの方々が翻訳してくださったマニュアルがあり、vimの機能について細かく紹介されています。
今回の記事はそのマニュアルからこれは便利だなと思う機能を紹介していきます。
各項目はリンクになっているので、詳細を知りたい方はリンク先を参照してください。
セッション
vimには現在の作業状態をセッションとして保存・復元する機能があります。
開いているファイルや分割ウィンドウなどがそのままファイルに出力して、ファイルを読み込むことで復元できます。
これがあれば、tmuxの代用できそうですね。
そんなことはなかった…
[追記]
先日sessionについてこちらの記事でも触れたので、合わせて読むことをおすすめします。
セッション保存
:mksession vimbook.vim
セッション復元
sourceコマンドでファイルを読み込むか
:source vimbook.vim
もしくは起動時にファイルを指定するかで復元可能。
vim -S vimbook.vim
他に色々細かいオプションがありますので気になった方はマニュアルへ。
ネットワーク上のファイルを編集する
vimはgf
でカーソル上にあるファイルを開くことができるが、実はネットワーク上にあるファイルをダウンロードして編集することもできます。
対応しているプロトコルは以下の様です。
ftp:// ftp を使う
rcp:// rcp を使う
scp:// scp を使う
http:// wget を使う (読込専用)
httpプロトコルでは外部でwgetを実行しているのはgifから確認できますね。
使用する時は外部コマンドが必要なので、ご注意ください。
履歴からファイルを開く
:oldfiles
or:ol
でファイルの履歴一覧を確認できます。
ただ、これだけでは一覧の確認しかできないので、:browse ol
で番号を選択してファイルを開くことができます。
複数のファイルを変更する
sedコマンドを使用して複数のファイルを一括で変更することが多いと思いますが、
vimでも同じことができます。
vimでは:args
でファイルを開き、:argdo
でバッファを含むファイル達に対して、
一括でコマンドを実行してファイルを保存することができます。
:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update
ただ、バッファのファイル全部対象となるため、対象外のファイルが入っていないことを確認しておいたほうが良いと思います。
他のTips
マニュアルにTipsがいくつか紹介されています。
例えば複数のファイル名をリネームする方法です。
自分自身ドキュメントを読んでいてvimを理解し、使いこなしていく上でかなり大事なドキュメントだなと思いました。
では良きvimライフをー