Последние десять лет я обычно работаю в эмуляторе терминала в полноэкранном режиме (часто в xterm) и часто с вертикальным разделением. Недавний экран GNU предлагает вертикальное разделение с помощью ctrl - a | ,

1280 × 720 предлагает 160 столбцов для типичного шрифта 16px (шириной 8px), чего вполне достаточно для двух сеансов по 80 столбцов. Точно так же 1440x960 предлагает 160 столбцов для шрифтов 18px (шириной 9px). Более крупный: 1920 × 1080 предлагает 240 столбцов, что достаточно для трех сеансов по 80 столбцов.

Но на самом деле GNU Screen ставит вертикальную черту для разделения сессий. Панель может быть скрыта или окрашена в качестве фона, но место занято. Это оставляет моей консоли 79 столбцов, всего один столбец для ежедневной работы (например, для соглашения о кодировании каждая строка должна содержать менее 80 столбцов¹; автоматически создаваемые отчеты по электронной почте предполагают 80 столбцов).

Есть ли способ освободить пространство вертикальной разделительной панели? Или, если это невозможно, может ли какая-либо из альтернатив GNU Screen, например, Dvtm / Tmux, поддерживать вертикальный монтаж без пробела? Эмулятор X-терминала, который может выполнять мультиплексирование, также подходит для этой цели, но, возможно, такого не существует.

Примечание 1: Даже язык программирования Python явно предлагает 79 столбцов именно с целью удаления маркера на 80-м столбце, есть и другие случаи, когда можно использовать все 80 столбцов.

1 ответ1

0

Ни один из мультиплексоров в известной вселенной, таких как gnu screen, tmux, dvtm, не позволяет вообще настроить вертикальное разделение.

Марк Андре Таннер (Marc André Tanner), текущий сопровождающий dvtm, был достаточно любезен, чтобы предложить патч для этого по запросу, протестировал его на соответствие последней версии dvtm-0.10, сделав dvtm единственным мультиплексором в известном unverse, который можно патчить для этого. Марк сказал, что этот патч не пойдет в главную ветку и не будет выпущен.

diff --git a/tile.c b/tile.c
index 43a7166..b166a56 100644
--- a/tile.c
+++ b/tile.c
@@ -25,9 +25,6 @@ static void tile(void)
                    ny = way;
                    nx += mw;
                    nw = waw - mw;
-                   mvvline(ny, nx, ACS_VLINE, wah);
-                   mvaddch(ny, nx, ACS_TTEE);
-                   nx++, nw--;
                }
                /* remainder */
                if (m == 0 && i + 1 == n)   /* no minimized clients */
@@ -40,8 +37,6 @@ static void tile(void)
                nh = 1;
                ny = way + wah - (n - i);
            }
-           if (i > 1 && nm > 1)
-               mvaddch(ny, nx - 1, ACS_LTEE);
        }
        resize(c, nx, ny, nw, nh);
        if (n > 1 && th != wah)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .