Столкнулся с следующей проблемой...
Поставил себе 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 проблема сохраняется .
>[оверквотинг удален]
>1. Может ли редактор mc вообще работать с буфером X-ов или только
>со своим файлом .mc/cooledit.clip ? в официальной документации я нашел
>только что буфер реализован с помощью этого файла
>2. Если может работать буфером X-ов... то как настроить чтобы правильно (копировал
>в буфер иксов) обрабатывалась комбинация Ctrl + ins ?
>
>
>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие версии MC проблема
>сохраняется .
>есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу сказать где что прописать чтобы работало.
>[оверквотинг удален]
>>2. Если может работать буфером X-ов... то как настроить чтобы правильно (копировал
>>в буфер иксов) обрабатывалась комбинация Ctrl + ins ?
>>
>>
>>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие версии MC проблема
>>сохраняется .
>>
>
>есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу
>сказать где что прописать чтобы работало.устроит конечно ... руки не кривые собрать смогу ... и ссылку на тикет если можно
>[оверквотинг удален]
>>>
>>>GNU Midnight Commander, версия 4.7.0-pre2... пробовал и старшие версии MC проблема
>>>сохраняется .
>>>
>>
>>есть тикет на m-c.o, пока не реализовано, если устроит по рабоче-крестьянски могу
>>сказать где что прописать чтобы работало.
>
>устроит конечно ... руки не кривые собрать смогу ... и ссылку на
>тикет если можнокажется уже сам нашел , вот тикет : http://midnight-commander.org/ticket/30
там и патч лежит .. сча попробую собрать
>>[оверквотинг удален]
>
>кажется уже сам нашел , вот тикет : http://midnight-commander.org/ticket/30
>там и патч лежит .. сча попробую собратьнакатил патч , на версию 4.6.1 собрал заново ... не помогло , проблема сохраняется .. расстроился ..
в тиките написано что в 4.7.0-pre3 реализуют .. будем наедятся и ждать
>>>[оверквотинг удален]
>>
>>кажется уже сам нашел , вот тикет : 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
>[оверквотинг удален]
>>
>>накатил патч , на версию 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;
}
заново собрал и теперь все работает ))))) очень удобно
>[оверквотинг удален]
> 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 ... прав нет даже после регистрации на сайте ... так я и не понял зачем там тогда регистрация нужна
>жаль что только не получилось проапдейтить тикет на http://www.midnight-commander.org/ticket/30 ... прав нет
> даже после регистрации на сайте ... так я и не
>понял зачем там тогда регистрация нужназаменить патч нельзя, чтобы не было спам-вандальства. Попробуйте зааплоадить патч под другим именем.
>>жаль что только не получилось проапдейтить тикет на http://www.midnight-commander.org/ticket/30 ... прав нет
>> даже после регистрации на сайте ... так я и не
>>понял зачем там тогда регистрация нужна
>
>заменить патч нельзя, чтобы не было спам-вандальства. Попробуйте зааплоадить патч под другим
>именем.спасибо ,добавил код еще для cut и добавил патч http://www.midnight-commander.org/attachment/ticket/30/mc-4....
>спасибо ,добавил код еще для cut и добавил патч http://www.midnight-commander.org/attachment/ticket/30/mc-4....это Вам спасибо :).
> tmp = g_strconcat ("xclip -i ",concat_dir_and_file (home_dir, EDIT_CLIP_FILE)," -selection clipboard", NULL );Ай-ай-ай, нехорошо memory leak в программе делать. :) Кто будет за вас удалять результат concat_dir_and_file() ? Иван Фёдорович Крузенштерн?
>> 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....
>>> 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. Подскажите, пожалуйста, что исправить? :)
> ну этот патч еще пилить надо, я то хотел посоветовать сделать через
> вызов утилиты xclip, ее вызов надо вставить в
> edit_copy_to_X_buf_cmd и edit_cut_to_X_buf_cmd, пример запуска утилиты есть например
> в
> edit_block_process_cmdА можно подробней пожалуйста.
Да работает всё искаропки....Копирование из консоли(я юзаю Konsole) (из мс в частности): жмём SHIFT, и пока держим - мышью выделяем нужный текст. Далее (не отпуская SHIFT) жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем КОПИРОВАТЬ. ВСЁ.... Далее можно делать вставку в любое Х-овое приложение.
Копирование из Х-ового буфера обмена в консоль(или открытый файл через редактор mc):
Курсор в нужное место. Нажимаем SHIFT, жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем ВСТАВИТЬ.(либо Нажимаем SHIFT, жмакаем СРЕДНЕЙ кнопкой мыши).
ВСЁ....Пробовал на разных дистрибутивах, нигде с этим проблем не было....
>Да работает всё искаропки....Тут разговор про работу с иксовым буфером обмена без помощи мышки :)
Указанные манипуляции с мышкой - это универсальная работа. Сработает везде и на любых полях ввода в любой иксовой программе.
>Да работает всё искаропки....
>
>Копирование из консоли(я юзаю Konsole) (из мс в частности): жмём SHIFT, и
>пока держим - мышью выделяем нужный текст. Далее (не отпуская SHIFT)
>жмакаем правой кнопкой мыши на выделенном объекте и из меню выбираем
>КОПИРОВАТЬ. ВСЁ.... Далее можно делать вставку в любое Х-овое приложение.И что у тебя получится в буфере обмена, если текст шире окна терминала?
А как ты собираешься копировать кусок текста, который занимает больше одного экрана по высоте? По частям чтоли долбаться будешь?
>И что у тебя получится в буфере обмена, если текст шире окна
>терминала?
>А как ты собираешься копировать кусок текста, который занимает больше одного экрана
>по высоте? По частям чтоли долбаться будешь?С редактором mc в этом случае проблематично...., но для небольших объектов копирования/вставки сгодится.
По мне, так гораздо удобнее в таких случаях vi использовать...
>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)
та же проблема на debian wheezy, в репозитории ещё версия без поддержки буфера Х-ов, а собирать-патчить не хочется, в итоге написал короткий скрипт, работает в фоне, полностью синхронизирует буфер Х-ов и mcedit:
http://denis.ryzhkov.org/soft/xclip-sync-mcedit/xclip-sync-m...
советую вообщеи из mc убрать его редактор в настройках mc. а прописать в профалеcd
ee .profile
EDITOR=/usr/bin/ee; export EDITORи всё по умолчанию по F4 в mc будет открываться ее