この記事では、Vim でプラグインを使わずに「読み込み専用モードでファイルを開く」ためのコマンドについて、ご紹介します。
[解答] vim -R / view / gvim -R / :set ro
Vimで読み込み専用モードでファイルを開く
vim -R {ファイルパス}
次のコマンドでも、まったく同じ結果が得られます。
view {ファイルパス}
gVim読み込み専用モードでファイルを開く
gvim -R {ファイルパス}
バッファを読み取り専用モードに切り替える
(ノーマルモード) :set readonly :set ro (上記コマンドの略)
どこで使うのか?
この開き方は、次のようにファイルを誤って変更したくない場合に活用できます。
- ログファイル
- 本番環境の設定ファイルやソースコード など
ちなみに、変更権限が無いファイルを開く場合には自動的に読み取り専用モードに切り替わります。
補足
引数の R は Read Only の略です。また、:set ro も同じです。
また、:set noro で読み取り専用モードを解除することができます。
なお、neovim の場合は、引数 R がありません。
このVimコマンドの補足情報
- 利用頻度
- 便利さ
- 覚え易さ
関連するVimヘルプ
Vim のヘルプでは下記のように解説されています。
-R
starting – Vim日本語ドキュメント
-R 読み込み専用モード。オプション ‘readonly’ が、編集される全ての
ファイルに設定される。これにより、まだバッファを編集することは
できるが、偶然にファイルを上書きしてしまうようなことは防がれ
る。もしも、読み込み専用モードにいることを忘れてバッファへ変更
を行ったとしても、”:w!” のようにExコマンドに「ビックリマーク」
を付けることで上書きすることが可能。‘readonly’ オプションは
“:set noro” としてオフに設定することが可能である(オプションを
説明した章optionsを参照)。その後の編集は読み込み専用モードで
はなくなる。実行ファイルを “view” として起動した場合は、この-R
引数と同じ動作になる。オプション ‘updatecount’ は10000に設定さ
れ、これはスワップファイルがそう頻繁には自動更新されなくなると
いうことである。
変更を不許可とするには -M を参照。
‘readonly’ ‘ro’ ‘noreadonly’ ‘noro’
options – Vim日本語ドキュメント
‘readonly’ ‘ro’ 切替 (既定ではオフ)
バッファについてローカル
オンのときは、書き込みコマンドは ‘!’ を付けないと使えない。これは間違っ
てファイルを上書きしてしまうことを防ぐためのものである。Vimが読み込み
専用モードで起動された (“vim -R”) ときと、実行ファイルの名前が “view”
のときにはオンが既定値になる。
‘cpoptions’ にフラグ ‘Z’ が入っていない場合、”:w!” を使うとカレントバッ
ファの ‘readonly’ がオフになる。
コマンド “:view” を使って開かれたバッファでは、オプション ‘readonly’
はオンになる。
バッファの変更を不許可とするには ‘modifiable’ を参照。
こちらは、Vim上では下記のコマンドでヘルプを確認できます。
:help -R :help readonly :help ro
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。
こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。
Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。