15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vimの公式リファレンスの便利なTipsたち

Last updated at Posted at 2018-12-17

Vim Advent Calendar 2018 その2 18日目の記事です。

こんにちわ
自分は普段vimに関するTipsや情報を記事から得る事がほとんどで、
マニュアルをあまり読んできませんでした。

マニュアルを読まない癖がついてしまっていますが、
記事などでは得られない情報があるので、最近はなるべくマニュアルを読むようにしています。

vimにはvim-jpの方々が翻訳してくださったマニュアルがあり、vimの機能について細かく紹介されています。
今回の記事はそのマニュアルからこれは便利だなと思う機能を紹介していきます。

各項目はリンクになっているので、詳細を知りたい方はリンク先を参照してください。

セッション

vimには現在の作業状態をセッションとして保存・復元する機能があります。
開いているファイルや分割ウィンドウなどがそのままファイルに出力して、ファイルを読み込むことで復元できます。

これがあれば、tmuxの代用できそうですね。
そんなことはなかった…

[追記]
先日sessionについてこちらの記事でも触れたので、合わせて読むことをおすすめします。

vim-session.gif

セッション保存

:mksession vimbook.vim

セッション復元

sourceコマンドでファイルを読み込むか

:source vimbook.vim

もしくは起動時にファイルを指定するかで復元可能。

vim -S vimbook.vim

他に色々細かいオプションがありますので気になった方はマニュアルへ。

ネットワーク上のファイルを編集する

vimはgfでカーソル上にあるファイルを開くことができるが、実はネットワーク上にあるファイルをダウンロードして編集することもできます。

対応しているプロトコルは以下の様です。

ftp://          ftp を使う
rcp://          rcp を使う
scp://          scp を使う
http://         wget を使う (読込専用)

gf-vim.gif

httpプロトコルでは外部でwgetを実行しているのはgifから確認できますね。
使用する時は外部コマンドが必要なので、ご注意ください。

履歴からファイルを開く

:oldfilesor:olでファイルの履歴一覧を確認できます。
ただ、これだけでは一覧の確認しかできないので、:browse olで番号を選択してファイルを開くことができます。

oldfiles.gif

複数のファイルを変更する

sedコマンドを使用して複数のファイルを一括で変更することが多いと思いますが、
vimでも同じことができます。

vimでは:argsでファイルを開き、:argdoでバッファを含むファイル達に対して、
一括でコマンドを実行してファイルを保存することができます。

:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update

ただ、バッファのファイル全部対象となるため、対象外のファイルが入っていないことを確認しておいたほうが良いと思います。

他のTips

マニュアルにTipsがいくつか紹介されています。
例えば複数のファイル名をリネームする方法です。

自分自身ドキュメントを読んでいてvimを理解し、使いこなしていく上でかなり大事なドキュメントだなと思いました。
では良きvimライフをー

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?