Contrа vim
Apr. 19th, 2025 11:17 pmContra vim mortis non crescit herba in hortis
Без
X-Post в ЖЖ.
Без
vim
и листочка не вырастет на бинарном дереве! ;-)X-Post в ЖЖ.
vim
и листочка не вырастет на бинарном дереве! ;-)vim
, а он мне говорит "221B". Двести двадцать один байт, значить. Ничего особенного, простое совпадение. Привлекло моё внимание, как большого поклонника шерлокианы.vim
.vim
опция whichwrap
выставлена на максимум: set whichwrap=b,s,h,l,<,>,[,],~
. Много лет всё работало прекрасно, и вдруг сломалось. Стрелки влево/вправо перестали перескакивать на пред/след строки.vim
запущенный под screen
ресетит эту опцию в set whichwrap=b,s
. Сам vim
, нигде ни в /usr/share/vim
ни в ~/.vim/
ничего нет.vim
.noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
grep -FIlr __version__ . >.list for f in `cat .list`; do sed -e '/__version__/,/__copyright__/d' $f >.tmp && cp .tmp $f || break; done for f in `cat .list`; do vim -X -c '%s/\n\n\n\n\+/\r\r\r/' -c up -c q $f || break; done rm .list .tmp
grep -Plrz --exclude-dir=.git --exclude='*.py[co]' '\n\n\n' .
:vimgrep '\n\n\n\+' **/*.pyНо мне часто приходится искать по директориям, в которых полно файлов без расширений — shell-скрипты, Makefile'ы и т.д. А ** залезет и в файлы, куда залезать не надо — в директории .hg/.git/.svn, в питоновский байткод *.py[co], а это лишнее.
vim -X -c ':argdo! %s/\n\n\n\+/\r\r\r/' -c xall `cat .list`
find . -name PlayList.m3u | while read pl; do sort "$pl" > _tmp && mv _tmp "$pl"; done
Забавная командная строка:
vim "+$l" -c "execute 'normal ' . substitute('$c', 'c$', '', '') . '|'" $fПеременные $l, $c, $f передаются извне. ViewSourceWith почему-то передаёт в переменной $c буковку 'c' - приходится удалять. Особенно забавна конструкция substitute('$c', 'c$'...)
Upd. Я написал багрепорт, и в VSW 0.4.2 баг с лишней 'c' исправлен. Командная строка сократилась до
vim "+$l" -c "normal $c|" $f