[Vim問題] ファイルを自動保存する方法は?

アイキャッチ:ファイルを自動保存するプラグイン

この記事では、Vimで「ファイルの自動保存」が実現できるようになる方法について、プラグインを使ってご紹介します。

[解答] 自動保存プラグイン「vim-auto-save」

Vim自動保存プラグイン「vim-suto-save」のダウンロード元

下記のいずれかのサイトから、プラグイン自体はダウンロードすることができます。

https://github.com/vim-scripts/vim-auto-save

https://www.vim.org/scripts/script.php?script_id=4521

最近は更新されておらず、若干古めではありますが、機能がシンプルな故に不具合はほとんど起きていません。

説明・概要

編集したファイルの保存し忘れを防ぐ、便利なプラグインです。

GitHub の説明書きにはこう書いてあります。

AutoSave – automatically save changes to disk without having to use :w (or any binding to it) every time a buffer has been modified.
Inspired by the same feature in RubyMine text editor.

GitHub – vim-scripts/vim-auto-save: Automatically save changes to disk
(翻訳)
自動保存 - バッファが変更されるたびに:w(またはそれへのバインド)を使用せずに変更を自動的にディスクに保存します。 RubyMine テキストエディタの同じ機能に触発されました

ちゃんとオリジナルではなく、他のエディタに触発されて作ったことが書かれていて好感が持てますね。

インストール

主なパッケージ管理ツールを利用して、インストールする場合はこちら。

NeoBundle の場合

NeoBundle 'vim-scripts/vim-auto-save'

dein.vim – init.vim の場合

call dein#add('vim-scripts/vim-auto-save') 

dein.vim – TOMLファイル の場合

[[plugins]]
repo = 'vim-scripts/vim-auto-save'

Vim8から標準のパッケージ管理機能を利用しても構いません。

使い方

下記のコマンドを入力して、自動保存の有効/無効を切り替えられます。

:AutoSaveToggle 
vim-auto-save での自動保存
自動保存を有効化したところ

このコマンドを実行する度に ON/OFF が切り替わります。初期値は OFF になっています。

有効にすると、インサートモードからノーマルモードに切り替わるタイミングで自動的に保存してくれます。つまり、インサートモードで ESCキー / Ctrl+[ / Ctrl+c を押したときが保存タイミング。

設定

設定値1. いつも自動保存

導入直後は、自動保存機能は無効になっています。もしいつも有効な状態にしたい場合は下記の設定を施します。

" .vimrc
let g:auto_save = 1

設定値2. 自動保存が更新時間を変更しないようにする

" .vimrc
let g:auto_save_no_updatetime = 1

設定値3. インサートモード中は自動保存しない

" .vimrc
let g:auto_save_in_insert_mode = 0

設定値4. 自動保存の通知を非表示

" .vimrc
let g:auto_save_silent = 1

設定値5. 自動保存時にタグを生成する

" .vimrc
let g:auto_save_postsave_hook = 'TagsGenerate'

このVimプラグインの補足情報

  • 利用頻度[star rate=3]
  • 便利さ[star rate=4]
  • 導入の簡単さ[star rate=5]

関連するVimヘルプ

こちらのプラグインには、Vim上のヘルプはありません。その代わり、非常に簡単なので、下記から README をご覧ください。

https://github.com/vim-scripts/vim-auto-save/blob/master/README.md

参考書籍

Vim力向上には、こちらの書籍が参考になります。

[temp id=3]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。