ดูตัวอย่างฟิลด์ในตารางองค์กร


11

บางครั้งการตั้งค่าความกว้างคอลัมน์แบบแมนนวลเมื่อสร้างตารางในโหมดองค์กรจะสะดวก สิ่งนี้ทำให้คอลัมน์ไม่ต้องขยายตามขนาดของรายการที่ยาวที่สุด เมื่อรายการในและโหมดองค์กรตารางยาวกว่าคอลัมน์ที่พบในรายการจะถูกตัดทอนด้วย=>สัญลักษณ์ที่มองเห็นในตอนท้าย

ฉันรู้ว่าฉันสามารถC-c `ใช้งานorg-table-edit-fieldได้ แต่ต้องกดC-c C-cเพื่อปิดหน้าต่างแสดงตัวอย่างและกลับไปที่บัฟเฟอร์โหมดองค์กร การเรียกคำสั่งเดียวกันด้วยอาร์กิวเมนต์นำหน้าC-u C-c `ทำให้เห็นฟิลด์แบบเต็มเพื่อให้สามารถแก้ไขได้ แต่ก็ยังน่าเบื่อถ้าฉันต้องการแสดงตัวอย่าง 5-10 ฟิลด์อย่างรวดเร็วอย่างรวดเร็ว

LibreOffice Calc มีฟิลด์แสดงตัวอย่างที่ด้านบนของสเปรดชีต (เช่น MS Excel) ซึ่งแสดงค่าของฟิลด์ที่เลือกในปัจจุบัน:

ฟิลด์แสดงตัวอย่างใน LibreOffice Calc

เป็นไปได้ไหมที่จะดูตัวอย่างที่คล้ายกันเมื่อแก้ไขตารางโหมดองค์กร? minibuffer ดูเหมือนว่าเป็นสถานที่ที่ดีสำหรับมันแม้ว่ามันอาจจะมีผลข้างเคียงของการเติม*Messages*บัฟเฟอร์อย่างรวดเร็ว หน้าต่างขนาดเล็กเฉพาะที่ด้านบนหรือด้านล่างของบัฟเฟอร์ก็สามารถใช้งานได้เช่นกัน


3
ตามที่อธิบายไว้ที่นี่คุณสามารถดูตัวอย่างเนื้อหาของเขตข้อมูลที่ถูกตัดทอนโดยใช้เมาส์เหนือเมาส์ (ไม่จำเป็นต้องคลิก) หากคุณtooltip-modeเปิดใช้งานเนื้อหาจะปรากฏในคำแนะนำเครื่องมือ มิฉะนั้นจะปรากฏในพื้นที่เสียงสะท้อน
itsjeyd

ถ้าฉันชอบใช้เมาส์ฉันจะทำให้ตารางของฉันเป็น Excel ... ;-)
nispio

แค่อยากจะให้แน่ใจว่าคุณมีความตระหนักในตัวเลือกนี้ ...
itsjeyd

คำตอบ:


11

แรงบันดาลใจจากคำตอบของ Juanchoฉันตัดสินใจใช้บรรทัดส่วนหัวเพื่อแสดงค่าของฟิลด์ปัจจุบัน ขณะที่ฉันอยู่ที่นี่ฉันตัดสินใจว่าจะเป็นการดีที่จะแสดงตำแหน่งของฟิลด์ในส่วนหัวด้วย:

การดำเนินการส่วนหัวของตารางองค์กร

นี่คือรหัสที่ฉันใช้เพื่อให้บรรลุ:

(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

แรงบันดาลใจจากคำตอบของ seth คุณอาจแสดงข้อความคำแนะนำเครื่องมือบนบรรทัดส่วนหัว (ซึ่งเป็นบรรทัดโหมดที่รู้จักกันเล็กน้อยที่ด้านบนของหน้าต่าง)

ดำเนินการต่อไปนี้:

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

ตอนนี้ทุกครั้งที่ข้อความภายใต้จุดมีคุณสมบัติคำแนะนำเครื่องมือมันจะถูกแสดงบนบรรทัดส่วนหัว

ที่จริงแล้วคำแนะนำเครื่องมือตาราง org มีคำนำหน้าน่ารำคาญพร้อมคำแนะนำ แต่เป็นการประมาณปัญหาของคุณ


ขอบคุณ! ฉันขยายแนวคิดนี้เพื่อหาโซลูชันที่แสดงค่าของฟิลด์ใด ๆ (ไม่ใช่เฉพาะที่มีคำแนะนำเครื่องมือ)
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 ในไฟล์ของคุณ ดังนั้นคุณสามารถทำสิ่งต่าง ๆ ด้วยตารางและเซลล์ได้อย่างง่ายดายเช่นคอลัมน์สลับโดยไม่สูญเสียการแก้ไขเซลล์ในสายตา

ด้วยการล็อคปุ่มกดฉันกดปุ่มนั้นทุกครั้งที่ฉันอยู่ในตารางและต้องการเปิดใช้งานโหมดนี้ เฉพาะตอนนี้ถ้าฉันสามารถหาวิธีเปิดใช้งานอัตโนมัติเมื่อใดก็ตามที่ฉันอยู่ในตาราง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.