crypt of decay - вопрос [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

вопрос [Nov. 17th, 2013|03:46 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
скажите, а вы часто пользуетесь в текстовом редакторе функцией redo? а зачем?

я вот не пользуюсь, поэтому и реализовывать не хочу. но задумался: а может, это просто я гений, а Обычный Человек у нас с первого раза на нужное состояние при помощи undo не попадает, и ему приходится туда-сюда мотаться, как целлофану в проруби?
Linkmeow!

Comments:
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 05:19 pm
(Link)
я активно пользуюсь

например, работаешь через медленное соединение,
всё тормозит, но тебе лень ждать, и ты хуячишь, хуячишь
а потом хуяк, кровь, кищки, распидорасило

возвращаешься обратно медленно и смотришь, на какой ступени
изменения были ещё осмысленные. Для этго надо откатить это
самое изменение и применить его вновь.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:24 pm
(Link)
вообще-то не «reapply», а «redo». буфер redo, натурально, уничтожается после любого изменения состояния, так что «добрать кусок и применить redo» не выйдет.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 05:30 pm
(Link)
не знаю, какая-то непонятная терминология, в редакторе, которым я пользуюсь, есть история изменения буфера на много шагов назад(впрочем, это достаточно общая фича), которые умеют откатывать только на один шаг -- пожалуй, не нужны
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:37 pm
(Link)
«назад» — это undo. вперёд после undo, если ничего не менял — это «redo».
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 06:32 pm
(Link)
это понятно, но там не один буфер, там целая цепочка буферов
впрочем, вся эта история сбрасывается при внесении новых изменений, это да

ещё вариант -- вернуться назад, скопировать в регистр старый вариант,
вернуться вперёд, чтобы объединить старый и новый вариант в одно целое
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:35 pm
(Link)
буфер-то один, действий цепочка. но это технические детали.

>ещё вариант — вернуться назад, скопировать в регистр старый вариант,
>вернуться вперёд, чтобы объединить старый и новый вариант в одно целое

а вот те фиг: передвижение курсора тоже в undo buffer попадает. ну, так, просто потому, что я вредная скотина.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 06:42 pm
(Link)
в правильных редакторах это две разные истории!
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:52 pm
(Link)
курсор сам по себе, текст сам по себе? круто.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 07:04 pm
(Link)
то есть, если я изменил где-то текст, то вернуться на прежнюю позицию,
даже за пределами этого изменённого текста, я уже не смогу?
да уж, действительно круто
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 07:19 pm
(Link)
mcedit забавно сохраняет все передвижения курсора. мне это нравится, можно мультик смотреть.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:25 pm
(Link)
ну и да: редактор в данном случае иксовый, так что если тормозит соединение — то адово тормозит абсолютно всё, и ничего осмысленного делать всё равно не получится.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 05:37 pm
(Link)
в случае быстрого соединения тоже есть применения, типа такого очень примитивного сорс контроля: нахуячил какой-то хуйни, проверил -- не работает, откатил назад, смотришь -- тоже какая-то хуйня, подумал, почесал репу -- и решил, что лучше всё же нахуяченное отлаживать, сделал redo
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:38 pm
(Link)
«save as» работает лучше. %-)
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 05:38 pm
(Link)
заебёшься всё время новые имена придумывать
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:40 pm
(Link)
.00
.01
.02
.03
.100500
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 05:41 pm
(Link)
...а потом они валяются, и ты не помнишь, откуда они взялись и на какой хер сдались, но удалять жалко!
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:45 pm
(Link)
а зачем валяются? все файлы с подобными цифровыми расширениями следует удалять нахуй, как только заработало. я периодически так делаю для изменений в несколько строчек, когда сорить в гит не охота.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:45 pm
(Link)
ну и вообще, git init. рефлекторно, перед созданием файла в редакторе. это ж не svn, отлично подходит для контроля текстовичков.
From:(Anonymous)
Date:November 17th, 2013 - 05:33 pm
(Link)
она отменяет действие команды ундо же. на тот случай если случайно ее выполнил
From:[info]alamar
Date:November 17th, 2013 - 05:38 pm
(Link)
Приходится, но redo тоже говно, а надо сохранять дерево правок и хождений по ним.

Потому что сейчас redo в худшем случае однократное, а в лучшем - всё равно хериться, если сделать undo и что-то поменять.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:41 pm
(Link)
конечно, херится. потому что поддерживать его в консистентном состоянии после изменений — это ёбаная пиздецома, пусть ней занимаются те мазохисты, которые без такого жить не могут.

вот потому я и интересуюсь, есть ли шибкий смысл в redo, который всё равно проебётся после случайного нажатия на кнопочку.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:44 pm
(Link)
впрочем, я тебя неверно понял, кажется. ты имел в виду «при наличии непустого redo и изменении делать новый бранч документа, а при возврате на точку бранча давать выбор, куда redo катить — на старый, или на новый», так?

если да — то это проще, конечно. но это уже из разряда «пишем более-менее серьёзный редактор». а у меня МегаТулкит для окошек с тремя кнопками, такой редактор будет занимать больше, чем все остальные контролы, йопт.
From:[info]alamar
Date:November 17th, 2013 - 05:53 pm
(Link)
Второе.

Ну не делай.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 05:47 pm
(Link)
кстати, изобрести удобный и понятный гуй для второго случая — задача далеко не тривиальная.
From:[info]alamar
Date:November 17th, 2013 - 05:54 pm
(Link)
0Если не делать redo, логично также не делать истории для undo, а чтобы повторный undo делал redo.

Иначе бывает обидно - пишешь пост, нажал случайно ctrl-z - пол-абзаца уехало, нажал ещё раз - весь абзац уехал и амба :)
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:09 pm
(Link)
как можно СЛУЧАЙНО нажать ctrl+z?! O_O
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 06:40 pm
(Link)
...а вот ggVGs вполне может кошка натоптать, да и одного s порой достаточно
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:40 pm
(Link)
модальные редакторы — это не средство работы с текстом, а пыточные механизмы.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 06:46 pm
(Link)
бедность ассортимента горячих клавиш, как правило, означает бедность функционала софтины, и почти всегда -- неудобство в использовании.
Мышка -- для быдла, клавиатура(в частности хоткеи) -- для настоящих джедаев.
А чем больше горячих клавиш -- тем больше вероятность нечаянно перекосоёбить весь текст.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:52 pm
(Link)
идиотская система vi — это тяжёлое наследие медленных и кривых говнотерминалов. перемещение некурсором можно сохранить (с зажатым ctrl), правда. основным режимом должен быть режим «свободного редактирования», а командный режим как раз хоткеем включать.

