In vi, saya bisa mendapatkan terminal shell dengan :sh
perintah. Dan nanti, saya bisa kembali ke vi dengan exit
shell.
Tetapi, jika saya menggunakan terminal shell untuk waktu yang lama, dan saya lupa apakah exit
akan menutup sesuatu atau mengembalikan saya vi.
Apakah ada cara untuk memeriksa apakah saya akan kembali ke vi? jobs
atau fg
tidak berfungsi.
external-command
hailinzeng
sumber
sumber
Jawaban:
Dalam shell biasa:
Setelah menggunakan
:shell
Jadi sepertinya Vim menetapkan
VIMRUNTIME
,VIM
danMYVIMRC
variabel lingkungan. Dari mereka,VIM
tampaknya yang paling dapat diandalkan untuk saya (Anda mungkin tidak memiliki vimrc atau bahkan vim runtime).Anda juga dapat mengatur variabel lingkungan Anda sendiri:
Ini sangat berguna untuk mengkomunikasikan info tentang buffer yang sedang Anda edit; sebagai contoh:
Akan muncul sebagai sesuatu seperti:
sumber
Saya meminta command prompt saya untuk menambahkan simbol "+" merah yang menunjukkan jika saya berada di vim ": sh" sebagai lawan dari sesi shell normal. Landasannya adalah bahwa "$$" adalah pid dari proses saat ini sehingga:
Setelah Anda memiliki ini, Anda dapat dengan mudah inline dan membangun sesuatu seperti yang saya jelaskan untuk digunakan dalam ".bashrc" Anda atau serupa.
Catatan : Metode variabel lingkungan ($ VIM) yang dijelaskan di tempat lain tampaknya lebih baik daripada ini, tetapi saya akan membiarkannya karena ini berfungsi dalam mengidentifikasi apakah Anda adalah anak proses apa pun (bukan hanya vim).
sumber
:sh
: MYVIMRC, VIM dan VIMRUNTIME. Yang harus Anda lakukan untuk mengetahui Anda menjalankan sub-shell Vim adalah menguji keberadaan semua itu.Jalankan
ps
, atau lebih baikps -fH
,. Ex:Keuntungan menggunakan
ps -fH
lebih dari itups
adalah memungkinkan Anda melihat apakah Anda berada di sub-shellvim
atau jika Anda meletakkannyavim
di latar belakang. Dalam hal ini,ps -fH
akan terlihat seperti ini:sumber