Korzystając z vi, możesz wyjść z trybu wstawiania za pomocą Ctrl+ Czamiast bardziej tradycyjnego Esc. Czy są jakieś sytuacje, w których niepożądane byłoby stosowanie w przypadku pierwszego z nich zamiast drugiego? Czy narusza to coś innego niż najlepszą praktykę?
15
Type :quit<Enter> to exit Vim
i sprawia, że Google ma sposób na odzyskanie. Naciśnięciei
powoduje powrót do trybu wstawiania.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 wvi
).źródło
Myślę, że masz na myśli
vim
, nievi
.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 implementacjevi
, które tego nie implementują, i może się okazać, że podczas uruchamianiavi
na tych platformach Ctrl-C ma swoje tradycyjne zachowanie: przerywa proces i pozostawia terminal w dziwnym stanie .źródło
vi
implementację, która nadal istnieje, która nie obsługujeCtrl-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 wyzwalaInsertLeave
zdarzenia. Tak więc Ty lub wtyczki zdefiniowałeś dowolneautocmd
instrukcje, odInsertLeave
których nie będą uruchamiane.Z oficjalnej dokumentacji http://vimhelp.appspot.com/insert.txt.html :
Można zdefiniować odwzorowanie dla
CTRL-C
celu<esc>
, to będzie wyzwalaćInsertLeave
.źródło