да, я знаю про gvim.
[User Picture]
From:[info]do_
Date:November 17th, 2013 - 07:13 pm
(Link)
с учётом развития современных технологий анонимизации, которые -- увы!
при всех преимуществах не отличаются скоростью
наследию медленных и кривых говнотерминалов ещё долго будут
находиться применения
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 07:20 pm
(Link)
ну дык не надо по такому каналу «войнуимир» редактировать. а файл помельче — слил, починил, залил назад.
From:(Anonymous)
Date:November 17th, 2013 - 10:14 pm
(Link)
зато удобно записывать макросы, ну и всякие ништяки вроде di" и быстрой навигации между абзацами, предложениями
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 11:00 pm
(Link)
ну так я же не говорю «аннигилировать». но никак не делать эту жопную магию основным режимом.
From:[info]alamar
Date:November 17th, 2013 - 09:14 pm
(Link)
Я всё время нажимаю ненужные кнопки, потому что клавиатуру держу на весу и на коленях, или это убоищный ноутбук.
From:[info]tristes_tigres
Date:November 17th, 2013 - 11:16 pm
(Link)
undo-tree.el
[User Picture]
From:[info]steinkrauz
Date:November 17th, 2013 - 06:30 pm
(Link)
Ну если редактор шибко умный, и объединяет несколько однотипных изменений в одно, то пользуюсь. То есть один раз undo -- мало, второй раз undo -- ой, блять, где пол-текста, redo и правим.

И ещё иногда пошёл там водички попить, потом посуду помыл, потом пожрал, потом посрал, возвращаешься, и нихрена не помнишь что делал. Тогда откатил изменения, посмотрел, где чего исчезло, обратно их накатил и дальше пошёл клаву топтать.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 06:40 pm
(Link)
вот с объединением, кстати, я хуй знает, что делать. с одной стороны undo по символу иногда дико раздражает. а с другой — не менее дико бесит, когда ХУЯК! — и оно откатило кучу текста. причём принцип группировки, похоже, знает только тот индиец, который вхуячил туда ёбаный индийский рандом.
From:[info]alamar
Date:November 17th, 2013 - 09:25 pm
(Link)
+1 к боли об индийском рандоме.
[User Picture]
From:[info]steinkrauz
Date:November 17th, 2013 - 10:11 pm
(Link)
Не будь индийцем -- опиши принцип в manpage.

ИМХО, по логике должно быть две группы: принадлежащие Императору последовательно введённые символы до перевода каретки (ну или что в текущей системе играет роль endl) и символы, вставленные из буфера обмена.
[User Picture]
From:[info]ketmar
Date:November 17th, 2013 - 11:01 pm
(Link)
>опиши принцип в manpage
да ты ебанулся — ещё и маны писать. может, и код документировать?!

«по логике» много чего придумать можно. например, таймаут с последнего нажатия. или по словам. или индийским рандомом.
[User Picture]
From:[info]steinkrauz
Date:November 17th, 2013 - 11:19 pm
(Link)
Да, я ебанулся.

У меня даже в скриптах комментарии есть. И большой коммент с версией и историей изменений в начале.

Ну если мы про текстовый редактор, то и логика должна быть текстовая. Так что таймаут с рандомом отпадают.

А вот счётчик слов хотел предложить, но потом подумал, что тип текста, для которого это будет актуально, вряд ли войдёт в стандартный юзкейс. Значит, и нефиг лишнюю мульку писать
[User Picture]
From:[info]ketmar
Date:November 18th, 2013 - 12:00 am
(Link)
вот как раз таймаут, по-моему — вполне логичен. стучишь быстро — группа. завис — всё, конец группы.

впрочем, всё равно сделаю побуквенно. потому что я садист, и потому что лень выдумывать — ёба, это не навороченый текстовый редактор, это сраный виджет в сраном тулките!
[User Picture]
From:[info]perfaqes
Date:November 18th, 2013 - 02:00 am
(Link)
Пользуюсь нечасто, но когда такой функции в редакторе нету -- поубивал бы.
[User Picture]
From:[info]ketmar
Date:November 18th, 2013 - 02:05 am
(Link)
ah, good. i love to irritate people. just like John Cleese did in his show. but anyway… counted one more point for 'redo' functionality. tnx.
From:[info]max630.net
Date:November 18th, 2013 - 09:59 am

да, часто

(Link)
много зачем. Например просто случайно пролетаю при undo.
Или понимаю, что не сохранил в гите какое-то старое состояние, которое было интересно. Тогда откатываюсь туда, сохраняюсь или копирую что надо, возвращаюсь вперёд.
Возможно ещё что-нибудь, сейчас не вспомню.