Zeileninhalt in eine Organisationsmodustabelle einschließen


12

Ich habe einen Tisch wie diesen:

| Verse No | Verse      |
|          | <10>       |
|        1 | line1 li=> |
|        2 | line2 li=> |

Ich würde es gerne so sehen

| Verse No | Verse      |
|          | <10>       |
|        1 | line1 line |
|          | 1 line1    |
|        2 | line2 line |
|          | 2 line2    |

Ich bin mir bewusst, C-c `aber das reicht nicht, ich möchte den gesamten Text gleichzeitig sehen. Schreibgeschützt ist bei Bedarf in Ordnung.


Sehen Sie, ob meine Antwort hier hilft.
Joe

Antworten:


20

org-mode hat 2 tabellenformate, das standard org-tableund das andere ist table.el.

Der Zellenumbruch ist für Tabellen im table.elFormat verfügbar .

Versuche dies

  1. Entfernen Sie die zusätzliche Zeile mit, <10>damit Ihre Tabelle dem folgenden Beispiel ähnelt:

    | Verse No | Verse             |
    |        1 | Line1 Line1 Line1 |
    |        2 | Line2 Line2 Line2 |
    

    Tipp: Fügen Sie über und unter der Tabelle eine leere Zeile ein. Die leeren Zeilen sollten einen Fehler beim Konvertieren der Tabelle mit verhindern C-c ~. Vielen Dank an @ComproPrasad für die Fehlerbehebung und die Problemumgehung.

  2. Platzieren Sie Ihren Cursor, auch bekannt als der Punkt, in der aktualisierten Tabelle und geben Sie ein C-c ~und antworten Sie y. Die aktualisierte Tabelle sollte ähnlich wie im folgenden Beispiel aussehen:

    +----------+-------------------+
    | Verse No | Verse             |
    +----------+-------------------+
    |        1 | Line1 Line1 Line1 |
    +----------+-------------------+
    |        2 | Line2 Line2 Line2 |
    +----------+-------------------+
    
  3. Platzieren Sie den Cursor in der aktualisierten Tabelle C-c 'und geben Sie ein. Ein neues Fenster oder ein neuer Rahmen wird angezeigt.

  4. Typ M-x t-r-tund jede Tabellenzelle sollten hervorgehoben werden.

  5. Platzieren Sie den Cursor in der zweiten Spalte und geben Sie ein, C-c C-c <bis die Spalte die gewünschte Breite hat.

    Tipp: Verwenden Sie die universelle Argumentschlüsselbindung C-u, um diesen Schritt schnell zu wiederholen. Wenn Ihre Zelle beispielsweise 500 Zeichen umfasst und Sie die Breite auf 10 Zeichen anpassen möchten, C-u 490 C-c C-c <wiederholen Sie den C-c C-c <Befehl 490 Mal.

  6. Geben Sie ein C-c ', um die Bearbeitungstabelle abzuschließen. Diese Schritte sollten ein ähnliches Beispiel wie das folgende ergeben:

    +----------+------+
    | Verse No | Verse|
    +----------+------+
    |        1 |Line1 |
    |          |Line1 |
    |          |Line1 |
    +----------+------+
    |        2 |Line2 |
    |          |Line2 |
    |          |Line2 |
    +----------+------+
    

Vielen Dank für Ihre Frage!
Hoffe das hat geholfen!


Diese Antwort wurde getestet mit:
emacs version: GNU Emacs 25.2.1 (x86_64-unknown-cygwin, GTK + Version 3.22.10)
org version: Org mode version 9.1.2


1
Schritt 4 wird nicht benötigt (zumindest in aktuellen Emacs v. 26). Durch Drücken von Cc ~ in Schritt 7 wird die Tabelle table.el wieder in eine bearbeitbare Organisationstabelle konvertiert.
Heikki

@ Heikki Schön zu wissen! Vielen Dank! In Version 25 musste ich Schritt 4 hinzufügen, da die Tabelle nicht erkannt wurde, aber auch keine Fehler verursachte. Wollten Sie, dass ich Schritt 7 hinzufüge C-c ~, um wieder in das org-tableFormat zu konvertieren?
Melioratus

1
Gibt es eine Option, um Schritt 5 zu beschleunigen, z. B. wenn ich 500 Zeichen Inhalt habe und möchte, dass diese auf 10 Zeichen verpackt werden?
user2740

1
Ein Video gemacht: youtu.be/Jo4RlPqs0_c
Compro Prasad

1
Was ist Schritt 4? Ist die t-r-tAbkürzung für einen anderen Befehl? Ich habe festgestellt, dass beim Umgang mit Tabellen mit Text mit eingebetteten Links nach Schritt 3 nur die Spaltenüberschriften ausgewählt werden und ich eine Möglichkeit brauche, jede Tabellenzelle wie in Schritt 4 auszuwählen. Ich weiß es jedoch nicht auf was sich schritt 4 eigentlich bezieht, da M-x t-r-tmir mit org-mode 9.1.9
adamc

6

Passen Sie die Spaltenbreite mit Wrap Around an

Hier ist eine Lösung für org-mode 9.1.13, Spacemacs (0.200.13), emacs 26.1 zur Vereinfachung angepasst.

Beginnen Sie mit dem folgenden Inhalt an einem Puffer im Organisationsmodus:

| Verse No | Verse             |
|        1 | Line1 Line1 Line1 |
|        2 | Line2 Line2 Line2 |

muss eine NEWLINE über der obigen Tabelle lassen, um den Fehler von table.el zu vermeiden.

  1. Konvertieren Sie die Tabelle mit Cc ~ in das Format table.el. +----------+-------------------+ | Verse No | Verse | +----------+-------------------+ | 1 | Line1 Line1 Line1 | +----------+-------------------+ | 2 | Line2 Line2 Line2 | +----------+-------------------+
  2. Passen Sie die Spaltenbreite direkt mit SPC u 10 SPC SPC table-Narrow-Cell an +----------+---------+ | Verse No | Verse | +----------+---------+ | 1 | Line1 | | |Line1 | | |Line1 | +----------+---------+ | 2 | Line2 | | |Line2 | | |Line2 | +----------+---------+

Es funktioniert für meine Konfiguration, ohne in den table.el-Modus zu wechseln. Mit meinen Spacemacs funktioniert Cu 10 Cc Cc <nicht.


Mein neueres Spacemacs-Setup funktioniert mit der oben genannten Lösung nicht mehr. Aber ich habe festgestellt, dass die Konvention zum table.el-Format, dann kann ich den Zeilenumbruch manuell anpassen. Nach der manuellen Bearbeitung kann ich es dann wieder konvertieren und die gewünschten Wraps erhalten.
Yu Shen

1
SPC u 10ist nicht nötig. 10stellt es automatisch vor C-u 10- (Emacs 27.0.50, Spacemacs 9.0.)
Gavin

4

Sobald Sie der akzeptierten Antwort gefolgt sind und die Größe einer langen Spalte in einer vorhandenen Tabelle festgelegt haben, M-x table-fixed-width-modescheint das Umschalten des Modus "Tabelle mit fester Breite" den Trick zu bewirken, dass (zukünftige) lange Textzeilen automatisch in eine Spalte in der Tabellenbearbeitung eingeschlossen werden Modus. Sie gelangen durch Eingabe in den TabellenbearbeitungsmodusC-c '

Getestet am: Emacs 25.2.2, Org-Mode 9.1.6

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.