nyaload

Журнал Пушыстого

Журнал Пушыстого

Entries by tag: vim

because we can
nyaload
_winnie
Захотел сегодня сделать из зацикленного gif - не зацикленый. Чтобы анимация показывалась только один раз.

Нашёл описание формата, поправил два байта (unsigned number of repetitions) с количеством повторения с нуля (бесконечно зацикленый) на 1 (попробовал оба варианта, big endian и little endian). Не получилось, картинка осталась зацикленой. Тогда просто испортил заголовок описывающий анимацию, поменяв 21FF на 21AA. Получилось, gif теперь в FF и хроме не зацикленый. Но IE отказался его показывать. Тогда просто стёр этот блок. Получилось. Но FireFox действительно теперь показывает анимацию ровно один раз, а для перезапуска анимации - нужно перезагружать браузер. Блок легко кстати ищется глазами по строке "!..NETSCAPE2.0"

Давно ничего не редактировал в бинарном виде. Узнал, что в vim принято переключаться из бинарного режима в текстовый при помощи внешней программы конвертирования ( «:%!xxd» туда, и «:%!xxd -r» обратно ). Работает, но до нормального hex-редактора далеко (нельзя даже найти последовательность, которую перенесли на другую строку, для удаления байтов нужно переключиться в text-режим и запоминать в голове в штуках смещения, положение курсора естественно забывается).

Read more...Collapse )

tabs vs spaces - autodetect
nyaload
_winnie
Периодически правлю исходники из разных источников, с разными coding conventions. Чаще всего надо переключаться между табами и спейсами, но иногда встречаются файлы с 2-пробельными и 8-пробельными отступами, например.

Я считаю, что редактор сам должен определять EOL и настройки идентации, и галочка это включающая должна быть включена по умолчанию. EOL худо-бедно некоторые редакторы научились сами выводить. Или хотя бы не мешать редактировать файл с произвольным EOL. А вот с табами и спейсами беда.

Написал автоматический определитель спейсов и табов в файле ( http://dobrokot.ru/dump/tab_space_select.py ). Сначала смотрю на статистику строк в файле, если её нет - то на соседние файлы с тем же расширением. Ещё круче, если бы текстовый редактор смотрел на соседние строки (предыдущий отступ), а не на файл целиком, но увы, это придётся слишком сильно завязаться на API редактора.
Код можно портировать под любой скриптовый язык.

По ходу тестирования нашёл в наших исходниках любителя 3-пробельных отступов. Естественно, его 3-х пробельные отступы перемешанны с 4-х пробельными правками его друзей. Ну и куча обычных банальностей "в файле 3 строчки с табами на 1000 строчек со спейсами".

Как бы мне этот скрипт приткнуть в vim, кто подскажет? Хочется как внешний процесс, так как не на всех хостах новый vim с питоном. Я могу из скрипта возвращать vim-команды, а в vimrc хочется написать что-то вроде eval(get_stdout(~/tab_space_select.py)) update: получилось вот так: http://users.livejournal.com/_winnie/332496.html?thread=4391376#t4391376
Tags: ,

vim: подсветка при поиске (hlsearch), убрать подсветку по esc
nyaload
_winnie
Удивляют меня вим и bash, что у них есть миллион дурацких флажков "не теряй данные", "не забывай команды при нажатии на крестик закрытия терминала", "раскрашивай вывод" ( 95% представителей homo sapiens умеет различать цвета ), "используй адекватную лаконичную информацию в доступных статус-барах", "следи сам за размером окошка терминала", "запоминай историю", "расставляй скобки самостоятельно", "подсвечивай не-вырви-глазно найденное", "не используй дефолтный динамик компьютера", "конкретно для make-файлов используй табы", "включи анду", "сделай так что бы русские буквы работали", ..., ...

И про эти флажки узнаёшь случайно. От товарищей, из блогов, из сборников "1001 совет для vim"

В vim можно сделать подсветку для поиска ( set hlsearch ), и инкрементальный поиск ( set incsearch ).

После включения подсветки поиска начинает дико раздражать то, что её невозможно убрать. Нужно или набрать команду :nohlsearch, или поискать несуществующую ерунду ( /asdfasdf ). После многих лет исследований люди придумали, как при помощи конфига убрать эту разражающую особеность:

:nnoremap <esc> :noh<return><esc>

Оригинальный пост который про это рассказывает: http://www.viemu.com/blog/2009/06/16/a-vim-and-viemu-mapping-you-really-cant-miss-never-type-noh-again/
Tags:

:vim ← ↑ ↓ ↮
nyaload
_winnie
То что vim можно удобно пользоваться на ноутбучной клавиатуре, без стрелок и всяких PageUp - враньё.

Редактирование команд (те, что после :, типа :set noexpandtab или %s/foo/bar/) без этих клавиш - совершенно убогое по сравнению с command-mode, нет даже возможности сдвинуть курсор на символ влево.

Настройки кастомных hot keys (и миллиона флажков "работай нормально") - отдельное зло, когда подсаживаешься к товарищу на пять минут или забегаешь на случайный хост не под личным логином.

Форсированное использование регулярных выражений для поиск-замена - отдельная жесть. Сначала так или иначе копируешь http://some/path/ в командую строку (чаще всего люди это делают мышкой, даже форумные консоль-вариоры), затем стрелочками проходишься по всем / заменяя их на \/.
Tags: ,

vim, paste without autoident: "set paste", "set nopaste". Or: "r! xclip -o".
nyaload
_winnie
в нормальных редакторах что бы вставить текст из буфера обмена, не надо лезть в гугль или в справку.
набрать в vim "r! xclip -o" оказалось проще, чем временно выключить аутоидент ("r! command" вставляет вывод команды в текущую позицию, а xclip -o - выводит текущее содержание буфера обмена). Ну и проще чем вникнуть в их вики "поправьте свой vimrc так, так и вот так".

update: не работает с удаленным терминалом. Для него пришлось выгуглить команды ":set paste" и ":set nopaste"
Tags: ,

?

Log in