जवाबों:
उपयोग करें ci"
, जिसका अर्थ है: डबल कोट्स के अंदर क्या परिवर्तन करें।
आप इसी तरह से अन्य टेक्स्ट ऑब्जेक्ट्स में भी फेरबदल कर सकते हैं, जैसे:
ci'
- सिंगल कोट्स के अंदर बदलावciw
- एक शब्द के अंदर परिवर्तन ci(
- कोष्ठक के अंदर परिवर्तनdit
- एक HTML टैग के अंदर हटाएं, आदि।विभिन्न विम पाठ ऑब्जेक्ट्स के बारे में यहाँ और अधिक ।
F"ci"
।
आप उद्धरण चिह्नों और फिर ( d
), परिवर्तन ( c
) आदि का उपयोग करके चयन कर सकते हैं
vi"
इसी प्रकार, आप ब्रेसेस, ब्रैकेट्स, एक्सएमएल एलिमेंट्स इत्यादि को इस प्रकार से बदल सकते हैं:
vi(
vi{
vit
या बस परिवर्तन / हटाने के लिए, इसी करना di"
, ci"
आदि स्थानापन्न a
के लिए i
(ताकि आप निशान या कोष्ठक बदल जाएगा आसपास के तत्वों को शामिल और उदाहरण के लिए, सामग्री)
मैंने एक प्लगइन बनाया है vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
यह किसी भी प्रकार के उद्धरणों के निकटतम जोड़े के लिए पाठ ऑब्जेक्ट प्रदान करता है और कई पंक्तियों में फैले उद्धरणों का समर्थन करता है। केवल iq
या aq
इसका उपयोग करने से आप सिंगल ('), डबल ("), या बैक (`) कोट्स पर काम कर सकते हैं, जो वर्तमान में कर्सर को घेरे हुए हैं, कर्सर के सामने हैं, या पीछे (वरीयता क्रम में) । दूसरे शब्दों में, यह उद्धरणों तक पहुंचने के लिए आवश्यक होने पर आगे या पीछे कूदता है।
उदाहरणों को देखकर समझना आसान है (कर्सर को साथ दिखाया गया है |
):
foo '1, |2, 3' bar
; दबाने के बाद diq
:foo '|' bar
foo| '1, 2, 3' bar
; दबाने के बाद diq
:foo '|' bar
foo '1, 2, 3' |bar
; दबाने के बाद diq
:foo '|' bar
foo '1, |2, 3' bar
; दबाने के बाद daq
:foo | bar
foo| '1, 2, 3' bar
; दबाने के बाद daq
:foo | bar
foo '1, 2, 3' |bar
; दबाने के बाद daq
:foo | bar
ऊपर दिए गए उदाहरण एकल उद्धरणों के लिए दिए गए हैं, प्लगइन बिल्कुल डबल (") और पीछे (`) उद्धरणों के लिए उसी तरह काम करता है।
: आप किसी भी अन्य ऑपरेटरों का उपयोग कर सकते ciq
, diq
, yiq
, viq
, आदि
कृपया अधिक जानकारी के लिए ऊपर दिए गए github पृष्ठ पर एक नज़र डालें।
पहले से ही उद्धरण के अंदर से आप कर सकते हैं
di"
इसे "डिलीट इनसाइड" के रूप में पढ़ें
ब्रायन के उत्तर के अतिरिक्त, आप नए मूल्य को p
(पेस्ट) और y
(यांक) भी कर सकते हैं , इसलिए यदि आप उद्धरण के अंदर मूल्य को दूसरे मूल्य से बदलना चाहते हैं, तो आप yi"
उस चयन पर कर सकते हैं जिसे आप कॉपी करना चाहते हैं, vi"
क्षेत्र का चयन करने के लिए जिसे आप बदलना चाहते हैं और उसके बाद बस p
मूल्य को ठीक से बदलना चाहते हैं।
चुना हुआ उत्तर केवल वीआईएम के लिए उपयुक्त है, लेकिन वीआई के लिए नहीं। यह प्रश्न गलत भी है क्योंकि लेखक ने उल्लेख नहीं किया है कि कर्सर की प्रारंभिक स्थिति क्या है। यदि हम मानते हैं कि कर्सर दोहरे कोट्स के अंदर है तो vi के लिए उत्तर होगा:
T"ct"
कहाँ पे:
टी "- बस" चरित्र के बाद वापस चलते हैं
c - कमांड बदलें
t "- c कमांड के लिए अंतिम स्थिति प्रदान करते हैं, जहां इसे वर्णों को मिटाना बंद करना चाहिए, दूसरे शब्दों में रेंज बदलने के लिए
vim
, लेकिन नहींvi
। (पक्का नहीं)