2015-04-16 11 views
5

dosyaları .swp bırakır öldürülen her vim örneğinin kalması. Ayrıca, takas dosyasının konumunu değiştirmeden, aynı komut dosyasında veya başka bir kısa çözümde takas dosyasını nasıl silebilirim?Bütün 'vim' süreçler xxx.log dosyalarda çalışmaya öldürecek bir senaryo geliştirdik

+0

'pgrep'' ps -ef | grep vim' için uygun yoldur. Ayrıca "fuser", dosyayı açık olan işlemlerin dosyalarını bulmak için daha iyi bir yoldur. (Takas dosyasında 'fuser'i çağırmak zorunda olsanız da, VIM düzenlenmiş dosyayı her zaman açık tutmaz.) Lsof -p | grep REG | grep xxx.log' başka bir alternatiftir. – Dummy00001

+0

Evet, “kill” (2) ** veya ** (7) ** sayfalarını okudunuz mu ve “SIGKILL” sinyali hakkında ne yazıyor? SIGKILL bir işlemin özel bir sinyal işleyicisini kurmasına izin vermez, bu yüzden programı her zaman dosyaları kapatma, geçici dosyaları ve benzerlerini sağlama şansı vermeden öldürür. Başka bir sinyal deneyin (değeri 15 olan SIGTERM), "-9" yerine "-15" (ya da sadece "varsayılan değeri" olarak "kill") seçeneğini deneyin. Bu arada, sinyalleri ve -9 'özel değerini (bu konuda her şeyi okumadım) hakkında bilgi okudunuz ??? –

+0

Başka bir tarafta, '.swp' dosyalarını çalıştırırsanız, bu dosyaları kurtarma olasılığını ortadan kaldırırsınız. Bu tehlikeli bir şey. –

cevap

2

Takas dosyası sildiğiniz adı içerdiğinden, bunu uygun bir eylemle de bulabilmeniz gerekir. Ancak, vim gibi etkileşimli bir editörün öldürülmesi, birçok düzeyde çok yanlış sesler çıkarır. Bunu yapmamanı gerçekten düşünmelisin. Hangi durumda bu arzu edilir?

+0

günlükleri dosyasından bazı bilgiler grepping. ancak bir dosya vim/less gibi başka bir işlem tarafından açıldığında, bu dosyalar hakkında bir hata yazdırılır: main.log.2015-04-15.1246.gz: beklenmedik bir dosya sonu – Asfbar

12

kill'dan 'u bırakın; bu, Vim'e TERM (inat) sinyalini göndererek, takas dosyasını temizlemesine ve kaldırmasına izin verir (en azından Ubuntu'da benim için yaptı).

/KILL kullanarak, işlemi temizleme şansı vermezsiniz. Bu sadece kesinlikle gerekli olduğu durumlar için kullanılmalıdır (örneğin, süreç asıldığında veya sonsuz bir döngüde ve harici sinyallere tepki göstermediğinde).

+0

iyi iş (= 2 gün bir şey öğrendim. – Asfbar

+0

Bu problemi çözdüyseniz, lütfen cevabınızı yandaki onay işaretini tıklatarak kabul edin: –

+0

@Assafbaruch, ama her şeyi okuyun. "SIGKILL" veya takma adın -9 olduğunu duyduğunuzda, İşlemin düzgün bir şekilde tamamlanmasına izin vermediğini söyleyen son notu okuyun, eğer bunu okuduysanız ve bunu yaparsanız, birkaç ay içinde tekrar sormanız gerekecektir. –

1

Sen vimrc için

set noswapfile 

ekleyebilir. Bu, ilk olarak takas dosyalarının oluşturulmasına neden olur.

+0

Evet, ancak bu, aynı zamanda çöker ve baskılarınızı kaybedersiniz. –