Odpowiedzi:
Ctrl-Ci Escnie są takie same w vi
/ vim
w większości trybów, w tym w trybie wstawiania. Różnica polega na tym, że Escwyzwala skróty, podczas gdy Ctrl-cnie. To, czy ma to dla Ciebie znaczenie, zależy od tego, czy Ty lub dowolne używane wtyczki używają skrótów.
Zauważ, że bezpieczniej jest założyć, Esci Ctrl-Cczy nie oznacza to samo w vim
. Innym przykładem z tej samej witryny jest wyjście z trybu wstawiania bloków (nie w vi
).
Myślę, że masz na myśli vim
, nie vi
.
To naprawdę działa vim
, chociaż nie użyłbym tego, chyba że byłbym w 100% pewien, że nigdy nie dotknę systemu operacyjnego innego niż Linux. Powodem jest to, że inne systemy operacyjne mogą mieć własne implementacje vi
, które tego nie implementują, i może się okazać, że podczas uruchamiania vi
na tych platformach Ctrl-C ma swoje tradycyjne zachowanie: przerywa proces i pozostawia terminal w dziwnym stanie .
vi
implementację, która nadal istnieje, która nie obsługuje Ctrl-C
? Zobacz moją odpowiedź na prawdziwą różnicę.
Jeśli masz na myśli vim
, istnieje niewielka różnica. CTRL-C
nie sprawdza skrótów i nie wyzwala InsertLeave
zdarzenia. Tak więc Ty lub wtyczki zdefiniowałeś dowolne autocmd
instrukcje, od InsertLeave
których nie będą uruchamiane.
Z oficjalnej dokumentacji http://vimhelp.appspot.com/insert.txt.html :
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish
abbreviation.
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the InsertLeave autocommand
event.
Można zdefiniować odwzorowanie dla CTRL-C
celu <esc>
, to będzie wyzwalać InsertLeave
.
Type :quit<Enter> to exit Vim
i sprawia, że Google ma sposób na odzyskanie. Naciśnięciei
powoduje powrót do trybu wstawiania.