скопіюйте та вставте вкладки між вікнами терміналів у X11


11

Коли я копіюю та вставляю текст за допомогою вибору миші X11 між двома термінальними вікнами, вкладки часто, але не завжди, перетворюються на пробіли. Схоже, це залежить від залучених термінальних додатків та програм, що працюють в них.

Це я дізнався, експериментуючи:

  • Це залежить виключно від того, що працює на стороні джерела (копії). Цільова (вставлена) сторона вставить вкладки незалежно від того, що працює, якщо джерело їх зберегло.
  • Тільки gnome-terminalна стороні джерела зберігаються вкладки. xtermі konsoleні.
  • Вкладки зберігаються лише в тому випадку, якщо файл виведений за допомогою cat. Інші додатки , такі як less, vim, emacsабо nanoне зберігається вкладок.

Яке пояснення цьому? Чи є ці помилки konsoleі xtermчи вони можуть бути налаштовані інакше? Чи lessможна так налаштувати, щоб зберегти вкладки на виході?

Відповіді:


3

Так, ваше спостереження правильне. Що відбувається при копіюванні-вставці, це те, що ціль отримує дані з джерела. Коли відображаються ваші вкладки, xtermkonsole), мабуть, перекладіть їх у самі пробіли (якщо програма, що працює в терміналі, цього ще не зробила). Таким чином, коли надходить запит на вибраний текст, все, що вони мають запропонувати, - це пробіли.

Я навіть невиразно пам’ятаю відповідь років тому, який підтримував xterm, заявляючи, що це буде дуже важко виправити ...

Я не впевнений, як gnome-terminal це робиться правильно, але я радий, що вони роблять :) Іншою альтернативою є використання gvim(графічна версія vim) - замість запуску vimвсередині термінальної програми - можна сміливо копіювати-вставляти з gvim , не втрачаючи вкладок.


0

Іноді це може бути проблемою, особливо, Makefilesколи потрібні вкладки. На жаль, проблеми з різними програмами не пов'язані. У кожного, ймовірно, буде зовсім інше рішення.

Для vim ви повинні заздалегідь заздалегідь заздалегідь виконати а :set noexpandtabабо розмістити set noexpandtabу своєму ~/.vimrcфайлі Якщо ви хочете noexpandtabвстановити лише певні типи файлів, тоді ви можете зробити автокоманду у вашому ~/.vimrc:

"indenting defaults: 4 spaces for an indent
set shiftwidth=4
set softtabstop=4
set expandtab

"exceptions to indenting for specific languages and files--------
"for shell scripts: 2 spaces for an indent
autocmd filetype sh setlocal shiftwidth=2
autocmd filetype sh setlocal softtabstop=2

"for Makefiles: use tabs for indents
autocmd filetype make setlocal tabstop=8
autocmd filetype make setlocal noexpandtab

Це встановить за замовчуванням 4 пробіли для вкладки vimта зробить винятки для скриптів оболонки та Makefiles.

Для інших програм, як-от less, спробуйте переглянути там чоловічі сторінки. Вони можуть мати файли конфігурації, змінні середовища чи параметри командного рядка для того, що вам потрібно. Переглядаючи сторінку меншої кількості чоловіків:

-xn,... or --tabs=n,...
       Sets tab stops.  If only one n is specified, tab stops  are  set
       at  multiples  of n.  If multiple values separated by commas are
       specified, tab stops are set at those positions, and  then  con-
       tinue  with  the  same  spacing  as  the last two.  For example,
       -x9,17 will set tabs at positions  9,  17,  25,  33,  etc.   The
       default for n is 8.

Те, що ви помічаєте, не є помилкою. "Це його особливість." Єдина проблема - вам потрібно знати, як її вимкнути.


2
less -xnналаштовує його на використання n пробілів, а не символу вкладки. -Uробить вкладку відображення як ^I. Я не знайшов способу змусити його випромінювати буквальний символ вкладки, щоб копіювання тексту вставило символ вкладки, але я хотів би знати, як це зробити.
Метт МакКлур

Варто відзначити, що в Roff ( troff& nroff) вкладки можна встановлювати незалежно один від одного, як і "лінійки" панелей інструментів у сучасних текстових процесорах (OpenOffice, Microsoft Word та ін.). Однак в Manpages рідко використовуються спеціальні зупинки на вкладках.

mandoc(1)також дозволяє користувачам змінювати стандартну ширину відступу за допомогою командного рядка, використовуючи -O indent=N(за замовчуванням до 5 стовпців).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.