क्या इसका उत्पादन संभव है: a! पूरे विंडो के बजाय एक विभाजन में कमांड?


11

यदि मेरे पास दो विभाजन के साथ एक विम सत्र है, जब मैं एक :!कमांड निष्पादित करता हूं , तो परिणाम पूरे विंडो में दिखाया गया है। क्या सक्रिय विभाजन पर केवल आउटपुट दिखाया जाना संभव है?


2
नहीं, यह संभव नहीं है। यदि आउटपुट :!को कमांड लाइन में दिखाया गया है, जिसमें से केवल एक ही है, और केवल स्क्रीन के निचले भाग में हो सकता है। मैं जो सबसे अच्छा सोच सकता हूं, वह एक नया बफर बना रहा है: / मौजूदा एक के नीचे विभाजित ...
मार्टिन टूरनोइज

@Carpetsmoker, मेरे लिए, आउटपुट :!कमांड लाइन में नहीं जाता है। इसके बजाय विम सत्र गायब हो जाता है और पूरी टर्मिनल विंडो टर्मिनल आउटपुट को दिखाती है, जिसमें शामिल किया गया था, जिसे पहले vimलागू किया गया था।
drs

1
हो सकता है कि आपके द्वारा उपयोग किए जाने वाले टर्मिनल और / या TERMसेटिंग के कारण हो?
मार्टिन टूरनोइज

यह अंतर अल्टस्क्रीन (इन screen) या वैकल्पिक-स्क्रीन (इन tmux) के साथ करना है।
tommcdo

जवाबों:


8

आप इस कमांड का उपयोग कर सकते हैं:

:new | 0read ! command

यह एक नया विभाजन खोल देगा और इस विभाजन में कमांड का आउटपुट डालता है ( हालांकि वर्तमान में सक्रिय विभाजन में नहीं जैसा कि आपने उल्लेख किया है )।

नया - नया विभाजन बनाता है

पढ़ा - कमांड आउटपुट पाने के लिए

कमांड - वास्तविक कमांड


6

आप ऐसा करने के लिए एक कमांड बना सकते हैं:

  1. एक नया विभाजन (या टैब) खोलें
  2. एक कमांड चलाएं और उस विभाजन (या टैब) में परिणाम दिखाएं

कमांड कुछ इस तरह होगी:

:Rsplit command

या

:Rtab command

अपने में .vimrcआप यह लिख सकते हैं:

" execute a command and show its output in a split window
command! -nargs=* -complete=shellcmd Rsplit execute "new | r! <args>"

" execute a command and show its output in a new tab
command! -nargs=* -complete=shellcmd Rtab execute "tabnew | r! <args>"

आप पा सकते हैं कि कैसे अपने खुद के आदेश बनाने के लिए :help :command


1

यह संभव नहीं होगा। आपको अपनी स्क्रीन को किसी अन्य उपकरण जैसे tmux (IIRC), स्क्रीन, के साथ विभाजित करना होगा ...

यदि आपको निष्पादित कार्यक्रम के साथ बातचीत करने की आवश्यकता नहीं है, तो आप इसके परिणामों को सीधे किसी भी विंडो में (उस अर्थ में :h windows) आयात कर सकते हैं, जिसके साथ आप चाहते हैं :r!command line:h :r!

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