मैं आसानी से टेबल कैसे बना सकता हूं और बनाए रख सकता हूं?


28

यहाँ कुछ दस्तावेज में मेरे द्वारा उपयोग की गई तालिका का हिस्सा है:

+---------------+------------------------+---------------------------------------+
| TASK NAME     | WHEN                   | DESCRIPTION                           |
+---------------+------------------------+---------------------------------------+
| db:seed       | On every update        | Data required for the application to  |
|               |                        | run; you should always be able to     |
|               |                        | safely execute this multiple times    |
|               |                        | for an update.                        |
| db:truncate   | Manually (dangerous!)  | TRUNCATE all tables but postal_codes  |
| postal_codes  | Once                   | Load the postal_codes table           |
+---------------+------------------------+---------------------------------------+

समस्या यह है कि इसे संपादित करना बहुत अजीब है; अगर मैं एक चीज़ बदलूं, तो मुझे (मैन्युअल रूप से) सब कुछ फिर से संरेखित करना होगा, जो कि पीटीए है

क्या इसे प्रबंधित करने के आसान तरीके हैं? मैं इस तरह के रूप में सटीक ऊपर लेआउट के बारे में परवाह नहीं है, लेकिन 3 कॉलम के रैपिंग रखना चाहते हैं ...


1
एक तरफ, अगर यह reStructuredText है, तो आप इस पर विचार कर सकते हैं list-table(हाल ही में मैंने कई तालिकाओं को इस में बदल दिया, क्योंकि ascii तालिकाओं को बनाए रखने और खराब रूप से
फैलाने के

जवाबों:


35

मैं प्लगइन विम-टेबल-मोड का लेखक हूं । मैंने काफी समय बिताया है और इसे सुधारना, विशेष रूप से सामुदायिक प्रतिक्रिया के साथ और यह इस उपयोग के मामले को बिल्कुल पूरा करता है।

एक छोटा क्विकस्टार्ट: आप :TableModeEnableकमांड के साथ 'टेबल मोड' में प्रवेश करते हैं, फिर आप बस टाइप कर सकते हैं:

||
| MOVIE | QUOTE|
||
| Blade Runner | Like tears in the rain |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
||

और विम-टेबल-मोड स्वचालित रूप से आपके लिए उड़ान भरने के लिए संरेखण का ख्याल रखेगा, ताकि यह इस प्रकार दिखाई देगा:

|-----------------------------------------+-------------------------------------------|
| MOVIE                                   | QUOTE                                     |
|-----------------------------------------+-------------------------------------------|
| Blade Runner                            | Like tears in the rain                    |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
|-----------------------------------------+-------------------------------------------|

बाद में तालिका का संपादन करते समय, vim-table-mode आपके लिए संरेखण का भी ध्यान रखेगा।

आप 'टेबल मोड' को छोड़ सकते हैं :TableModeDisable


इसका कोर आसानी से टेबल बनाने के बारे में है जो आपके टाइप करते ही ऑटो फॉर्मेट हो जाएगा। यह चारों ओर ले जाने के लिए और साथ ही तालिकाओं में हेरफेर करने के लिए बहुत सारे मैपिंग प्रदान करता है (एक विशेष रूप से उपयोगी एक <Leader>tdcसंपूर्ण स्तंभ को हटाने के लिए)। आपको बस इतना करना है कि टेबल मोड को सक्षम करना है और ये इसमें किक करेंगे और आप केवल स्वरूपण की चिंता किए बिना टाइप कर सकते हैं।

इसमें प्रदर्शित की तुलना में कई और विशेषताएं हैं, जैसे कि हेडर पर थोड़ा संकेत के साथ कॉलम संरेखित करने की क्षमता। इसमें एक स्वच्छ स्प्रेडशीट फार्मूला इंजन भी है जो किसी सूत्र को परिभाषित करने और एक नियमित स्प्रेडशीट की तरह संगणना करने की अनुमति देता है।

यह अत्यंत लचीला और विन्यास करने के लिए बनाया गया है ताकि आप बनाए गए तालिकाओं और सीमाओं के कई पहलुओं को बदल सकें।

मैंने कुछ शक्तियां भी बनाई हैं जो अपनी शक्तियों का प्रदर्शन करने की कोशिश कर रही हैं। यह स्क्रैंकास्ट सबसे हाल का है , लेकिन कृपया ध्यान दें कि तब से कई सुधार हुए हैं।


5
धन्यवाद; मैंने कुछ व्यावहारिक उपयोग जानकारी जोड़ने के लिए आपके उत्तर को थोड़ा सा संपादित किया है (यह पहले एक विज्ञापन की तरह थोड़ा सा पढ़ा है) ... एक चीज जो मैं vim-table-mode के साथ नहीं कर पाया था वह है 3rd कॉलम का रैपिंग मेरे प्रश्न में उदाहरण के रूप में ... क्या यह संभव है?
मार्टिन टूरनोइज

@Carpetsmoker संपादन के लिए धन्यवाद। वैसे आप इसे मैन्युअल रूप से लपेट सकते हैं, ऐसा करने का कोई तरीका अपने आप नहीं है।
ध्रुव सागर

6

यदि आप उपयोग कर सकते हैं sedऔर column, एक कमांड लाइन समाधान जो करीब आता है वह होगा:

!sed 's/[- ]*\([+|]\)/'$'\x01''\1/g' | column -ts $'\x01' | sed '/^[-+ ]*$/s/ /-/g'

आप इसे दृश्य चयन और '<,'>या रेखा संख्याओं के साथ जोड़ सकते हैं ।

विपक्ष:

  • उपयोग sedऔर column। विम आकस्मिक है। sedआदेशों शायद vim को बदला जा सकता है :substituteआदेश, लेकिन columnमहत्वपूर्ण है।
  • पंक्ति विभाजक ( ---...-) गद्देदार हो जाते हैं, लेकिन मुझे इसकी विश्वसनीयता पर संदेह है।
  • मुझे नहीं पता कि पोर्टेबल कितना $'\x01'है।

सूत्रों का कहना है:


माइनर एक तरफ चमकता है (जो शायद तय किया जा सकता है), यह आशाजनक लग रहा है ... एक चीज जो मुझे नहीं मिल सकती है वह है 3 जी कॉलम का रैपिंग हालांकि: - /
मार्टिन टूरनोइज

5

यदि आप कोई प्लगइन्स स्थापित नहीं करना चाहते हैं और आप संरेखण को ध्यान में रखते हुए तालिकाओं को संपादित करना चाहते हैं:

- द्वारा बनाए गए VREPLACE मोड में निर्मित का उपयोग करें gR

(सुनिश्चित करें कि आपके पास नवीनतम संस्करण है, और जांच लें कि क्या यह +vreplaceसुविधा के साथ संकलित है , vim --versionटर्मिनल पर टाइप कर रहा है)

यहाँ छवि विवरण दर्ज करें (मेरा स्टेटस REPLACE और VREPLACE मोड दोनों के लिए रिप्ले दिखाने के लिए सेट है)

यदि आप REPLACE और VREPLACE मोड के बारे में अधिक जानना चाहते हैं, तो इस लेख को देखें


3

मैंने इस उद्देश्य के लिए कमांड-लाइन टूल टैबलाइन बनाया है ; यह भीतर से भी काम करता है। बस के साथ स्थापित करें

[sudo -H] pip3 install tablign

तालिका को vim और कॉल में चिह्नित करें

:'<,'>:!tablign

(यदि आपने तालिका को चिह्नित किया है तो आपके लिए पहले कुछ वर्णों को भरना है।)

यह अभी तक स्तंभ की चौड़ाई तय नहीं कर सकता है, लेकिन अगर जरूरत पड़ी तो इसे जोड़ा जा सकता है।

यहाँ छवि विवरण दर्ज करें

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