emacs/vi/vim のコマンドラインからファイルを読み取り専用で開くにはどうすればいいですか?

emacs/vi/vim のコマンドラインからファイルを読み取り専用で開くにはどうすればいいですか?

emacs/vi/vim (コマンドラインから) に、view-modeまたはでファイルを表示したいことを伝える方法はありますかread-only?

emacs/vi/vim がすでに実行されている場合、ファイルを読み取り専用として開く方法を知っています。

答え1

emacsの場合:

emacs FILE --eval '(setq buffer-read-only t)'

読み取り専用を強制する起動オプションはありません。

編集:
この小さな関数をシェルの起動スクリプト(たとえば.bashrc)に入れると、次のように入力してファイルを読み取り専用で開くことができます。ev file_to_view

ev() {
  emacs "$1" --eval '(setq buffer-read-only t)'
}

答え2

vim -R ファイル名

答え3

ファイル名を表示

基本的には読み取り専用モードの vim です。シンプルです!

viewコメントで示唆されているように、プレーンにリンクされている場合はvi、ここにありますバッシュ最初に状況を検査し、次に修正するコマンド:

# non-destructive inspection
which vim
which view
ls -l $(which view)

# overwrite current view with symlink to vim, requires root
ln -sfv $(which vim) $(which view)

答え4

受け入れられた回答に対する小さなフォローアップ: これをシェルでエイリアス化して、単一のコマンドに減らすことができます。たとえば、bash では、.bashrc に次のコードを含めることができます。

emacsro() {
  emacs $1 --eval '(setq buffer-read-only t)'
}

(シェルによってこれを行うための形式は異なりますが、考え方はわかります)

私はこれを、受け入れられた回答への返信としてコメントとして追加するつもりでしたが、コメント内に複数行の「コード」ブロックを含めることは不可能であるように思われ、(とにかく bash では) 上記のコードは実際には 3 つの別々の行に記述する必要があります。

関連情報