Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
s:): если кому‐то надо отключить конкретное дополнение, то для этого есть менеджеры путей (pathogen) или дополнений (VAM, Vundle, …), а засорять глобальную область видимости тем, что не является абсолютно необходимым я не люблю. Тем более, что отключение загрузки можно легко добавить в мой framework в виде одной глобальной переменной на все дополнения со списком отключённых, а не пачки по одной переменной на дополнение, если кому‐то потребуется.function! и command! (именно с восклицательными знаками, а не неиспользование вообще). Такое поведение гораздо лучше, чем притворяться, что ошибок нет, а потом узнавать, что дополнение было обновлено в одном месте, а загружается из другого./, независимо от используемой ОС. Например, plugin/aurum.)s:, ни g:. У меня вылезают ошибки, но за счёт frawor — то есть guard уже не используется в одиночку.g:, если вы заботитесь о такой ситуации, надо сохранять expand('<sfile>') в переменную и проверять соответствие при запуске (то есть, сначала if exists(), внутри if expand('sfile') isnot# g:… с сообщением об ошибке).s:. И страхуют от загрузки файла, поскольку эта область видимости не очищается. Без префикса переменные локальны только внутри функции, а finish внутри функции не работает.There are several name spaces for variables. Which one is to be used is
specified by what is prepended:
(nothing) In a function: local to a function; otherwise: global
:Reddit в sys.path добавляется путь. Зачем?BufReadCmd и псевдо‐протокол (к примеру, augroup Reddit
autocmd! BufReadCmd reddit:// :call Reddit()
augroup END) + ещё, возможно, FileReadCmd: на случай, если хочется использовать :read reddit://. Теоретически это даст возможность восстановления таких буферов при загрузке сессий. Правда, я не использую последние.set ft=reddit. Не надо писать велосипеды для обработки выключенного синтаксиса. И не надо бояться множества мелких файлов.Кстати, если я не ошибаюсь, у вас каждый раз при вызове :Reddit в sys.path добавляется путь. Зачем?
И ещё: я не вижу, где вы создаёте новый буфер.
А всю подсветку правильно было бы убрать в syntax/reddit.vim и использовать set ft=reddit. Не надо писать велосипеды для обработки выключенного синтаксиса. И не надо бояться множества мелких файлов.
Я использую текущий буфер — просто очищаю его и заполняю заново. Возможно это не самый лучший путь, скорее это — первое, что пришло в голову и было реализовано.Использование текущего буфера — это то, что вы должны делать с BufReadCmd. При использовании команды надо его всё же создавать, иначе область применения команды ограничиться либо командой‐обвязкой, которая его‐таки создаст (и добавит ненужный уровень вложенности), либо запуском через
vim +Reddit. То есть можно просто взять вашу функцию и мой код с BufReadCmd и оставить так.tabedit reddit:// и не париться созданием кучи команд на все случаи: когда пользователь захочет видеть посты из reddit в новой вкладке, новом окне сверху/слева/справа/снизу, в текущем окне и т.д.
Пока Vim пишет код за Вас…