🦍

VimでTwitterをするプラグインを作った

2022/06/08に公開

初めに

ども、森に帰省中のゴリラです。
みなさん、Twitterをしていますか?
森にいてもついついTwitterをしてしまうので、都市に住んでいる人間のみなさんもきっと同じじゃないかなと思っています。

ぼくは普段Twitterをよく使うんですが、
基本ターミナルとVimに引きこもっているので、ツイートをするためだけにブラウザに切り替える必要があるため不便と感じていました。
以前まではbasyura/TweetVimを使っていましたが、一部動かないところがあったので使うのを諦めて長い間ブラウザでTwitterをしていました。

ちょうど今、手が空いたので、そこで重い腰を上げて、VimでTwitterできるプラグインを作りました。

https://github.com/skanehira/denops-twihi.vim

プラグインの紹介

UIはこんな感じになっています。
ツイートごとにボーダーで区切られています。

ツイートの選択は次のキーマップを提供しています。
スクロールだけだと不便な場合に有用かと思います。

" 次のツイートにカーソルを移動
<Plug>(twihi:tweet:next)
" 前のツイートにカーソルを移動
<Plug>(twihi:tweet:prev)

現時点でdenops-twihi.vimができることは次のとおりです。

  • タイムライン(ホーム、ユーザー、メンション)
  • ツイート、画像付きツイート
  • リツイート、コメント・画像付き(ファイル/クリップボード)リツイート
  • リプライ、画像付きリプライ

たとえば、画像付きツイートをする場合だと、こんな感じです。
基本的に、ツイート・リプライ・コメント付きリツイートは専用バッファが開くので、そこにツイート本文を入力して:wでツイートできます。

現時点で、主に提供しているコマンドは次のとおりです。

" ホームタイムライン
:TwihiHome
" 通知
:TwihiMentions
" {userid} のタイムライン
:TwihiTimeline {userid}
" 新規ツイートのバッファを開く
:TwihiTweet
" ツイートに画像を追加
:TwihiMediaAdd {file}
" ツイートにクリップボードの画像データを追加
:TwihiMediaAddFromClipboard
" 追加した画像をすべてクリア
:TwihiMediaClear
" 追加した画像を削除
:TwihiMediaRemove {file}
" APIキーやトークンの設定
:TwihiEditConfig

リプライなどはコマンドではなく、アクションとして提供しています。
アクションはタイムラインバッファのみ実行できます。

ノーマルモードにてaでアクションを入力モードになり、
likeを入力することで、ツイートにいいねを付けることができます。

like以外にもreply:media:clipboardなどのアクションがあります。

アクションに対応してキーマップもあり、次のとおりです。
ユーザーが好きなように設定できます。

" アクションモード
<Plug>(twihi:action)
" ツイートをブラウザで開く
<Plug>(twihi:tweet:open)
" いいねをつける
<Plug>(twihi:tweet:like)
" ツイートのURLをコピー
<Plug>(twihi:tweet:yank)
" ツイートへのリプライ
<Plug>(twihi:reply)
" リツイート
<Plug>(twihi:retweet)
" コメント付きリツイート
<Plug>(twihi:retweet:comment)
" 画像(クリップボード)とコメント付きリツイート
<Plug>(twihi:retweet:comment:media:clipboard)

キーマップを設定する場合はautocmdを使ってtwihi-timelineの場合に設定する必要があります。

function! s:twihi_keymap() abort
  nmap <buffer> <silent> <C-g>y <Plug>(twihi:tweet:yank)
  nmap <buffer> <silent> <C-g><C-l> <Plug>(twihi:tweet:like)
  nmap <buffer> <silent> <C-o> <Plug>(twihi:tweet:open)
  nmap <buffer> <silent> <C-p> <Plug>(twihi:reply)
  nmap <buffer> <silent> <C-r> <Plug>(twihi:retweet:comment)
endfunction

augroup twihi_keymap
  au!
  au FileType twihi-timeline call <SID>twihi_keymap()
augroup END

最後に

画像などは見れないんですが、ツイート本文やツイートができるので、これでツイ廃になれます。
VimでTwitterをしたい方は、ぜひお試しください。

Discussion