URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 2725
[ Назад ]

Исходное сообщение
"Midnight Commander & буфер обмена X-ов"

Отправлено uchti , 04-Сен-09 15:21 
Столкнулся с следующей проблемой...  
Поставил себе Arch Linux  & Openbox  и в качестве менеджера буфера обмена использую parcellite.
Решил запустить Midnight Commander в xterm и заметил что во встроенный редактор mcedit я могу вставлять клавишами Shift + Ins все что в буфере  X-ов  . а когда пытаюсь скопировать из редактора (нажимая Crtl +Ins) то выделенный текст не попадает в глобальный буфер а попадает в файл .mc/cooledit.clip...
А теперь вопросы :
1. Может ли редактор mc вообще работать с буфером X-ов или только со своим файлом .mc/cooledit.clip ?  в официальной документации я нашел только что буфер реализован с помощью этого файла
2. Если может работать буфером X-ов... то как настроить чтобы правильно (копировал в буфер иксов) обрабатывалась комбинация  Ctrl + ins  ?

GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие  версии MC проблема сохраняется .



Содержание

Сообщения в этом обсуждении
"Midnight Commander & буфер обмена X-ов"
Отправлено angel_il , 04-Сен-09 17:12 
>[оверквотинг удален]
>1. Может ли редактор mc вообще работать с буфером X-ов или только
>со своим файлом .mc/cooledit.clip ?  в официальной документации я нашел
>только что буфер реализован с помощью этого файла
>2. Если может работать буфером X-ов... то как настроить чтобы правильно (копировал
>в буфер иксов) обрабатывалась комбинация  Ctrl + ins  ?
>
>
>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие  версии MC проблема
>сохраняется .
>

есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу сказать где что прописать чтобы работало.


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 04-Сен-09 17:30 
>[оверквотинг удален]
>>2. Если может работать буфером X-ов... то как настроить чтобы правильно (копировал
>>в буфер иксов) обрабатывалась комбинация  Ctrl + ins  ?
>>
>>
>>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие  версии MC проблема
>>сохраняется .
>>
>
>есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу
>сказать где что прописать чтобы работало.

устроит конечно ... руки не кривые собрать смогу ... и ссылку на тикет если можно


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 04-Сен-09 17:37 
>[оверквотинг удален]
>>>
>>>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие  версии MC проблема
>>>сохраняется .
>>>
>>
>>есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу
>>сказать где что прописать чтобы работало.
>
>устроит конечно ... руки не кривые собрать смогу ... и ссылку на
>тикет если можно

кажется уже сам нашел , вот тикет : http://midnight-commander.org/ticket/30
там и патч лежит .. сча попробую собрать


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 04-Сен-09 18:09 
>>[оверквотинг удален]
>
>кажется уже сам нашел , вот тикет : http://midnight-commander.org/ticket/30
>там и патч лежит .. сча попробую собрать

накатил патч , на версию 4.6.1  собрал заново ... не помогло , проблема сохраняется .. расстроился ..
в тиките написано что в 4.7.0-pre3 реализуют .. будем наедятся  и ждать


"Midnight Commander & буфер обмена X-ов"
Отправлено angel_il , 05-Сен-09 10:54 
>>>[оверквотинг удален]
>>
>>кажется уже сам нашел , вот тикет : http://midnight-commander.org/ticket/30
>>там и патч лежит .. сча попробую собрать
>
>накатил патч , на версию 4.6.1  собрал заново ... не помогло
>, проблема сохраняется .. расстроился ..
>в тиките написано что в 4.7.0-pre3 реализуют .. будем наедятся  и
>ждать

ну этот патч еще пилить надо, я то хотел посоветовать сделать через вызов утилиты xclip, ее вызов надо вставить в
edit_copy_to_X_buf_cmd и edit_cut_to_X_buf_cmd, пример запуска утилиты есть например в
edit_block_process_cmd


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 07-Сен-09 13:26 
>[оверквотинг удален]
>>
>>накатил патч , на версию 4.6.1  собрал заново ... не помогло
>>, проблема сохраняется .. расстроился ..
>>в тиките написано что в 4.7.0-pre3 реализуют .. будем наедятся  и
>>ждать
>
>ну этот патч еще пилить надо, я то хотел посоветовать сделать через
>вызов утилиты xclip, ее вызов надо вставить в
>edit_copy_to_X_buf_cmd и edit_cut_to_X_buf_cmd, пример запуска утилиты есть например в
>edit_block_process_cmd

