Vim में लाइन अप या डाउन करने के लिए कमांड (या शॉर्टकट) क्या है? मेरे वर्तमान वर्कफ़्लो को लाइन को कॉपी (कॉपी) करना है और उस लाइन को हटाना और उस लाइन को डालना (पेस्ट करना) है।
Vim में लाइन अप या डाउन करने के लिए कमांड (या शॉर्टकट) क्या है? मेरे वर्तमान वर्कफ़्लो को लाइन को कॉपी (कॉपी) करना है और उस लाइन को हटाना और उस लाइन को डालना (पेस्ट करना) है।
जवाबों:
सबसे पहले, आपको यैंक और हटाने की आवश्यकता नहीं है ; उत्तरार्द्ध हटाए गए सामग्रियों को भी (डिफ़ॉल्ट या निर्दिष्ट) रजिस्टर में डाल देगा। इसलिए, ddp
/ ddkP
एक पंक्ति को नीचे / ऊपर स्थानांतरित करने के लिए सामान्य आदेश हैं।
वैकल्पिक रूप से, आप :move
कमांड का उपयोग कर सकते हैं , अर्थात :move +1
/ / :move -2
; यह रजिस्टर को बंद नहीं करता है, और आप पूरी श्रृंखला को स्थानांतरित भी कर सकते हैं। इसे छोटा करने के लिए आप आसानी से कुंजी मैपिंग को परिभाषित कर सकते हैं।
आप प्लग इन कोई आपत्ति नहीं है (और अतिरिक्त आराम है कि अक्सर उनके साथ आता है), दोनों टिम पोप के अछूता प्लगइन और मेरे LineJuggler प्लगइन प्रदान ]e
/ [e
मैपिंग लाइनें (और कई और अधिक ले जाने के लिए, टिम का उपयोग करता है की एक किस्म के लिए, मेरा निपटने पर ध्यान केंद्रित लाइन (रों))।
सबसे आसान है: :m+
या :m-2
जो :move
Ingo के सुझाव के लिए संक्षिप्त नाम है ।
या Vलाइन ( d/ ) को काटकर दृश्य मोड ( ) का उपयोग करके ( xफिर pकर्सर के नीचे - ( कर्सर के Pऊपर) , पेस्ट करने से पहले अपने कर्सर को सही स्थान पर ले जाने के बाद (ताकि सारांश में यह Vxp/ Vdp)।
जब दृश्य मोड में कई लाइनें चलती हैं, तो आपको :m '>+1
(एक पंक्ति को नीचे स्थानांतरित करने के लिए) या :m '<-2
(एक पंक्ति को ऊपर ले जाने के लिए) का उपयोग करना होगा।
यहाँ नमूना उपयोगी मानचित्रण ( Shift+ ↑/ Shift+↓) है:
nnoremap <S-Up> :m-2<CR>
nnoremap <S-Down> :m+<CR>
inoremap <S-Up> <Esc>:m-2<CR>
inoremap <S-Down> <Esc>:m+<CR>
जो उदात्त पाठ ( Win / OSX ) के समान है।
यहाँ विम विकिया में कुछ सुझाव दिए गए हैं :
nnoremap <A-j> :m .+1<CR>==
nnoremap <A-k> :m .-2<CR>==
inoremap <A-j> <Esc>:m .+1<CR>==gi
inoremap <A-k> <Esc>:m .-2<CR>==gi
vnoremap <A-j> :m '>+1<CR>gv=gv
vnoremap <A-k> :m '<-2<CR>gv=gv
सामान्य मोड में या इन्सर्ट मोड में, वर्तमान लाइन को नीचे ले जाने के लिए Alt-j दबाएँ, या वर्तमान लाइन को ऊपर ले जाने के लिए Alt-k दबाएँ।
नेत्रहीन रूप से लाइनों के एक ब्लॉक का चयन करने के बाद (उदाहरण के लिए, वी दबाकर फिर कर्सर नीचे ले जाएं), पूरे ब्लॉक को नीचे ले जाने के लिए Alt-j दबाएं, या ब्लॉक को स्थानांतरित करने के लिए Alt-k दबाएं।
यह सभी देखें:
अगर मैं एक लाइन को ऊपर से स्वैप करना चाहता हूं तो मैं आमतौर पर निम्नलिखित कार्य करता हूं
ddkP
व्याख्या
ddp
एफडब्ल्यूआईडब्ल्यू, यहां वही है जो मैंने वर्षों से उपयोग किया है। यह चालू लाइन को सामान्य मोड में या दृश्य मोड में चयन को स्थानांतरित करता है, जबकि इंडेंटेशन को स्वचालित रूप से समायोजित करता है।
nnoremap ,<Up> :<C-u>silent! move-2<CR>==
nnoremap ,<Down> :<C-u>silent! move+<CR>==
xnoremap ,<Up> :<C-u>silent! '<,'>move-2<CR>gv=gv
xnoremap ,<Down> :<C-u>silent! '<,'>move'>+<CR>gv=gv
ddkP
नीचे जाना आसान हैddp
:।