vim: पिछले कोड इंडेंटेशन को निकालें और दूसरे में कन्वर्ट करें


3

मेरे पास कई फाइलों (100 से अधिक) के साथ एसी प्रोजेक्ट है, कोड व्हॉट्समिथ्स शैली में लिखे गए हैं, लेकिन मैं उन्हें कश्मीर एंड आर स्टाइल इंडेंटेशन में बदलना चाहता हूं । क्या स्वचालित तरीके से विम का उपयोग करना संभव है?

उदाहरण के लिए मेरे पास इसे प्राप्त करने के लिए एक इमैक-लिस्प स्क्रिप्ट है -

(progn 
  (find-file "{}") 
  (mark-whole-buffer) 
  (setq indent-tabs-mode nil) 
  (untabify (point-min) (point-max)) 
  (indent-region (point-min) (point-max) nil) 
  (save-buffer))

मैं सोच रहा था कि क्या ऐसी ही कोई चाल है जो विम के साथ की जा सकती है।

अद्यतन: मुझे अस्टाइल नामक एक और अच्छा उपकरण मिला है , जो विभिन्न भाषाओं (शैलियों की एक विस्तृत श्रृंखला के साथ) के लिए ऑटो-इंडेंटेशन का समर्थन करता है।


4
नोट ऑफ़ ग्नू इंडेंट जो यह सब अपने आप करता है, और अच्छी तरह से परखा जाता है। पहिए आदि को फिर से लगाने से बचना
डैनियल एंडर्सन

जवाबों:


5

या तो सभी C फ़ाइलों को Vim निष्पादन योग्य पास करें vim file1.c dir/file2.c, या उन्हें Vim के अंदर से तर्क के रूप में जोड़ें (देखें :help file-searching):

:args **/*.c **/*.h

फिर, आप उन्हें बड़े पैमाने पर संपादित कर सकते हैं :argdo। विम में एक अंतर्निहित इंडेंटिंग तंत्र है, या यह एक बाहरी कोड फ़ॉर्मेटर का उपयोग कर सकता है। पर विवरण के बारे में पढ़ें :help C-indenting

एक बार जब आप मांगपत्र सेटिंग कॉन्फ़िगर करने ( 'cindent', 'cinoptions'आदि), आप सभी फ़ाइलों के माध्यम से आवेदन कर सकते हैं

:argdo execute 'normal! ggVG=' | update

( ggVGपूरे बफर को विजुअल मोड में चुनता है, =फिर री-फॉर्मेट में।)


आपके पास सबसे अच्छा विम उत्तर है :) +1
ларослав Рахматуллин

4

आदमी इंडेंट * स्क्रॉल स्क्रॉल स्क्रॉल *

   The Kernighan & Ritchie style is used  throughout  their  well-known  book
   "The  C  Programming Language".  It is enabled with the ‘-kr’ option.  The
   Kernighan & Ritchie style corresponds to the following set of options:

        -nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
        -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
        -nprs -npsl -saf -sai -saw -nsc -nsob -nss

उदाहरण के लिए:

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