コマンドを使用してファイルを開くときに、:e filename
そのファイルが別のvimインスタンスによってすでに開かれている場合は、次の場所でファイルを開くかどうかを尋ねられます。読み取り専用モードしかし、編集、再開、終了、または中止されました。
vimを試すと停止:silent! e filename
するようです。しかし、スワップファイルで何をすべきかを尋ねる質問がありますが、静かにするように言うことはできません。
ファイルを開くように指示するために使用できるコマンドはありますか?読み取り専用モード もしファイルを書き込みモードで開くことができず、ユーザーの対話は必要ありませんか? (ファイルをジャンプ/開くためにこれをマクロに統合したい)
答え1
お持ちの場合精力>= 7(私の考えでは)autocmd
イベントと一緒に使用できますSwapExists
。そこでは、非常に単純なものから非常に複雑なものまで何でもできます。
以下は ~/.vimrc の簡単な例です。
autocmd SwapExists * let v:swapchoice = "o"
スワップファイルが存在すると、このイベントが発生します。上記のautocmdは読み取り専用モードでのみファイルを開きます。 autocmdから値を取得すると
、v:swapchoice
いいえ何をしたいのか尋ねてください。使用できる値はここにリストされています。v: 交換の選択。
非常に高度なautocmdについては、ここを参照してください:既存の.vimの編集
vimをインストールした後、スクリプトがサーバーにすでに存在する可能性があるためeditexisting.vim
。
答え2
正確にこれを行うスクリプトがあります.vimrc
。ただし、swpファイルを含む開いているすべてのファイルに対してこれを行います。常にこの動作をしたいかどうかはわかりません。おそらく、作成中のマクロで必要に応じて調整できます。
swpファイルがある場合はroを開くには、次のように入力します.vimrc
。
func CheckSwap()
swapname
if v:statusmsg =~ '\.sw[^p]$'
set ro
endif
endfunc
if &swf
set shm+=A
au BufReadPre * call CheckSwap()
endif
ここからこのスクリプトを入手しました。ここ、そして興味を持つことができる高度な例です。
答え3
RHELとUbuntuのコマンドはview
vimを読み取り専用モードで開きますが:w!
。