готово... спасибо за подсказку ....
изменил только одну функцию в коде  файла editcmd.c
вот что получилось

int edit_copy_to_X_buf_cmd (WEdit * edit)
{
    int len;
    long start_mark, end_mark;
    if (eval_marks (edit, &start_mark, &end_mark))
    return 0;
    if (!edit_save_block_to_clip_file (edit, start_mark, end_mark)) {
    edit_error_dialog (_(" Copy to clipboard "), get_sys_error (_(" Unable to save to file. ")));
    return 1;
    }
    edit_mark_cmd (edit, 1);
    unsigned char *block;
    char *tmp;
    block = edit_get_block (edit, start_mark, end_mark, &len);
    tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE)," -selection clipboard", NULL );
    system (tmp);
    g_free(tmp);
    return 0;
}


заново собрал и теперь все работает ))))) очень удобно


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 07-Сен-09 13:32 
>[оверквотинг удален]
>    block = edit_get_block (edit, start_mark, end_mark, &len);
>    tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE),"
>-selection clipboard", NULL );
>    system (tmp);
>    g_free(tmp);
>    return 0;
>}
>
>
>заново собрал и теперь все работает ))))) очень удобно

жаль что только не получилось проапдейтить тикет на http://www.midnight-commander.org/ticket/30 ... прав нет  даже после регистрации на сайте ... так я и не понял зачем там тогда регистрация нужна


"Midnight Commander & буфер обмена X-ов"
Отправлено Slavaz , 07-Сен-09 13:35 
>жаль что только не получилось проапдейтить тикет на http://www.midnight-commander.org/ticket/30 ... прав нет
> даже после регистрации на сайте ... так я и не
>понял зачем там тогда регистрация нужна

заменить патч нельзя, чтобы не было спам-вандальства. Попробуйте зааплоадить патч под другим именем.


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 07-Сен-09 14:04 
>>жаль что только не получилось проапдейтить тикет на http://www.midnight-commander.org/ticket/30 ... прав нет
>> даже после регистрации на сайте ... так я и не
>>понял зачем там тогда регистрация нужна
>
>заменить патч нельзя, чтобы не было спам-вандальства. Попробуйте зааплоадить патч под другим
>именем.

спасибо ,добавил код еще для cut и добавил патч http://www.midnight-commander.org/attachment/ticket/30/mc-4....


"Midnight Commander & буфер обмена X-ов"
Отправлено Slavaz , 07-Сен-09 14:15 

>спасибо ,добавил код еще для cut и добавил патч http://www.midnight-commander.org/attachment/ticket/30/mc-4....

это Вам спасибо :).


"Midnight Commander & буфер обмена X-ов"
Отправлено anonymous , 10-Сен-09 09:42 
>    tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE)," -selection clipboard", NULL );

Ай-ай-ай, нехорошо memory leak в программе делать. :) Кто будет за вас удалять результат concat_dir_and_file() ? Иван Фёдорович Крузенштерн?


"Midnight Commander & буфер обмена X-ов"
Отправлено uchti , 11-Сен-09 15:21 
>>    tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE)," -selection clipboard", NULL );
>
>Ай-ай-ай, нехорошо memory leak в программе делать. :) Кто будет за вас
>удалять результат concat_dir_and_file() ? Иван Фёдорович Крузенштерн?

каюсь .... пофиксил патч
http://www.midnight-commander.org/attachment/ticket/30/mc-4....


"Midnight Commander & буфер обмена X-ов"
Отправлено Anton , 25-Апр-10 01:37 
>>>    tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE)," -selection clipboard", NULL );
>>
>>Ай-ай-ай, нехорошо memory leak в программе делать. :) Кто будет за вас
>>удалять результат concat_dir_and_file() ? Иван Фёдорович Крузенштерн?
>
>каюсь .... пофиксил патч
>http://www.midnight-commander.org/attachment/ticket/30/mc-4....

