Org तालिका में फ़ील्ड का पूर्वावलोकन करें


11

Org-mode में टेबल बनाते समय कभी-कभी मैन्युअल कॉलम की चौड़ाई सेट करना सुविधाजनक होता है। इससे ऐसा होता है कि कॉलम को अपनी सबसे लंबी प्रविष्टि के आकार तक बढ़ने की ज़रूरत नहीं है। जब ऑर्ग-मोड तालिका में एक प्रविष्टि उस स्तंभ से अधिक लंबी होती है, जिसमें प्रवेश होता है =>, तो अंत में एक प्रतीक के साथ प्रवेश नेत्रहीन रूप से छोटा हो जाता है ।

मुझे पता है कि मैं उपयोग करने के C-c `लिए कर सकता हूं org-table-edit-field, लेकिन इसके C-c C-cलिए पूर्वावलोकन विंडो को बंद करने और ओआरजी-मोड बफर पर वापस जाने की आवश्यकता होती है । उपसर्ग तर्क के साथ एक ही कमांड को कॉल करने C-u C-c `से पूरा क्षेत्र दिखाई देता है ताकि इसे जगह में संपादित किया जा सके, लेकिन यह अभी भी थकाऊ है अगर मैं जल्दी से जल्दी उत्तराधिकार में 5-10 क्षेत्रों का पूर्वावलोकन करना चाहता हूं।

लिबरऑफिस Calc में एक स्प्रैडशीट के शीर्ष पर एक पूर्वावलोकन फ़ील्ड है (इसलिए MS Excel) जो वर्तमान में चयनित फ़ील्ड का मान दिखाता है:

LibreOffice Calc में पूर्वावलोकन फ़ील्ड

क्या ऑर्ग-मोड टेबल का संपादन करते समय एक समान पूर्वावलोकन प्राप्त करना संभव है? मिनीबफ़र इसके लिए एक अच्छी जगह की तरह लगता है, हालाँकि इसमें *Messages*बफर को जल्दी भरने का दुष्प्रभाव हो सकता है । बफर के ऊपर या नीचे एक समर्पित मिनी विंडो भी काम करेगी।


3
जैसा कि यहां बताया गया है , आप माउस के साथ उन पर मँडरा कर (काटे गए आवश्यक क्लिक नहीं) करके काटे गए फ़ील्ड की सामग्री का पूर्वावलोकन कर सकते हैं। यदि आपने tooltip-modeचालू किया है, तो सामग्री टूलटिप में दिखाई देगी; अन्यथा उन्हें प्रतिध्वनि क्षेत्र में प्रदर्शित किया जाएगा।
इसका अजायबघर

अगर मुझे माउस का उपयोग करना पसंद है, तो मैं एक्सेल में अपनी टेबल
बनाऊंगा

बस आप यह सुनिश्चित करना चाहते हैं कि आप इस विकल्प से अवगत हों ...
इसका अजब गजब

जवाबों:


11

जुआनचो के जवाब से प्रेरित होकर , मैंने वर्तमान क्षेत्र के मूल्य को प्रदर्शित करने के लिए हेडर लाइन का उपयोग करने का निर्णय लिया। जब मैं उस पर था, तो मैंने तय किया कि हेडर में मैदान के स्थान को दिखाना अच्छा होगा:

कार्रवाई में संगठन तालिका शीर्ष लेख

यह वह कोड है जिसे मैंने इसे प्राप्त करने के लिए उपयोग किया था:

(defun my-trim-string (arg) 
  "Simple function for trimming the whitespace from the ends of
 a string. Also removes any string properties such as font faces."
  (let ((str (substring-no-properties arg)))
    (when (string-match "^[ \t]+" str)
      (setq str (replace-match "" nil nil str)))
    (when (string-match "[ \t]+$" str)
      (setq str (replace-match "" nil nil str)))
    str))

