Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: mcedit (midnight comander, встроенный редактор): внешний форматер  (Прочитано 554 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« : 08-11-2017 22:17 » 

Прикипел я к этому редактору за 19 лет пользования. Любители vim и emacs, а уж тем более всяких там IDE, могут считать меня ретроградом и дальше не читать.

Редактор очень прост и удобен. Но для работы с исходниками некоторых функций все же не хватает. Ну, чтоб как у взрослых.

Сперва хорошо бы подчистить за криворукими не очень аккуратными, убрать концевые пробелы, заменить табуляции на пробелы, убрать виндовые "\r". Чего еще? Хочу двигать отступы (обычно делается Tab и Shift-Tab при выделении). Взад и вперед. Пока хватит, но идеи приветствуются. Может есть готовый внешний форматер, чтоб за не очень аккуратными и остальное убрать?

В кратце: https://www.systutorials.com/docs/linux/man/1-mcedit/#lbAH
Еще короче: можно повесить на комбинацию клавиш shell скрипт, в котором иметь доступ ко всему файлу или к выделению, как к отдельному файлу. После успешного выполнения скрипта редактор вставит содержимое файла назад в текст.

(немного скриптов и настроек)
Код: (Perl) ~/bin/mc_macros__spaces.pl
#!/usr/bin/perl

use 5.010;
use strict;
use warnings;

my $shift = 0;

if (@ARGV) {
    $shift = eval { int(shift) } // 0;
}

while (<>) {
    if (m/^(\s*)(\S.*?)(\s*)$/) {
        my $indent = $1;
        my $line = $2;

        for (my $p = 0; $p < length($indent); $p++) {
            my $c = substr($indent, $p, 1);

            if ($c eq "\t") {
                my $add = 8 - $p % 8;
                substr($indent, $p, 1) = ' ' x $add;
                $p += $add - 1;
            }
        }

        if ($shift) {
            if ($shift < 0) {
                substr($indent, 0, -$shift) = '';
            }
            else {
                $indent .= ' ' x $shift;
            }
        }

        say $indent, $line;
    }
    else {
        say '';
    }
}

Код: (Bash) ~/.local/share/mc/mcedit/macros.d/macro.0.sh
a       spaces clean up
        TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
        mc_macros__spaces.pl < %b > $TMPFILE
        cat $TMPFILE > %b
        rm -f $TMPFILE

Код: (Bash) ~/.local/share/mc/mcedit/macros.d/macro.1.sh
a       indent up
        TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
        mc_macros__spaces.pl +4 < %b > $TMPFILE
        cat $TMPFILE > %b
        rm -f $TMPFILE

Код: (Bash) ~/.local/share/mc/mcedit/macros.d/macro.2.sh
a       indent down
        TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
        mc_macros__spaces.pl -4 < %b > $TMPFILE
        cat $TMPFILE > %b
        rm -f $TMPFILE

Код: (Text)  ~/.local/share/mc/mc.macros
[editor]
ctrl-alt-A=MarkAll:-1;
ctrl-alt-C=ExecuteScript:0;
ctrl-alt-U=ExecuteScript:1;
ctrl-alt-D=ExecuteScript:2;
« Последнее редактирование: 08-11-2017 22:18 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-11-2017 22:18 » 

а разве mc не умер?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 08-11-2017 22:19 » 

С чего бы ему умереть? Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 09-11-2017 10:40 » 

Странно, сейчас найти не могу, но пробегал инфа, что он больше не будет релизиться..
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 09-11-2017 12:23 » 

Цитата
25 мая 2015
На днях один из ведущих разработчиков midnight commander в конференции для разработчиков написал следующее
Цитата
   andrew_b: Я позакрывал энное количество тикетов, и, видимо, на этом всё.
    Всему приходит конец. Это были не самые плохие 5 лет в моей жизни. mc сейчас как чемодан без ручки: и бросить жалко, и нести тяжело и неудобно.
    Мне всё это надоело, «я устал, я ухожу».
https://geektimes.ru/post/250964/

А между тем...

Цитата
Последняя версия        4.8.19 (4 марта 2017)
https://ru.wikipedia.org/wiki/Midnight_Commander

Цитата
Coming soon: 4.8.20
https://midnight-commander.org/

И да, в TODO еще полно задач: https://midnight-commander.org/milestone/Future%20Releases

Если кто-то устал, не значит что все пропало. Улыбаюсь
Да же если разработка остановится совсем, продуктом можно продолжать пользоваться.


Еще нашел старую статью, как самому сделать плагин gitfs для mc.
https://habrahabr.ru/post/86756/

« Последнее редактирование: 09-11-2017 12:32 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 09-11-2017 19:35 » 

Я в Linux пользуюсь nano.  Улыбаюсь
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 09-11-2017 22:40 » 

Еще улучшения.
Совершенно не понимаю, кто и зачем придумал работать на синем фоне. Не, во времена Norton и Volkov это было пофиг, т.к. о подсветке синтаксиса даже не задумывались. Сейчас это некомфортно, лучше черный фон. И так, рецепт черной раскраски всего mc и mcedit в частности. Для разных версий skin может различаться (в новых версиях больше настроек). У меня mc-4.7.

(настройки)
Код: (Text) ~/.mc/ini
[Midnight-Commander]
skin=black

Редактировать свой ini из mc никак нельзя: выходя он его перезаписывает. Редактировать или другим редактором, или копию и потом ее скопировать в ini.

Код: (INI) ~/.mc/skins/black.ini
[skin]
    description=black editor skin

[Lines]
    lefttop=
    righttop=
    centertop=
    centerbottom=
    leftbottom=
    rightbottom=
    leftmiddle=
    rightmiddle=
    centermiddle=
    horiz=
    vert=
    thinhoriz=
    thinvert=

[core]
    _default_=lightgray;black
    selected=black;brown
    marked=black;green
    markselect=white;brightgreen
    gauge=blue;black
    input=white;black
    reverse=black;lightgray

[dialog]
    _default_=black;lightgray
    dfocus=black;cyan
    dhotnormal=blue;lightgray
    dhotfocus=blue;cyan

[error]
    _default_=white;red
    errdhotnormal=yellow;red
    errdhotfocus=yellow;lightgray


[filehighlight]
    directory=white;
    executable=brightgreen;
    symlink=lightgray;
    stalelink=brightred;
    device=brightmagenta;
    special=black;
    core=red;
    temp=gray;
    archive=brightmagenta;
    doc=brown;
    source=cyan;
    media=green;
    graph=brightcyan;
    database=brightred;

[menu]
    _default_=black;yellow
    menuhot=red;yellow
    menusel=yellow;black
    menuhotsel=red;black

[buttonbar]
    hotkey=brightred;black
    button=yellow;black

[help]
    _default_=black;lightgray
    helpitalic=red;lightgray
    helpbold=blue;lightgray
    helplink=black;cyan
    helpslink=yellow;blue

[editor]
    _default_=lightgray;black
    editbold=black;yellow
    editmarked=black;green
    editwhitespace=brightblue;black
    linestate=white;red
    bookmark=white;red
    bookmarkfound=black;green

[viewer]
    viewunderline=brightred;blue

[widget-common]
    sort-sign-up=
    sort-sign-down=

[widget-panel]
    hiddenfiles-sign-show  =
    hiddenfiles-sign-hide  =
    history-prev-item-sign =
    history-next-item-sign =
    history-show-list-sign =

[widget-scollbar]
    first-vert-char=
    last-vert-char=
    first-horiz-char=«
    last-horiz-char=»
    current-char=
    background-char=

Локаль желательна с суффиксом ".UTF-8" и терминал с поддержкой юникода. Кто бы мне сказал в 98-м, когда Linux нужно было вручную локализовывать, что в терминале без проблем будут отображаться иероглифы и прочая нечисть!
« Последнее редактирование: 09-11-2017 22:42 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 10-11-2017 04:55 » 

RXL, а я пробовал в редакторе делать чёрный фон (в студии, в креаторе) - не могу на чёрном, глаза выпучиваются о_О   Белый фон рулит Краснею
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 10-11-2017 10:07 » 

На черном цвета лучше видны. В консоли набор небольшой, всего 16 штук.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 10-11-2017 10:21 » 

Полностью поддерживаю Алексея++. Не могу работать на чёрном фоне ни в редакторах, ни в CAD. Жёлтый на синем довольно не плохо, вспоминаются время BP и BC. Из 16 цветов, наверное, лучшее сочетание. Сейчас работаю чёрным по белому. Иногда задумываюсь, что на станках "серые" мониторы лучше показывают, чем цветные.

Проблема в редакторах в основном в том, что цветное выделение слов, функций, аргументов, констант и множества ещё чего начинает плохо соотносится с цветом фона. А так, классика BC 3.1 весьма проработана.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 10-11-2017 10:54 » 

Aether, "желтый на синем" не входит в понятие "подсветка синтаксиса". И про станки тоже речи нет. Не надо размазывать тему. Речь только о работе с исходниками. И цветовое убожество BC лучше не вспоминать. Каким дальтоником надо быть, чтобы считать cyan подходящим фоном. Странные разработчики BC Улыбаюсь
« Последнее редактирование: 10-11-2017 10:58 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 10-11-2017 11:14 » 

И цветовое убожество BC лучше не вспоминать.
Недостатки BC только в одном: в палитре DOS можно найти лишь около четырёх удачных сочетаний цветов шрифта с данным фоном, остальные идут в диссонанс. Было бы лучше использовать для подсветки не только цвета, но и разные шрифты. Однако, это требует наличие нормального графического интерфейса.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 10-11-2017 11:33 » 

Терминалы могут поддерживать до 256 цветов. На практике пока не использовал. Сделал цветопробу.

Первые 16 цветов не привожу, они совпадают со стандартной палитрой.
Далее идет набор по 6 бит на компоненту: 6 х 6 х 6 = 216 цветов.
Далее 24 света серой шкалы.

черный и серый фон

черный и белый фон


Почитать по теме: https://habrahabr.ru/post/161999/

PS: современные терминалы могут поддерживать и RGB 16М, но putty поддерживает только 256 цветов.

* term256_on_grey.png (118.79 Кб - загружено 59 раз.)
* term256_on_white.png (118.65 Кб - загружено 57 раз.)
« Последнее редактирование: 10-11-2017 11:59 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 10-11-2017 11:39 » 

Недостатки BC только в одном: в палитре DOS можно найти лишь около четырёх удачных сочетаний цветов шрифта с данным фоном, остальные идут в диссонанс.

А на черном фоне все остальные 15 цветов не теряются. Чего не скажешь о белом фоне, а уж тем более о синем.

Добавлено через 19 минут и 8 секунд:
Кстати, в mc-4.8.19 вижу уже готовые темные "скины". Вполне съедобны.
« Последнее редактирование: 10-11-2017 11:58 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 10-11-2017 13:28 » 

Что бывает приятно в IDE, так это когда наводишь на какой-нибудь кусочек, а тебе показывают откуда он, и при необходимости открывают файл, где было объявление или реализация.

На чёрном фоне тёмные цвета выглядят также плохо, как светлые на белом. Однажды, когда я учился, одному студенту дали задание построить модель какой-то опоры. Он её разрисовал: зелёным, фиолетовым, жёлтым... Показал преподавателю, а тот, после паузы: "Слушай, ты случаем не цыган?" Улыбаюсь Я к чему: везде нужно знать меру.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 10-11-2017 13:54 » 

Во втором предложении первого поста есть ответ по текущей теме. Любители кликать могут и дальше кликать, а мы будем стучать по кнопкам.

На черном отлично видны все базовые 15.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 10-11-2017 16:26 » 

На вкус и цвет все фломастеры, как известно, разные Улыбаюсь Потому спорить о том какие сочетания цветов лучше, вещь бесперспективная и бесполезная. Ибо на вкус и цвет...
Еще несколько лет назад, когда я активно работал и кодил, у меня все что можно было в темных фонах, по возможности - черных. А потом, на каком-то этапе, я вдруг почувствовал (ну прям, как Алексей++), что глазки-то у меня "выпучиваются". С тех самых пор все фоны в редакторах были исключительно светлыми, причем не белыми (по той же причине "выпучивания"), а слегка сероватыми. С тех давних пор у меня остался только TotalCommander в темной теме...
А в работе я в 99% случаев использовал IDE Eclipse, ну, просто в силу того, что это "родная" IDE для разработки в QNX. И, да, там по умолчанию светлый фон и приятная расцветка синтаксиса, в том числе и разные шрифты. Просто радость для глазок. Что само по себе, наверное, очень немаловажно.
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 10-11-2017 17:42 » 

На вкус и цвет. Но я говорю про "консоль" или "окно терминала". Классика фона: черный.
А чтобы глаза не уставали нужен умеренный световой фон в комнате, отсутствие бликов от экрана, отсутствие засветки лампами "в глаз". Короче, что было комфортно своим глазам.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 10-11-2017 18:31 » 

Классика - это белая бумага и чёрные или синие, иногда красные, чернила. На западе для черчения используют и синий фон с белыми чернилами. Я полагаю, была попытка растянуть на заре мониторостроения ресурс люминофора или что-то вроде, таким образом, первым был вывод с чёрным фоном. Затем, потихоньку, в эре DOS пошёл синий фон. Мне конечно намного более нравится белый фон, но тут каждому ближе своё.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 10-11-2017 21:39 » 

Aether, любишь же ты рассказывать про метрическую резьбу в кулинарном чате...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Finch
Спокойный
Администратор

il
Online Online
Пол: Мужской
Пролетал мимо


« Ответ #20 : 11-11-2017 05:13 » 

Ну раз пошли такие пироги. Если совсем вспоминать классику. То это черный фон и зеленные буквы Улыбаюсь. В свое время я долго работал в такой палитре Улыбаюсь У монитора просто не было других цветов.
Полностью поддерживаю Михалыча, насчет того, что у всех тапочки разные. 
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 11-11-2017 08:48 » 

или зеленые или желтые
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 11-11-2017 09:43 » 

Не желтый — оранжевый. Я до сих пор терминал так настраиваю.


* orange_terminal.png (6.19 Кб - загружено 39 раз.)
« Последнее редактирование: 11-11-2017 09:54 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 11-11-2017 15:33 » 

Вот с сайтов с такой, чёрной, палитрой я ухожу, даже их не читая.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 11-11-2017 22:51 » 

Мне тоже не нравятся вырвиглазные сайты. Но при чем тут они?

Я надеялся, что у нас кто-нибудь еще использует mc и mcedit, что инфа кому-нибудь пригодится.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #25 : 11-11-2017 23:04 » new

Мне тоже не нравятся вырвиглазные сайты. Но при чем тут они?
Я уже стал переживать! Мало ли?  Я шокирован! Грядёт модернизация.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines