" ----------------------------------------------------------- " TweetVim if has('win32') || has('win64') let g:openbrowser_browser_commands = [ \ { \ "name": "C:\\Program\ Files\ (x86)\\Google\\Chrome\\Application\\chrome.exe", \ "args": ["{browser}", "{uri}"] \ } \ ] endif " 1ページのツイート数 let g:tweetvim_tweet_per_page = 200 " スクリーンネームを表示 let g:tweetvim_display_username = 1 let g:tweetvim_buffer_name = 'Twitter' let g:tweetvim_include_rts = 1 " 時間の表示 let g:tweetvim_display_time = 1 " 投稿時は非同期 let g:tweetvim_async_post = 1 " キャッシュサイズ let g:tweetvim_cache_size = 0 let g:tweetvim_display_icon = 0 let g:tweetvim_empty_separator = 1 nnoremap S :TweetVimSay augroup TweetVimSetting autocmd! " マッピング " 挿入・通常モードでsayバッファを閉じる autocmd FileType tweetvim_say nnoremap :q! autocmd FileType tweetvim_say inoremap :q! " 各種アクション autocmd FileType tweetvim nnoremap S :TweetVimSay autocmd FileType tweetvim nnoremap s :call tweetvim_easymotion() autocmd FileType tweetvim nnoremap :Unite -silent buffer file_mru autocmd FileType tweetvim nnoremap m :TweetVimMentions autocmd FileType tweetvim nmap c (tweetvim_action_in_reply_to) autocmd FileType tweetvim nnoremap t :Unite tweetvim -no-start-insert -quick-match autocmd FileType tweetvim nmap F (tweetvim_action_remove_favorite) autocmd FileType tweetvim nmap f (tweetvim_action_favorite) autocmd FileType tweetvim nmap d (tweetvim_action_remove_status) autocmd FileType tweetvim nmap r (tweetvim_action_retweet) autocmd FileType tweetvim nmap Q (tweetvim_action_qt) " リロード autocmd FileType tweetvim nmap (tweetvim_action_reload) " ページの先頭に戻ったときにリロード autocmd FileType tweetvim nmap gg gg(tweetvim_action_reload) " ページ移動を ff/bb から f/b に autocmd FileType tweetvim nmap f (tweetvim_action_page_next) autocmd FileType tweetvim nmap b (tweetvim_action_page_previous) " favstar や web UI で表示 " autocmd FileType tweetvim nnoremap :call tweetvim_favstar() " ブラウザで対象ユーザのホームを開く autocmd FileType tweetvim nnoremap u :call tweetvim_open_home() " 縦移動(カーソルを常に中央にする) autocmd FileType tweetvim nnoremap j :call tweetvim_vertical_move("gj") autocmd FileType tweetvim nnoremap k :call tweetvim_vertical_move("gk") " 不要なマップを除去 autocmd FileType tweetvim nunmap ff autocmd FileType tweetvim nunmap bb " " tweetvim バッファに移動したときに自動リロード " autocmd BufEnter * call tweetvim_reload() augroup END " セパレータを飛ばして移動する " ページの先頭や末尾でそれ以上 上/下 に移動しようとしたらページ移動する function! s:tweetvim_vertical_move(cmd) execute "normal! ".a:cmd let end = line('$') while getline('.') =~# '^[-~]\+$' && line('.') != end execute "normal! ".a:cmd endwhile " 一番下まで来たら次のページに進む let line = line('.') if line == end call feedkeys("\(tweetvim_action_page_next)") elseif line == 1 call feedkeys("\(tweetvim_action_page_previous)") endif endfunction " filetype が tweetvim ならツイートをリロード function! s:tweetvim_reload() if &filetype ==# "tweetvim" call feedkeys("\(tweetvim_action_reload)") endif endfunction function! s:tweetvim_easymotion() call feedkeys("\(easymotion-s2)") endfunction " カーソル行のツイートをしたユーザの favstar を開く function! s:tweetvim_favstar() let screen_name = matchstr(getline('.'),'^\s\zs\w\+') let path = empty(screen_name) ? "/me" : "/users/" . screen_name execute "OpenBrowser http://ja.favstar.fm" . path endfunction " カーソル下のユーザを favstar で開く function! s:open_favstar() let username = expand('') if empty(username) OpenBrowser http://ja.favstar.fm/me else execute "OpenBrowser http://ja.favstar.fm/users/" . username endif endfunction command! Favstar call open_favstar() " ツイートしたユーザのホームを開く function! s:tweetvim_open_home() let username = expand('') if username =~# '^[a-zA-Z0-9_]\+$' execute "OpenBrowser https://twitter.com/" . username endif endfunction