リビルドする方法はありますか:vimでvimを誤ってvimを終了させないようにもっと複雑なコマンドにする方法はありますか?vimを誤って終了するのを防ぐにはどうすればいいですか?
答えて
あなたは何を恐れていますか?あなたがまだ変更を保存していないときに、Vimは(!
コマンド修飾子なしで)終了させないので、GVIMのウインドウの位置、サイズ、多分タスクバーの位置だけが失われる可能性があります。
:Alias q if\ winnr('$')>1||tabpagenr('$')>1||confirm('Really\ quit?',\ "&OK\\n&Cancel")==1|quit|endif
最後のウィンドウのために、このチェックを(:q
は必ずしもVimを終了していない)、および、確認を挿入します。
とにかく、あなたはこのように、cmdalias pluginを使用することができ、:q
のような組み込みコマンドを無効にするには。
あなたは:q
コマンドを削除するには、このようなものを使用することができます。
:cabbrev q <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'echo' : 'q')<CR>
これはコマンドモードでq
echo
にを略したが、q
が最初にない場合は省略形がトリガすることはできません。カラム。この方法では、edit q
はedit echo
と省略されません。
希望するものは:close
です。このためおかげで@Paradoxialを
cabbrev q <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'close' : 'q')<CR>
:それは:q
のような役割を果たしていますが、最後のウィンドウを閉じるせません。
http://vimdoc.sourceforge.net/htmldoc/windows.html#:close
あなたはclose
にマップするq
コマンドのエイリアスを設定することができます:cabbrev trick。
ConfirmQuit.vim:あなたはvimのに
http://www.vim.org/scripts/script.php?script_id=1072
を終了しようとすると、私は、特定のファイルに対して、この上でこれを望んでいたとして、私は
autocmd bufenter c:/intranet/notes.txt cnoremap <silent> wq<cr> call ConfirmQuit(1)<cr>
を使用してこれを適応確認ダイアログを提供します
ありがとう! しかし、ConfirmQuit.vimを使用するプレーンなvimを使用している人は、 "if has(" gui_running ")" –
私は知っている、それは非常に古い質問ですが、私は今日同じ質問があり、私はこの投稿を最初に見つけました。私は.vimrcに入れる短いスクリプトを開発した。
function! ConfirmQuit(writeFile)
if (a:writeFile)
if (expand('%:t')=="")
echo "Can't save a file with no name."
return
endif
:write
endif
if (winnr('$')==1 && tabpagenr('$')==1)
if (confirm("Do you really want to quit?", "&Yes\n&No", 2)==1)
:quit
endif
else
:quit
endif
endfu
cnoremap <silent> q<CR> :call ConfirmQuit(0)<CR>
cnoremap <silent> x<CR> :call ConfirmQuit(1)<CR>
私はこれが誰かを助けることを望む。
ありがとうございます!私は別のプラグインを望んでいない! –
- 1. ConcurrentModificationExceptionを防ぐにはどうすればいいですか?
- 2. タイムアウトを防ぐにはどうすればいいですか
- 3. ブランチ間でソナーの誤検出を防ぐにはどうすればいいですか?
- 4. signals2 :: scoped_connectionがdisconnect()で異常終了するのを防ぐにはどうしたらいいですか?
- 5. 私のウェブページのprintscreenを防ぐにはどうすればいいですか?
- 6. デバイスドライバのインストールを防ぐにはどうすればいいですか?
- 7. 複数のウィンドウを防ぐにはどうすればいいですか?
- 8. Safari Mobile(iPad)のスクロールラグを防ぐにはどうすればいいですか?
- 9. ラベルコントロール内のボタンクリックを防ぐにはどうすればいいですか?
- 10. AppleScriptの自動ダイアログボックスを防ぐにはどうすればいいですか?
- 11. .NETベースクラスの使用を防ぐにはどうすればいいですか?
- 12. Flowtypeの統一タイプを防ぐにはどうすればいいですか?
- 13. JavaFXテストプロジェクトで重複を防ぐにはどうすればいいですか
- 14. TextViewでスワイプを防ぐにはどうすればいいですか
- 15. ループを完了するためにエラーを防ぐにはどうすればよいですか?
- 16. これらのメモリリークを防ぐにはどうすればよいですか?
- 17. href redirect onclickを防ぐにはどうすればいいですか?
- 18. MSILランタイム注入を防ぐにはどうすればいいですか?
- 19. プルリクエストでのコミットを防ぐにはどうすればよいですか?
- 20. 「すべて終了」後にnode.jsスクリプトを終了するにはどうすればよいですか
- 21. pthreadでスリープスレッドを終了するにはどうすればいいですか?
- 22. プロンプトでプログラムを終了するにはどうすればいいですか?
- 23. 強制終了アプリなしでAndroidでデーモンスレッドを終了するにはどうすればいいですか?
- 24. Javascriptの機能を防止、停止、または終了するにはどうすればよいですか?
- 25. チェックされているラジオボタンの2回目のクリックを防ぐにはどうすればいいですか?
- 26. jquery.jmslideshow.js終了するにはどうすれば終了するのですか
- 27. HTMLテキストの孤立を防ぐにはどうすればよいですか?
- 28. モバイルビジターの訪問を防ぐにはどうすればよいですか?
- 29. ItemCountの重複を防ぐにはどうすればよいですか?
- 30. SPAMユーザーのサインアップを防ぐにはどうすればよいですか?
:qは十分に複雑ではありませんか?私はそれを誤って自分自身に打つことはありません... –
私は@EricJに同意します。 ':'、 'q'と打ち込み、Enterを押します。 *終了しない共通のコマンドはそれに近いですか? –
@KeithThompson - まあ、 'q:'はそれに近いです、話す方法です。私はそれがどれほど共通しているのか分かりません。 – Rook