2012-07-26 13 views
6

Ostatnio robiłem przejście do GVim, ponieważ uważam, że jest bardziej estetyczne i trochę szybsze niż vim w terminalu. Mam ten naprawdę zły nawyk, który próbuję złamać. Kiedy użyłem vim z linii poleceń mój przepływu pracy było tak:Wymuś GVim, aby podpowiedzieć przed zamknięciem.

vim filename.txt 
# make some edits 
ZZ 
# do other stuff 
vim otherfile.txt 
# make some edits 
ZZ 

Teraz używając GVim, ja skończyć zamknięciem edytora zbyt często. Zastanawiam się, czy istnieje sposób na to, by GVim wymusił albo monituj mnie, albo otwórz pusty bufor, kiedy robię :wq lub . Jakieś pomysły?

EDYCJA: Wiem, jak zmienić odwzorowanie klawiszy, ale zastanawiam się, czy istnieje sposób zmusić GVim do innego zachowania niż wtedy, gdy vim jest wywoływany z wiersza poleceń.

Odpowiedz

6

wywołania funkcji na ZZ i jeśli pozostała tylko jedna karta i okno, zapytaj, czy zamknąć, czy nie (domyślnie jest to zamknięcie). Zobacz :help confirm().

nnoremap ZZ :call QuitPrompt()<cr> 

fun! QuitPrompt() 
    if has("gui_running") && tabpagenr("$") == 1 && winnr("$") == 1 
     let choice = confirm("Close?", "&yes\n&no", 1) 
     if choice == 1 | wq | endif 
    else | wq | endif 
endfun 
6

Umieszczenie następujących w vimrc mogą być wykorzystane, aby całkowicie wyłączyć skrót ZZ sumie:

nnoremap ZZ <Nop> 

Albo można zmienić ich układ do standardowego zachowania :q:

if has("gui_running") 
    nnoremap ZZ :q 
    nnoremap :wq :q 
endif 
+0

mogę to zrobić, ale nadal jak zdolność do dostosowania się vim w linii poleceń, zrobić szybką edycję i ZZ. – jfocht

+0

Jeśli tak jest, po prostu otocz go 'if has (" gui_running ") ... endif' – sybkar

2

Dodaj ten w swoim .vimrc:

set confirm 
Powiązane problemy