управляйте пределами при вставке в tcsh (Mac OS X)

Я встретился с 1 024 символьными предельными проблемами при вставке команд в терминальное приложение (макс. OS X 10.5.8) выполнение оболочки TC (/bin/tcsh).

Это может последовательно воспроизводиться путем вставки следующих команд в терминальное приложение:

echo       0       0       0       0       0
echo       1       1       1       1       1
echo       2       2       2       2       2
echo       3       3       3       3       3
echo       4       4       4       4       4
echo       5       5       5       5       5
echo       6       6       6       6       6
echo       7       7       7       7       7
echo       8       8       8       8       8
echo       9       9       9       9       9
echo      10      10      10      10      10
echo      11      11      11      11      11
echo      12      12      12      12      12
echo      13      13      13      13      13
echo      14      14      14      14      14
echo      15      15      15      15      15
echo      16      16      16      16      16
echo      17      17      17      17      17
echo      18      18      18      18      18
echo      19      19      19      19      19
echo      20      20      20      20      20
echo      21      21      21      21      21
echo      22      22      22      22      22
echo      23      23      23      23      23
echo      24      24      24      24      24
echo      25      25      25      25      25

Сначала, это работает как ожидалось, но в какой-то момент это перестало работать:

myself@mymac|~> echo       1       1       1       1       1
1 1 1 1 1
myself@mymac|~> echo       2       2       2       2       2
2 2 2 2 2
etc. etc. (good)
myself@mymac|~> echo      21      21      21      21      21
21 21 21 21 21
myself@mymac|~> echo      22      22      22      echo      22      22      22      echo       23      23
22 22 22 echo 22 22 22 echo 23 23
echo      24      24      24      24      24
echo      25      25      25      25      25
(bad - gibberish)

Таким образом, это запутывается через некоторое время. На самом деле у меня есть 44 символа на строку плюс один для разрывов строки, и проблемы происходят на строке 23 в символе 34. Это означает, проблемы происходит после 45*22+34=1024 символы. Это - довольно очевидно, предел, который устанавливается где-нибудь... кто-либо знает, как развернуть его так, чтобы он мог принять больше символов и строк?

Я попробовал то же на машине Linux с tcsh, но я не испытал затруднений. Таким образом, я вполне уверен, это можно настроить где-нибудь.

5
задан 07.12.2010, 10:04

1 ответ

Предел, с которым Вы встречаетесь, походит на tty буфер клавиатуры. Это “трудно кодируется” в ядре Mac OS X.

xnu-1504.9.17 соответствует 10.6.5, но эти биты не изменились по крайней мере начиная с 10,4.

Если Вы просто хотите выполнить команды, и Вы не заботитесь, что вход и вывод могли бы закончиться чередованные нечетными способами, то Вы могли временно отключить редактирование командной строки tcsh с unset edit перед вставкой (повторно включите его с set edit). Это переключает tty на “канонический режим” , где вход основан на строке. Это помогает оболочке “не отставать” от входящего вставленного текста.

Не все находящиеся в tty программы имеют эту проблему. GNU Emacs 21.2.1, Vim 7.3 и удар 4.1 все, кажется, могут “не отставать” от больших вставок (я попробовал 8 201 байт; Vim и удар были медленными, но они приняли целую вставку без любой проблемы).

4
ответ дан 07.12.2019, 18:02

Теги

Похожие вопросы