TweetVim

twitter client for vim

TweetVim

twitter client for vim

License

MIT License

Requires

verify

認証されていない場合は、コマンド実行時にブラウザを起動して PIN を表示する。

:TweetVimHomeTimeline

> now launched your browser to authenticate
> Enter Twitter OAuth PIN:

PIN を入力すると認証完了。
認証時に発行された AccessToken と AccessTokenSecret が以下に保存される。

~/.tweetvim/token

~/.tweetvim がファイルとして保存されている場合は削除してから上記を行うこと。

commands

ホームタイムラインを表示する。

:TweetVimHomeTimeline

Mention を表示する

:TwetVimMentions

リストを表示する

:TweetVimListStatuses vim

ユーザのタイムラインを表示する

:TweetVimUserTimeline basyura

ツイート用バッファを開く

:TweetVimSay

メッセージ入力後、ノーマルモードの Enter でツイート。

コマンドラインからツイート

引数が有る場合はそれをメッセージとして、無い場合はプロンプトを表示。

:TweetVimCommandSay
or
:TweetVimCommandSay メッセージ

カレント行をツイート

:TweetVimCurrentLineSay

検索

:TweetVimSearch tweetvim

定義済みバッファキーマップ

タイムライン表示バッファ(tweetvim)

nmap <silent> <buffer> <CR> <Plug>(tweetvim_action_enter)
nmap <silent> <buffer> r  <Plug>(tweetvim_action_reply)
nmap <silent> <buffer> i  <Plug>(tweetvim_action_in_reply_to)
nmap <silent> <buffer> u  <Plug>(tweetvim_action_user_timeline)
nmap <silent> <buffer> o  <Plug>(tweetvim_action_open_links)
nmap <silent> <buffer> q  <Plug>(tweetvim_action_search)
nmap <silent> <buffer> <leader>f  <Plug>(tweetvim_action_favorite)
nmap <silent> <buffer> <leader>uf <Plug>(tweetvim_action_remove_favorite)
nmap <silent> <buffer> <leader>r  <Plug>(tweetvim_action_retweet)
nmap <silent> <buffer> <leader>q  <Plug>(tweetvim_action_qt)
nmap <silent> <buffer> <Leader><Leader>  <Plug>(tweetvim_action_reload)

nmap <silent> <buffer> ff  <Plug>(tweetvim_action_page_next)
nmap <silent> <buffer> bb  <Plug>(tweetvim_action_page_previous)

nmap <silent> <buffer> H  <Plug>(tweetvim_buffer_previous)
nmap <silent> <buffer> L  <Plug>(tweetvim_buffer_next)

nnoremap <silent> <buffer> a :call unite#sources#tweetvim_action#start()<CR>
nnoremap <silent> <buffer> t :call unite#sources#tweetvim_timeline#start()<CR>

デフォルトでは、<leader> は \ が設定されている

ツイート用バッファ(tweetvim_say)

nnoremap <buffer> <silent> q :bd!<CR>
nnoremap <buffer> <silent> <C-s>      :call <SID>show_history()<CR>
inoremap <buffer> <silent> <C-s> <ESC>:call <SID>show_history()<CR>
nnoremap <buffer> <silent> <CR>       :call <SID>post_tweet()<CR>

inoremap <buffer> <silent> <C-i> <ESC>:call unite#sources#tweetvim_tweet_history#start()<CR>
nnoremap <buffer> <silent> <C-i> <ESC>:call unite#sources#tweetvim_tweet_history#start()<CR>

Unite インタフェース

タイムライン選択

:Unite tweetvim

api を使ってスクリーン名とリスト一覧を取得するので、最初の一回はちょっと遅い。

アクション選択

tweetvim バッファのみ。
デフォルトでは a でアクション選択用の Unite が起動する。

ツイート歴表示、選択

tweetvim_say バッファのみ。
デフォルトでは <C-i> で歴選択用の Unite が起動する。
歴は tweetvim_say バッファが閉じられるタイミングでキャッシュされる。

<C-s> で歴を遡って tweetvim_say バッファに表示させることも可

outline

タイムラインの絞り込み

:Unite outline

url 短縮

bitly.vim をインストールしておくと、ツイート用バッファで URL 短縮とタイトルの取得ができる。
デフォルトのキーマッピング。

inoremap <buffer> <C-x><C-d> <ESC>:TweetVimBitly<CR>

実行すると以下の内容がツイート用バッファに展開される

> basyura/TweetVim - GitHub http://bit.ly/t0RQhx

その他

タイムラインに表示したスクリーン名のキャッシュ

~/.tweetvim/screen_name

使い方

設定例

" タイムライン選択用の Unite を起動する
nnoremap <silent> t :Unite tweetvim<CR>
" 発言用バッファを表示する
nnoremap <silent> s           :<C-u>TweetVimSay<CR>
" mentions を表示する
nnoremap <silent> <Space>re   :<C-u>TweetVimMentions<CR>
" 特定のリストのタイムラインを表示する
nnoremap <silent> <Space>tt   :<C-u>TweetVimListStatuses basyura vim<CR>

" スクリーン名のキャッシュを利用して、neocomplcache で補完する
if !exists('g:neocomplcache_dictionary_filetype_lists')
  let g:neocomplcache_dictionary_filetype_lists = {}
endif
let neco_dic = g:neocomplcache_dictionary_filetype_lists
let neco_dic.tweetvim_say = $HOME . '/.tweetvim/screen_name'

使用例

proxy

会社等から使用したい場合は、以下のプロキシ設定が必要です。 環境変数に設定していない場合は、vimrc に記述してください。

let $http_proxy   = 'http://xxx.xx.xx:8080'
let $HTTPS_PROXY  = 'http://xxx.xx.xx:8080'

タイムラインの表示が遅いと感じる場合

webapi-vim を fork して hmac#sha1 の ruby, perl, python 実装を追加した資源が webapi-vim にあります(pull request 中)。
この資源を clone するか各自のリポジトリに差分を当てるといい感じになるかもしれません。

variables

1 ページあたりのツイート取得件数

let g:tweetvim_tweet_per_page = 50

表示内容をキャッシュしておく数(バッファを戻る、進むに使用)

let g:tweetvim_cache_size     = 10

設定情報を保存するディレクトリ

let g:tweetvim_config_dir     = expand('~/.tweetvim')

タイムラインにリツイートを含める

let g:tweetvim_include_rts    = 1

source(クライアント名) を表示するオプション

let g:tweetvim_display_source = 1

ツイート時間の表示・非表示設定 (少しでも表示時間を速くしたい場合)

let g:tweetvim_display_time   = 1

タイムラインを開く際のコマンドを指定 (edit/split/vsplit)

let g:tweetvim_open_buffer_cmd = 'edit!'