(defun my-org-table-location (&optional arg)
  "Get the location of the current field in the table"
  (interactive "P")
  (when (eq 'org-mode major-mode)
    (org-table-get-specials)
    (let* ((row (org-table-current-dline))
           (col (org-table-current-column))
           (loc (if arg
                    (format "%c%02d" (+ 64 col) row)
                  (format "@%d$%d" row col))))
      (when (called-interactively-p 'any)
        (message "Field Location: %s" loc))
      loc)))

(defun my-org-table-field (&optional arg)
  "Get the value of the current field in the table"
  (interactive "P")
  (when (eq 'org-mode major-mode)
    (org-table-get-specials)
    (let* ((formula (org-table-current-field-formula))
           (value (my-trim-string (org-table-get-field)))
           (field (or (and arg formula) value)))
      (when (called-interactively-p 'any)
        (message "Field Value: %s" loc))
      field)))

;; Define the format for the header line in Org mode
(setq my-org-table-header
      (list '(:eval (let ((loc (my-org-table-location))
                          (field (my-org-table-field)))
                      (format " %s: %s" loc field)))))

(defun my-org-mode-setup ()
  "Apply custom setup to org-mode buffers"
  (setq-local header-line-format my-org-table-header))
(add-hook 'org-mode-hook 'my-org-mode-setup)

यह कुछ दिनों (न्यूनतम) परीक्षण से पीछे हट गया, इसलिए मैंने आगे जाकर इसे साझा करने का फैसला किया। यदि कोई अन्य व्यक्ति इसका उपयोग कर रहा है, तो कृपया मुझे बताएं कि क्या आपके पास इसके साथ कोई समस्या है।


9

सेठ के उत्तर से प्रेरित होकर, आप हमेशा हेडर लाइन पर टूलटिप पाठ प्रदर्शित कर सकते हैं (जो विंडो के शीर्ष पर एक छोटी-सी ज्ञात मोड लाइन है)।

निम्नलिखित को निष्पादित करें:

(setq-default header-line-format (list '(:eval (help-at-pt-kbd-string))))

अब, हर बार बिंदु के नीचे के पाठ में टूलटिप गुण होता है, इसे हेडर लाइन पर प्रदर्शित किया जाएगा।

दरअसल, ओआरजी-टेबल टूलटिप्स में निर्देशों के साथ एक कष्टप्रद उपसर्ग होता है, लेकिन यह आपकी समस्या का एक अनुमान है।


धन्यवाद! मैंने इस विचार का विस्तार किया एक समाधान के साथ आने के लिए जो किसी भी क्षेत्र का मूल्य दिखाता है (न कि केवल टूलटिप्स वाले)।
nispio

8

यदि आप अपने कर्सर को सेल में रखते हैं और C-h .इसे हिट करते हैं तो यह उस सेल के लिए इको एरिया में हेल्प टेक्स्ट दिखाएगा। मदद पाठ में संपूर्ण मूल्य के साथ-साथ अन्य सहायता पाठ भी शामिल हैं। शोर की तरह लेकिन यह मूल्य दर्शाता है।

इको देखें display-local-helpऔर मदद करें


3

यह एक पुराना प्रश्न है, लेकिन मुझे इसे जोड़ना चाहिए।

(add-hook 'org-mode-hook
          '(lambda ()
             (setq-local header-line-format (list '(:eval (substring-no-properties (org-table-get-field)))))
           ))

मुझे लगता है कि @nispio के समाधान को लागू करने के लिए यह एक अधिक प्रत्यक्ष तरीका है।


0

M-x org-table-follow-field-mode केवल आपकी फ़ाइल में org- मोड में होने के साथ-साथ रिमोट-एडिट को भी देखने की अनुमति नहीं होनी चाहिए। तो आप टेबल और कोशिकाओं के साथ विभिन्न चीजों को आसानी से कर सकते हैं जैसे कि स्वैप कॉलम, दृष्टि में सेल-संपादन को खोए बिना।

कीबाइंडिंग के साथ, मैं उस कुंजी को दबाता हूं जब भी मैं टेबल के अंदर होता हूं और इस मोड को सक्रिय करना चाहता हूं। अब केवल अगर मैं टेबल के अंदर हूं तो इसे ऑटो-एक्टिवेट करने का एक तरीका मिल सकता है।

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