vimをより迅速に終了する


124

Vimは、長時間の作業セッションではなく、主にクイック編集に使用します。その意味で、私は特に面倒な終了のためのキーボードシーケンスを見つけます:EscShift+ ;wqEnter

最小限のキーストロークでVimを終了する(おそらくドキュメントを保存する)方法は?特に挿入モードから。


50
電源ボタンを1回クリックするだけです。
レナン

2
@jasonwryanは正しいです-コマンドモードの場合、ZZはかなり高速ですが、比較は正しくありません。キーシーケンスは、modを挿入していることを前提としています。挿入モードを終了するには、Ctrl- [はEscよりも高速です。Shift-:は1つのキーストロークです-入力することはできません。節約できますが、それほど多くはありません。
ドミニククローニン

2
Esc現在のEscキーボードではキーが他のキーから遠く離れているため、挿入モードを終了するために使用しないでください。Ctrl+を使用する]か、独自のマッピングを作成します。
ボイドポインター

3
フランス語キーボードを入手-シフトを排除できます。
リッチ

1
無効なポインター、Escの代わりにCtrl + [の代わりにCtrl + Cが機能しませんか?
zumalifeguard

回答:


154

Shiftzz コマンドモードでは、ファイルを保存して終了します。


4
これには絶対にShiftが必要Z Zですか、それとも単に(大文字)ですか?また、コマンドモードで動作する必要はありませんEsc Z Zか?
CVn

35
また、ESC Z Q保存せずに終了するには
カルロスキャンデロス

Strg + zzは間違っています。vimプロセスをバックグラウンドに送信します
-hek2mgl

2
@MichaelKjörling:ZZは大文字である必要があります。
LarsH

2
ただし、これは1つのファイルのみを閉じます。たくさんのタブを開いているので、たくさんのZが必要です。
フィリップ

41

ZZ通常モードで変更した場合、現在のファイルを保存し、終了するか(同じ現在のウィンドウ/タブを閉じ:xなく:wq、それは修正されていない場合でも、ファイルを書き込みます)。

変更されたすべてのファイルをすべてのウィンドウ、タブ、および非表示のバッファーに書き込んだ後に無条件に終了するには、必要があります:xa(何らかの理由で何らかのファイルを書き込むことができない場合でも終了しません)

何も変更せずに無条件に終了するには:(ZQと同じ:q!)。


1
あなたは通常モードを意味すると思います。「コマンドモード」は、コマンドラインモード
David Brown

@DavidBrown command modeは伝統的な名前ですが、normal modeあいまいさが少ないことに同意します。答えを修正しました。
ステファンシャゼル

33

:x キーが1つ少ない :wq


11
それほど良くShift + Z Zない!
CodeMedic

あなたが持っている場合@CodeMedicそれは遠く離れ最速だnno : ;nno ; :いえ、。(プラスvnoも同じです)。私はスワップについて疑っていましたが、あなたは二度と戻りません。奇数など:nno ,: :silent! unmap :<CR>:silent! unmap ;<CR>:nno ,; :nno ; :<CR>:nno : ;<CR>:vno ; :<CR>:vno : ;<CR>サポートしyap@"ます。
jthill

20

頻繁に使用するタスクのカスタムマッピングを作成します。vimを頻繁に終了する場合は、キーストロークの少ないマッピングを作成します。例えば

nnoremap <leader><leader> :xa<cr>

カンマを2回<leader>押してコンマに設定した場合、let mapleader = ","vimを終了して変更を保存する簡単な方法です。挿入モードのときにもう1つのキーストロークを保存する場合は、対応する挿入モードマッピングも作成します。

inoremap <leader><leader> <esc>:xa<cr>

しかし、注意してください、これはあなたが<leader二度打ったときに偶然かなりvimかもしれません。


1
徹底的な答えをありがとう、vimについてもっと学ぶことを勧めます(私は避ける傾向があります)!
vemv

4
@vemv、逆方向に作業する必要があります-同じことを複数回行う必要があるときはいつでも、それを止める方法があるかどうかを確認してください!
ウェインワーナー

17

これを使用して魔法をかけます。2回のキーストロークのみ!

Ctrl+ s保存するには、

ctrl+ d保存して終了するには、

ctrl+ q変更の破棄を終了します。

1日 これを〜/ .bashrcに入れてください

bind -r '\C-s'
stty -ixon

2番目。これを〜/ .vimrcに配置します

inoremap <C-s> <esc>:w<cr>                 " save files
nnoremap <C-s> :w<cr>
inoremap <C-d> <esc>:wq!<cr>               " save and exit
nnoremap <C-d> :wq!<cr>
inoremap <C-q> <esc>:qa!<cr>               " quit discarding changes
nnoremap <C-q> :qa!<cr>

3番目。vimを再起動して、より生産的な日々を送ってください!


2
ZZとZQだけでなく、Ctrl + D / Ctrl + Qを使用して保存+終了するのはなぜですか?
エヴァンキャロル

こんにちはEvan、ctrl + d / ctrl + qは2回のキーストロークが必要ですが、ZZとZQは3回のキーストロークが必要です。shift + z + z / shift + q + q これを頻繁に行う場合、1つの保存キーが重要です。さらに、保存ショートカットとしてctrl + sを使用してレイズしました。ZZやZQよりも直感的だと思います。
Brain90

4
ZQは危険だと常に考えていました。ZQを押して保存しないようにすることもできますが、誤ってZを2回押した場合は、ファイルを意味のない状態で保存してしまいます。
キース・デベンズ

1
Macを使用している場合は、〜/ .bash_profileを使用します。そして、それを調達することを忘れないでください。
スノークラッシュ

16

Q「Quit」だけではどうですか?

それには、シフトされたキーストロークが1つだけ必要です(ie ShiftおよびQ)。また、偶然にめったにヒットしないキーの組み合わせでもあります。

デフォルトでは、vimはQをにマップしswitch to "Ex" modeます。「Ex」モードが私と同じように役に立たない(またはうっとうしい)場合は、そのデフォルトの機能を見逃すことはありません。

ここで私は私の中に持っているものです.vimrcファイル:

" allow quit via single keypress (Q)
map Q :qa<CR>

保存されていないバッファがある場合、終了する前にプロンプ​​トが表示されます。


どういうわけか私のVIM Qでは、:qデフォルトですでにマップされています。ヒントをありがとう。
user13107 14

7

VIMのチートシートはこちら

VIM用のチートシート

To quit the vi editor without saving any changes you've made:

If you are currently in insert or append mode, press Esc. 

Press  :  (colon). The cursor should reappear at the lower left corner of the screen beside a colon prompt. 

Enter the following:
  q!
This will quit the editor, and all changes you have made to the document will be lost.

もう少し::

ファイルを閉じて保存する

When you edit a file in vi, you are actually editing a copy of the file rather than the original. The following sections describe methods you might use when closing a file, quitting vi, or both.
Quitting and Saving a File

The command ZZ (notice that it is in uppercase) will allow you to quit vi and save the edits made to a file. You will then return to a Unix prompt. Note that you can also use the following commands:

:w  to save your file but not quit vi (this is good to do periodically in
    case of machine crash!).
:q  to quit if you haven't made any edits.
:wq to quit and save edits (basically the same as ZZ).
Quitting without Saving Edits

Sometimes, when you create a mess (when you first start using vi this is easy to do!) you may wish to erase all edits made to the file and either start over or quit. To do this, you can choose from the following two commands:

:e! reads the original file back in so that you can start over.
:q! wipes out all edits and allows you to exit from vi.

最後の2つは、「ファイルを最後に保存したときから」を追加する必要があります...「明らか」ですが、初心者は「素晴らしい、viを開いてからです」と理解でき、セッション中に保存した場合、「: q!」元のファイルはまったく復元されず、「:e!」も復元されません。ファイルが最後に開かれたときまたは保存されたとき(最新のいずれか)から発生した変更は破棄されます。
オリビエデュラック

3

vim を終了して保存するための私のシンプルで便利なソリューションは次のとおりです。

Ctrl+ Xショートカット。

このコードを.vimrcファイルに追加してください:

"Fast quit and save from normal and insert mode
:map <C-X> <ESC>:x<CR>
:imap <C-X> <ESC>:x<CR>

1
いいですが、なぜ<C-Q>マップできないのですか?
friederbluemle

2

試して

nno : ;
nno ; :
vno : ;
vno ; :

fFtTを使用する場合、ある程度慣れる;x必要がありますが、必要に応じて保存するので;qはなく、保存するだけで終了します。さらに、他のすべても高速になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.