Блог пользователя Igorjan94

Автор Igorjan94, 12 лет назад, По-русски

UPD0: Спасибо огромное всем за такую оценку моего скромного творения! Это вдохновило меня продолжить заниматься улучшением, и теперь плагин научился парсить контест, создавать файловую структуру контеста, примитивно тестить программу на скаченных тестах, показывать список контестов (спасибо I_love_Hoang_Yen), а условие задачи парсится без ошибок. На гитхабе ведется changelog, думаю, что дублировать его здесь нет смысла, ибо тот кто заинтересован, обновит плагин и так.

С Днем Рождения, CodeForces! Этот сайт я посещаю чаще всего, ибо тут совмещается очень много полезных и интересных вещей, а главное, что все делается с юмором и постоянно улучшается. Вот и я решил улучшить жизнь некоторых пользователей :)

Не так давно я начал использовать vim как основную IDE. Сначала, как и предполагалось, я не оценил всех прелестей и продолжал писать в Code::Blocks'е и QtCreator'e, в зависимости от задач. Но, "наставив" кучу плагинов научившись им пользоваться чуть больше чем "как отсюда выйти" и "как собирать программу", я уже достаточно сильно ругаюсь на другие среды разработки. Стоит отметить, что данное высказывание верно лишь для С++ и, наверно, python'а (хотя тут ни в чем другом не писал, не могу сравнивать). Что касается Java, тут безусловно лидирует IDEA, хотя я не против писать и в Eclipse. Можно здесь расписать кучу преимуществ, которые есть у vim'a, но я остановлюсь на одном, которое родилось на днях, основанное на идеях (J|C)Helper'a.

Собственно плагин. Полная информация на странице github'a, здесь я приведу лишь скрины и ключевые моменты, что же такого можно сделать.

  • Смотреть положение контеста(друзья, официальные, неофициальные, комната)

Раскрашиваются только те, кто явно указан в настройках. Полная раскраска в следующих версиях.

  • Смотреть условие задачи

 . Не показываются только формулы-картинки

  • Посылать решение и видеть результат (благодаря CountZero, пост)

  • Загружать последнюю посылку по задаче из положения (как ctrl-клик в положении в браузере). Например, посылка qwerty787788 по последней задаче с последнего раунда:

Все возражения/пожелания/комментарии/критику писать на почту/здесь/гитхаб

  • Проголосовать: нравится
  • +292
  • Проголосовать: не нравится

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Только взлома из консоли не хватает:)

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    понятно, что это шутка, и никто не даст страничку с текстом сабмита во время контеста, будет слишком просто скопировать и прогнать через стресс :)
    а так да, получился относительно полный консольный вариант..

    • »
      »
      »
      12 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Да ладно, как будто флеш-плагин текст сабмита в виде картинки получает. Можно его декомпилировать и получить формат, в котором клиенту приходит сабмит. Это типичный security through obscurity, в конечном итоге надежда на честность участников.

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

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

So cool!!!

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Вот это круто!!!

»
12 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится 0 Проголосовать: не нравится

I have some issues with the plugin:

  • It does not show my friend, it shows your friend. Edit: Fixed. It was mentioned on github page, which I did not read carefully ^_^
  • The standings has wrong indentation. Edit: I fixed it. Did not notice the dependencies earlier :D
  • »
    »
    12 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +3 Проголосовать: не нравится

    I have no idea how to get friends from site, because api doesn't contain this info :(
    g:CodeForcesUsername is used for showing last submits, and you should add your friends in file path/to/plugin/codeforces.vim/CF/codeforces.friends by hands, copying from site

    UPD: maybe I will do automatic parsing, using X-User and JSession, but it isn't so trivial like parsing txt file with split(' ') and I will be some time later :)

»
12 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Здорово, спасибо! А можно поклянчить еще и vimrc? Просто сам только недавно стал юзать vim, теперь вот ищу, кто как себе упрощает жизнь. Понятно, что каждому свое, но так хотя бы начинаешь понимать, что реально, а что не очень.

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Вот мой vimrc для контестов. Только самое необходимое: строка компиляции и несколько шорткатов для запуска кода или дебага )) http://paste.ubuntu.com/10448607/

  • »
    »
    12 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +3 Проголосовать: не нравится

    .vimrc
    Разумеется, я использую не все, а бОльшая часть написана вообще не мной. В основном, мной написано то, что в конце, нужное для компиляции/кф/опции и т д и т п
    сейчас подумал и удалю плагины, которые я не использую, но "да ставь, не помешает"

    UPD: в новой ссылке я пометил звездочкой плагины, которые не использую

    • »
      »
      »
      12 лет назад, скрыть # ^ |
      ← Rev. 2  
      Проголосовать: нравится +5 Проголосовать: не нравится

      Ух. Круто, спасибо =)

      А от себя могу вот такую строчку порекомендовать:

      map <c-a> mcggvG"+y`c

      Иногда бывает удобно, если быстро скопировать код проще, чем загружать его файлом (ну или для TC арены, например).

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Is there any way to try it without competing at the same moment (lets say on virtual competition)?

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Yes, of course it works without competing. You can submit/watch standings/do everything/... whenever you want
    I didn't tested it on virtual contest, but after your comment I've added cookies to request of standings, so it should work as expected.
    About gym : now you can only submit to gym (contest with id > 100000). I suppose I'll add gym support next week.

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

One awesome plugin :)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Now it's worth learning how to use vim.

»
8 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится -10 Проголосовать: не нравится

I'm new to vim. Where should I write let g:CodeForcesContestId = 518 ?

Upd : Resolved.