emacs/vi/vimに(コマンドラインから)ファイルをview-mode
またはread-only
で表示するように指示する方法はありますか?
emacs/vi/vimが既に起動している場合にのみ、ファイルを読み込みとして開く方法を知っています
82 Nifle 2010-10-28
For emacs:
emacs FILE --eval '(setq buffer-read-only t)'
強制的に読み取り専用にする起動オプションはありません
編集: この小さな関数をシェルの起動スクリプト (.bashrc など) に入れておけば、 ev file_to_view
と入力することでファイルを読み取り専用で開くことができます
ev() {
emacs "$1" --eval '(setq buffer-read-only t)'
}
48 Trey Jackson 2010-10-28
vim -R ファイル名
146 RedGrittyBrick 2010-10-28
view filename
基本的には読み込み専用モードのvim
コメントにあるように、view
がプレーンな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)
26 mrverrall 2010-10-28
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のような環境でファイルを表示するには、ファイルを変更する機能はありません
10 Jay 2010-10-28
受け入れられた回答の小さなフォローアップ。シェル内でこれをエイリアスにして一つのコマンドにすることができます。例えば、bash の場合、.bashrc に以下のように記述することができます
emacsro() {
emacs $1 --eval '(setq buffer-read-only t)'
}
(シェルによってこれを行うためのフォーマットは異なりますが、お分かりいただけると思います)
受理された回答への返信としてコメントとして追加するつもりでしたが、コメントに複数行の「コード」ブロックを持つことは不可能だと思われました
9 Chirael 2012-10-31
編集する機能を持たずにファイルを表示するだけの場合
cat <file> | less
less
では、vキーを押すとファイル編集モードになります。しかし、標準入力を編集することはできませんので、cat <file>
の出力をLOWにパイピングすると、less
がvを押しても編集モードにならなくなります
vimの場合も同様のアプローチ
cat <file> | vim -
6 nxdrvr 2014-03-21
emacsの場合は、ビューモードを使うこともできます
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
または端末内の代替品を使用することができます
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
あるいは、私のラッパースクリプトを使うこともできます
5 None 2012-09-12
emacsでは、以下のようなことができます
emacs FILE -f view-mode
シンタックスハイライトが適用されます。読み取り専用バッファとして開くだけではありません。I-search のようないくつかのコマンドは、このモードではコントロールキーなしでアクセスできます
2 jogama 2018-02-10
ファイルを標準出力に送信する場合、ファイルのサイズを考慮すると許容できるかもしれません
cat <file> # dump whole file to stdout
head <file> # view the first few lines
tail <file> # view the last n lines
0 Nathan Feger 2010-10-28
ここでは誰の回答にも答えないつもりはありませんが、Read-only Mode
ファイルについてもう少し情報を追加したいと思います。oreillyのドキュメント読み取り専用モード ファイルを見たいが、不注意なキー入力や変更からファイルを保護したい場合があるでしょう。(vi の動きを練習するために長いファイルを呼び出したい場合や、コマンドファイルやプログラムをスクロールしたい場合があるかもしれません)。読み取り専用モードでファイルを入力し、すべての vi 動作コマンドを使用することはできますが、ファイルを変更することはできません
読み取り専用モードでファイルを見るには、どちらかを入力します
$ vi -R file
or:
$ view file
(view コマンドは vi コマンドと同様に、ファイル内の特定の場所に移動するためのコマンドラインオプションを使用することができます)。ファイルを編集する場合は、write コマンドに感嘆符をつけることで読み取り専用モードを上書きすることができます
:w!
or:
:wq!
書き出しに問題がある場合は
0 Md Haidar Ali Khan 2018-03-15