Help us understand the problem. What is going on with this article?

高校生がVimプラグインを作った話

この記事は、Vim 2 Advent Calendar 2020 7日目の記事になります

はじめましてHasuと申します、今回初めてVimアドベントカレンダーに参加させていただきます。まだまだVim歴が浅いため暖かく見ていただけると幸いです

本文

というわけでこの記事では、はじめてVimプラグインを作成しましたのでそのプラグインについて書いていこうと思います。

どんなプラグインか

todoistというタスク管理サイトをVim上で操作できるプラグインになります。
サポートしている機能は、

  • タスク作成
  • タスク削除

になります。
思いついたことを即座にタスクとして追加することが目的のため、タスク編集機能などは非対応としています。

※今後追加するかもしれません

ソースコードはこちらになります

タスク作成デモ
adtd-create.gif

タスク削除デモ
adtd-delete-demo.gif

技術的な話

vimには独自言語のVim scriptという言語が存在します。詳しくはこちらを御覧ください

今回使用したtodoistにはAPIが存在するのでcurlコマンドを用いて、Vim上からAPIを叩くというフローになっています。

※todoistのAPIについてはこちらを御覧ください

Vim scriptを書いているときに躓いたこととその対処法

  • 入力を受け付ける方法がわからない

 →input()を使う

  • .vimrcの値を参照する方法がわからない

 →get()を使う

終わりに

やはり新しい言語を覚えるのにプロダクト作成は究極の近道だと感じました。
やはりVimはとても奥が深く、カスタマイズがとても楽しいのでこれからもちょくちょくVimプラグインを書いていきたいと思います。

プラグインの改善点としては

  • 作り切ることを目標としていたため汚いコードが目立つ部分があるのでその修正
  • 例外処理をきちんとする

が早急に対処するべきところかなと感じています

nnn-school
IT×グローバル社会を生き抜く“創造力”を身につけ、世界で活躍する人材を育成する。
https://nnn.ed.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away