जब आप विम पर हों तब टर्मिनल तक पहुँचें


40

क्या विम का उपयोग करते समय टर्मिनल तक पहुंचने का एक तरीका है ?

मुझे दूसरा टर्मिनल खोलना या वर्तमान टर्मिनल से बचना और बाहर निकलना पसंद नहीं है।


एक नया टैब खोलें? (Ctrl + Shift + T)
विल्फ़

2
कितनी बार करते हैं :) मुझे यह पसंद नहीं है कि डी:
मोहम्मद रजा रेजवानी

1
क्या आपने tmux की तरह टर्मिनल विंडो मैनेजर का उपयोग करने की कोशिश की है?
जेआरजी

जवाबों:


67

आप SIGTSTP सिग्नल को विम भेज सकते हैं। आप इसे दबाकर ctrl+ करें z। विम पृष्ठभूमि में निलंबित हो जाएगा, और आप टर्मिनल का उपयोग कर सकते हैं। fgविम के साथ फिर से शुरू करने के लिए टर्मिनल में टाइप करें ।

बोनस टिप: यह लगभग सभी टर्मिनल अनुप्रयोगों पर काम करता है। bgपृष्ठभूमि में चलने के लिए एप्लिकेशन को सक्षम करने के लिए उपयोग करें ।


21
या सिर्फ के %बजाय fg। या %1, %2आदि यदि आपके पास कई पृष्ठभूमि वाली नौकरियां हैं। jobsकमांड उन्हें सूचीबद्ध करेगा। ( bashशैल के रूप में मानकर ।)
रसलान

4
मैं ^ z (और बाद में एफजी) विधि के लिए वोट करता हूं, क्योंकि इसका उपयोग लगभग सभी शेल प्रक्रियाओं में किया जा सकता है - यह कोई भी व्यर्थ बात नहीं है, यह एक कैसे-उपयोग-शेल चाल है जो अन्य संदर्भों में अविश्वसनीय रूप से उपयोगी है।
dman

35

विम में, बस टाइप करें:

:!sh

:!एक बाहरी प्रक्रिया शुरू करता है - इस मामले में sh, एक और शेल। शेल से बाहर निकलते ही नियंत्रण वापस आ जाएगा। यदि आप शेल का समवर्ती रूप से उपयोग करना चाहते हैं, &तो sh कमांड के अंत में जोड़ें :

:!sh&

9
या सिर्फ उपयोग करें :shell
व्रचिन

2
अधिकांश उद्देश्यों के लिए यह सबसे अच्छा उत्तर है।
फ्रैंक कॉन्री

यह अच्छा है, लेकिन जब कमांड एक सर्वर चला रहा है, तो इसके बारे में क्या है http-serverऔर यह लॉग को प्रिंट करता है जिसे मैं देखना चाहता हूं? मैं अपनी फ़ाइलों पर स्विच करना, संपादन करना, फिर लॉग पर वापस स्विच करने में सक्षम होना चाहता हूं।
कोस्टा

21

आप :shellकमांड (या संक्षिप्त रूप :sh) का उपयोग कर सकते हैं । से :help :shell:

यह कमांड एक शेल शुरू करता है। जब शेल बाहर निकलता है ("निकास" कमांड के बाद) आप विम पर लौटते हैं। शेल कमांड का नाम 'शेल' विकल्प से आता है।

डिफ़ॉल्ट रूप से, उबंटू पर, यह आपको बैश देगा। exitजब आप कर रहे हों तो विम पर लौटने के लिए टाइप करें।


8

हाल के विम के बाद से अब आप कर सकते हैं:

:terminal

यह शुरुआत में विम 8.0.693 में जोड़ा गया था , लेकिन बहुत सारे बग के साथ। देखें :help terminal:

WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE

The terminal feature is optional, use this to check if your Vim has it: 
        echo has('terminal')
If the result is "1" you have it.   

[...]

The terminal feature requires the +multi_byte, +job and +channel features.

==============================================================================
1. Basic use                                            terminal-use

This feature is for running a terminal emulator in a Vim window.  A job can be
started connected to the terminal emulator. For example, to run a shell: 
     :term bash

Or to run a debugger: 
     :term gdb vim

The job runs asynchronously from Vim, the window will be updated to show
output from the job, also  while editing in any other window.

7

सभी उत्तरों के अतिरिक्त।

आप ConqueTerm प्लगइन इंस्टॉल कर सकते हैं

यह प्लगइन विम बफ़र्स के अंदर इंटरैक्टिव प्रोग्राम चलाने की क्षमता प्रदान करता है।

स्थापना के बाद आप इस 2 लाइनों को अपने में जोड़ सकते हैं .vimrc:

:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>

और अगर आप को चलाने के लिए सक्षम हो जाएगा bashदबाकर Shift+ Tदबाकर पास वर्तमान Conque टैब, और Shift+W

यदि आपको तेज़ ओपन / क्लोज़ की आवश्यकता है तो यह लंबवत है bash

यहाँ gif है जो दिखा रहा है कि यह कैसा दिखता है


क्या आप कृपया पदों को अपडेट करने पर विचार कर सकते हैं? आपके द्वारा उल्लिखित लिंक पुराना लगता है
ggulgulia

4

स्क्रीन या बायोबू के साथ एक अन्य विकल्प उन कार्यक्रमों के भीतर एक टैब खोलना है। ये प्रोग्राम टर्मिनल-सत्र cq शेल को खुला रखना और कीबोर्ड के साथ उन स्क्रीन के बीच स्विच करना काफी आसान बनाते हैं।


1

Vim 8.1 के नए संस्करण के साथ आपको बस इतना करना है कि यह :terminalवॉयस और वॉइला है! (यह बनाया गया है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.