回答:
emacsの場合:
emacs FILE --eval '(setq buffer-read-only t)'
強制的に読み取り専用にするスタートアップオプションはありません。
編集:
この小さな関数をシェルスタートアップスクリプト(たとえば、.bashrc)に配置すると、次のように入力してファイルを読み取り専用で開くことができます。ev file_to_view
ev() {
emacs "$1" --eval '(setq buffer-read-only t)'
}
vim -Rファイル名
ファイル名を表示
基本的に読み取り専用モードでvim。シンプル!
コメントで示唆されているように、case view
がplain vi
にリンクされている場合、最初に状況を検査してから修正するbashコマンドがあります。
# 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)
vim
、構文の強調表示がありますが、あなたはview
、おそらくあなたがいないview
の最小限のバージョンへのリンクであるvim
こと構文が強調表示でコンパイルされていない。の出力の比較:version
コマンドを使用します。
argv[0]
動作を決定するために読み取ります。これは一般的なトリックです。私の知る限り、GCCとBashも同様です。
vim -R <file>
で書くことができます :w!
vim -c ":set nomodifiable" <file>
ユーザーがバッファ内のファイルを変更できないようにします。しかし、ユーザーはバッファを変更可能にすることができます:set modifiable
使用できます
vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>
ユーザーが「nomodifiable」をオフにするのを防ぎ、ユーザーがを押して終了できるようにしますq
。ただし、ユーザーはコマンドモードをまったく使用できません。コマンドモードを使用することも、使用しないこともできます。
lessコマンドでファイルを開くこともできます:
less <file>
vimのような環境でファイルを表示するが、ファイルを変更する機能がない。
less
@nxdrvrが指摘するように、あなたが押すことができますが、Vのキーをにeditiableモードでファイルを開くためにvi
受け入れられた答えへの小さなフォローアップ:これをシェルでエイリアス化して、単一のコマンドに減らすことができます。たとえば、bashでは、.bashrcに次のものを追加できます。
emacsro() {
emacs $1 --eval '(setq buffer-read-only t)'
}
(これを行うための異なるシェルには異なるフォーマットがありますが、あなたはアイデアを得る)
私はこれを受け入れられた回答への返信としてコメントとして追加しますが、コメントに複数行の「コード」ブロックを含めることは不可能と思われ、(とにかく)上記のコードは本当に必要です3つの別々の行に。
編集する機能なしでファイルを表示するには:
cat <file> | less
でless
あなたを押して「編集ファイルモード」に行くことができますvキーを押します。ただし、標準入力を編集することはできないため、「v」を押すと出力を「cat <file>
less」にパイプするless
と「編集」モードに移行しなくなります。
vimについても同じアプローチ
cat <file> | vim -
v
提案をありがとう。気の利いた。
cat
。使用するだけ<FILENAME less
です。
<file> less
エラーを与えるだろう、私はあなたが意味するless <file>
と仮定していますが、答えで説明したように、less
直接使用する場合、ユーザーはvキーを押して編集モードに入ることができます。パイピングcat
により、less
これが発生するのを防ぎます。
less < FILENAME
を押すと、「標準入力を編集できません」ということがわかります。Vimでも同様です。vim - < FILENAME
emacsの場合、view-modeも使用できます。
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
または端末内の代替:
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
または、ラッパースクリプトを使用できます
私はここでユーザーの答えに誰も同意しませんが、Read-only Mode
ファイルについてさらに情報を追加したいと思います。oreillyのドキュメントによると、読み取り専用モードファイルを表示したいが、そのファイルを不注意なキーストロークや変更から保護したい場合があります。(viの動作を練習するために長いファイルを呼び出したい場合や、コマンドファイルまたはプログラムをスクロールしたい場合があります)。読み取り専用モードでファイルを入力し、すべてのvi移動コマンドを使用できますが、ファイルを変更することはできません。
読み取り専用モードでファイルを表示するには、次のいずれかを入力します。
$ vi -R file
または:
$ view file
(viコマンドのようなviewコマンドは、ファイル内の特定の場所に進むためのコマンドラインオプションのいずれかを使用できます。)ファイルを編集することにした場合は、次の方法で読み取り専用モードをオーバーライドできます。書き込みコマンドに感嘆符を追加する:
:w!
or:
:wq!
ファイルの書き込みに問題がある場合。
詳細についてはこちらをご覧ください