Попробовал установить ваш патч, но при компиляции ругается на EDIT_CLIP_FILE. Говорит, что он undeclared. Подскажите, пожалуйста, что исправить? :)


"Midnight Commander & буфер обмена X-ов"
Отправлено Anonim , 20-Июн-18 21:30 
> ну этот патч еще пилить надо, я то хотел посоветовать сделать через
> вызов утилиты xclip, ее вызов надо вставить в
> edit_copy_to_X_buf_cmd и edit_cut_to_X_buf_cmd, пример запуска утилиты есть например
> в
> edit_block_process_cmd

А можно подробней пожалуйста.


"Midnight Commander & буфер обмена X-ов"
Отправлено zd3n , 07-Сен-09 07:34 
Да работает всё искаропки....

Копирование из консоли(я юзаю Konsole) (из мс в частности): жмём SHIFT, и пока держим - мышью выделяем нужный текст. Далее (не отпуская SHIFT) жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем КОПИРОВАТЬ. ВСЁ.... Далее можно делать вставку в любое Х-овое приложение.  

Копирование из Х-ового буфера обмена в консоль(или открытый файл через редактор mc):
Курсор в нужное место. Нажимаем SHIFT, жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем ВСТАВИТЬ.(либо Нажимаем SHIFT, жмакаем СРЕДНЕЙ кнопкой мыши).
ВСЁ....

Пробовал на разных дистрибутивах, нигде с этим проблем не было....


"Midnight Commander & буфер обмена X-ов"
Отправлено Slavaz , 07-Сен-09 10:58 
>Да работает всё искаропки....

Тут разговор про работу с иксовым буфером обмена без помощи мышки :)

Указанные манипуляции с мышкой - это универсальная работа. Сработает везде и на любых полях ввода в любой иксовой программе.


"Midnight Commander & буфер обмена X-ов"
Отправлено xintrea , 11-Сен-09 13:11 
>Да работает всё искаропки....
>
>Копирование из консоли(я юзаю Konsole) (из мс в частности): жмём SHIFT, и
>пока держим - мышью выделяем нужный текст. Далее (не отпуская SHIFT)
>жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем
>КОПИРОВАТЬ. ВСЁ.... Далее можно делать вставку в любое Х-овое приложение.

И что у тебя получится в буфере обмена, если текст шире окна терминала?
А как ты собираешься копировать кусок текста, который занимает больше одного экрана по высоте? По частям чтоли долбаться будешь?


"Midnight Commander & буфер обмена X-ов"
Отправлено zd3n , 11-Сен-09 13:23 

>И что у тебя получится в буфере обмена, если текст шире окна
>терминала?
>А как ты собираешься копировать кусок текста, который занимает больше одного экрана
>по высоте? По частям чтоли долбаться будешь?

С редактором mc в этом случае проблематично...., но для небольших объектов копирования/вставки сгодится.

По мне, так гораздо удобнее в таких случаях vi использовать...


"Midnight Commander & буфер обмена X-ов"
Отправлено angel_il , 12-Сен-09 13:53 
>How get editor codepage as string, i.e. "UTF-8"?
>How get system codepage as string, i.e. "KOI-8R"?

используй get_codepage_id (source_codepage)


"Midnight Commander & буфер обмена X-ов"
Отправлено Denis Ryzhkov , 08-Сен-11 14:02 
та же проблема на debian wheezy, в репозитории ещё версия без поддержки буфера Х-ов, а собирать-патчить не хочется, в итоге написал короткий скрипт, работает в фоне, полностью синхронизирует буфер Х-ов и mcedit:
http://denis.ryzhkov.org/soft/xclip-sync-mcedit/xclip-sync-m...

"Midnight Commander & буфер обмена X-ов"
Отправлено am_eagle , 30-Авг-12 18:19 
советую вообщеи из mc убрать его редактор в настройках mc. а прописать в профале

cd
ee .profile
EDITOR=/usr/bin/ee;     export EDITOR

и всё по умолчанию по F4 в mc будет открываться ее