LINUX.ORG.RU

was: [elisp]: перемещение по экранной строке

 


0

0

Анониму, который интересовался по перемещению по экранной строке. Нарылась тут M-x picture-mode. Для редактируемых буферов позволяет кататься по всему экрану и писать, где угодно. Прямо вот идеальный вариант для спамера с acsii-артом. :)

★★★★★

Но я думаю, что эта мода тупо пробелами сделана. Насколько я себе сейчас осознаю алгоритм работы: если хочешь прыгнуть очень далеко, то переводишь редактируемый буфер в режим picture и прыгаешь подальше, редактируешь, а потом назад C-c C-c жмешь. Думаю, что это и автоматизировать можно.

Zubok ★★★★★
() автор топика

Фак, вот вечно потороплюсь. Кажется, в этом режиме нельзя инсертить, а только реплейсить текст, но до конца не копался. В любом случае, если тебе конкретно это не поможет, то тебе поможет исходный код этого режима. :)

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Uncle_Theodore

Ничего :)

Вот что используется в picture-mode для движения. 
Штатная функция: (move-to-column 30 t), скажем. Сама пробелами и 
табами добьет.


move-to-column is an interactive built-in function.
(move-to-column COLUMN &optional FORCE)

Move point to column COLUMN in the current line.
The column of a character is calculated by adding together the widths
as displayed of the previous characters in the line.
This function ignores line-continuation;
there is no upper limit on the column number a character can have
and horizontal scrolling has no effect.

If specified column is within a character, point goes after that character.
If it's past end of line, point goes to end of line.

A non-nil second (optional) argument FORCE means,
if COLUMN is in the middle of a tab character, change it to spaces.
In addition, if FORCE is t, and the line is too short
to reach column COLUMN, add spaces/tabs to get there.

The return value is the current column.

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Zubok

Если честно, еще не вчитался, но уже впечатлен. И благодарен. Даже не только за информацию, а за то что вспомнили, нашли, да еще и вернули тему.

anonymous
()

Кстати, за режим отдельное спасибо, давно думал, как же люди вставляют рамки с комментами, описаниями, лицензиями и прочим стафом. Осталось только совместить с comment-region ;)

anonymous
()
Ответ на: комментарий от anonymous

>Если честно, еще не вчитался, но уже впечатлен. И благодарен. Даже не только за информацию, а за то что вспомнили, нашли, да еще и вернули тему.

Там есть артефакты, с которыми надо бороться. (move-to-column..) оставляет за собой вставленные пробелы, даже если ты ничего не ввел после прышка вне текста. Лишние пробелы в хвосте -- это не есть гуд. Их надо как-то чистить.

Zubok ★★★★★
() автор топика

Picture-mode это одна из моих любимых приблуд в емакс.

Sphinx ★★☆☆
()
Ответ на: комментарий от slackophile

>> Осталось только совместить с comment-region ;)

>Для рамок есть comment-box.

Спасибо, я догадывался о ее существовании, но конкретную функцию не искал.

anonymous
()
Ответ на: комментарий от Zubok

>Лишние пробелы в хвосте -- это не есть гуд. Их надо как-то чистить.

Это с успехом делает (delete-horizontal-space...).

Zubok ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.