TwitteringMode-ja

説明

twittering-mode.elはEmacsで動作するTwitterクライアントです。

このマニュアルでは、twittering-mode-2.0.0 について解説します。

TwitteringModeScreenshot

Home page: http://twmode.sourceforge.net/ja/

Github page: http://github.com/hayamiz/twittering-mode/tree/master

git clone git://github.com/hayamiz/twittering-mode.git

インストールの手引き

Windows

例: `C:\foo\`というディレクトリの下に展開したとすると、`twittering-mode.el`が入っているディレクトリ、つまり`C:\foo\twittering-mode-X.X.X\`があるはずなので、`.emacs`に次の内容を追加する。
        (add-to-list 'load-path "C:/foo/twittering-mode-X.X.X")

Linuxやその他Unix環境

例: `/path/to/foo`というディレクトリの下に展開したとすると、`twittering-mode.el`が入っているディレクトリ、つまり`/path/to/foo/twittering-mode-X.X.X/`があるはずなので、`.emacs`に次の内容を追加する。
       (add-to-list 'load-path "/path/to/foo/twittering-mode-X.X.X")

Emacsの設定

      (require 'twittering-mode)
      (setq twittering-use-master-password t)

この設定にはGnuPGが必要です。さらに、EasyPGもしくは alpaca.el (0.13) も必要になります。

twittering-modeを動かす

  1. `M-x twit`を実行する。
  2. 画面の指示に従いOAuthの認証ページを開き、“Allow"ボタンをクリックして、表示されたPINコードをEmacsに入力する。master passwordを使っている場合、次回以降はPIN入力もブラウザ起動も必要ありません。
  3. (Optional) master passwordを使う場合は、暗号化保存のためのpass phraseを尋ねられますので入力してください。
  4. Twitterのタイムラインが表示されるはず! ‘V’timeline-specを指定すれば色々なtimelineを開くことができます。

キーバインド(Viewモード)

`M-x twit`を実行すると、このモードになります。さまざまな方法で各ツイートやタイムラインを表示できます。

現在のタイムラインを移動する

‘j’
次のツイートに移動する。バッファの終端で実行すると、過去‘twittering-number-of-tweets-on-retrieval’数分のツイートを取得する。(‘twittering-goto-next-status’)
‘k’
前のツイートに移動する。(‘twittering-goto-previous-status’)
‘n’
カーソル下のユーザの次のツイートに移動する。(‘twittering-goto-next-status-of-user’)
‘p’
カーソル下のユーザの前のツイートに移動する。(‘twittering-goto-previous-status-of-user’)
‘l’
次の文字に進む。(‘forward-char’)
‘h’
前の文字に進む。(‘backward-char’)
‘0’
現在行の先頭にポイントを移動する。(‘beginning-of-line’)
`^’
現在行のテキストの先頭にポイントを移動する。(‘beginning-of-line-text’)
`$’
現在行の末尾にポイントを移動する。(‘end-of-line’)
‘C-i’
次のユーザ名やURIに進む。(‘twittering-goto-next-thing’)
‘M-C-i’, `<backtab>’
前のユーザ名やURIに進む。(‘twittering-goto-previous-thing’)
`<backspace>’, ‘M-v’
現在のバッファをスクロールダウンする。(‘twittering-scroll-down’)
`<space>’, ‘C-v’
現在のバッファをスクロールアップする。(‘twittering-scroll-up’)
‘H’
現在のバッファの先頭に移動する。(‘twittering-goto-first-status’)
‘G’
現在のバッファの終端に移動する。(‘end-of-buffer’)

現在のタイムラインを操作する

‘g’
現在のタイムラインを更新する。(‘twittering-current-timeline’)
‘r’
カーソル下のツイートに関係した会話を表示する。(‘twittering-toggle-show-replied-statuses’)
‘C-c D’
カーソル下の自分のツイートを削除する。(‘twittering-delete-status’)
‘C-c C-e’
現在のバッファ内のツイートを全て消去し、最新‘twittering-number-of-tweets-on-retrieval’数分のツイートを取得する。(‘twittering-erase-old-statuses’)
‘q’
現在のバッファを消去する。(‘twittering-kill-buffer’)

新たなタイムラインを表示する

新たなタイムラインを表示すると、バッファも新しく作られます。

‘v’
カーソル下のユーザのタイムラインを表示する。ハッシュタグの場合は検索結果を表示する。(‘twittering-other-user-timeline’)
‘V’
さまざまなタイムラインを表示する。timeline-specを使って、任意のtimelineを開くことができます。TAB での補完も可能。(‘twittering-visit-timeline’)
よく使われそうなタイムラインは、以下のショートカットが用意されている。
‘L’
任意のリストを表示する。(‘twittering-other-user-list-interactive’)
‘C-c C-q’
検索する。(‘twittering-search’)
‘f’
次のバッファを表示する。(‘twittering-switch-to-next-timeline’)
‘b’
前のバッファを表示する。(‘twittering-switch-to-previous-timeline’)

投稿する

‘u’, ‘C-c C-s’
Editモードに移行して投稿。(‘twittering-update-status-interactive’)
‘C-m’, ‘Enter’
カーソル下のユーザに返信(reply)するために、Editモードに移行する。URIの場合はbrowse-urlで表示する。(‘twittering-enter’)
‘C-c C-m’, ‘C-c Enter’
カーソル下のツイートを非公式リツイートするために、Editモードに移行する。(‘twittering-retweet’)
‘C-u C-c C-m’, ‘C-u C-c Enter’
カーソル下のツイートを公式リツイートする。(‘twittering-retweet’)
‘d’
ダイレクトメッセージを送信するために、Editモードに移行する。(‘twittering-direct-message’)

外部ブラウザで表示する

`<mouse-1>’
クリックしたユーザ名やURIをbrowse-urlで表示する。(‘twittering-click’)
‘C-c C-v’
カーソル下のユーザのページをbrowse-urlで表示する。(‘twittering-view-user-page’)

状態を変化させる

‘a’
現在のバッファで、タイムラインを自動更新しない/するを切り替える。(‘twittering-toggle-activate-buffer’)
‘i’
現在のバッファで、アイコンの表示/非表示を切り替える。(‘twittering-icon-mode’)
‘s’
現在のバッファで、スクロールモードのON/OFFを切り替える。(‘twittering-scroll-mode’)
‘t’, ‘C-c C-p’
プロクシのON/OFFを切り替える。(‘twittering-toggle-proxy’)

その他

‘C-c C-t’
現在のハッシュタグをセットする。(‘twittering-set-current-hashtag’)
‘C-c C-l’
「λかわいいよλ」とツイートする。(‘twittering-update-lambda’)
`C-<mouse-3>’
カーソル下のツイートをkill-ringにpushする。(‘twittering-push-tweet-onto-kill-ring’)
‘U’
カーソル下のツイートのURLをkill-ringにpushする。(‘twittering-push-uri-onto-kill-ring’)

キーバインド(Editモード)

新規ツイートを編集するためのモードです。

‘M-p’
一つ前のツイートを辿る。(‘twittering-edit-previous-history’)
‘M-n’
一つ次のツイートを辿る。(‘twittering-edit-next-history’)
`<f4>’
カーソル下のURLを短縮URLに置換する。(‘twittering-edit-replace-at-point’)
‘C-c C-k’
現在のツイートを消去する。(‘twittering-edit-cancel-status’)
‘C-c C-c’
現在のツイートを送信する。(‘twittering-edit-post-status’)

キーバインドの変更方法

You can use ‘twittering-mode-hook’ to customize your configuration. This example shows how to define a few key bindings:

 (add-hook 'twittering-mode-hook
           (lambda ()
             (mapc (lambda (pair)
                     (let ((key (car pair))
                           (func (cdr pair)))
                       (define-key twittering-mode-map
                         (read-kbd-macro key) func)))
                   '(("F" . twittering-friends-timeline)
                     ("R" . twittering-replies-timeline)
                     ("U" . twittering-user-timeline)
                     ("W" . twittering-update-status-interactive)))))

Timeline spec

Twittering-modeではtimeline specという文字列でtimelineを指定します。 ‘V’ (‘twittering-visit-timeline’)を押したときに開くプロンプトでtimeline specを入力することで任意のtimelineを開くことができます。開いたtimelineは履歴に残りますので、EmacsSessionの機能やminibuffer上でのbackward incremental searchと組み合わせれば、開いたことのあるtimelineを開くのに便利でしょう。

このtimeline specはtimelineを指定する色々な場面で使えます。

基本的なtimeline

:home
いわゆるホームtimeline
:mentions
自分へのmentionを含むtweetから成るtimeline
:public
public timeline
USER
USER が投稿したtweetから成るtimeline
USER/LISTNAME
USER が作成した、 LISTNAME という名前のlistのtimeline

Direct message

:direct_messages
受信したdirect messageのtimeline
:direct_messages_sent
送信したdirect messageのtimeline

Favorite

:favorites
「お気に入り」のtimeline
:favorites/USER
USER の「お気に入り」のtimeline

Hashtag

#HASHTAG
ハッシュタグ#HASHTAGのtimeline

Retweet

:retweeted_by_me
自分が投稿したretweet
:retweeted_by_user/USER
(only on development version) USER が投稿したretweet
:retweeted_to_me
自分のhome timelineで受信したretweet
:retweeted_to_user/USER
(only on development version) USER のhome timelineで受信したretweet
:retweets_of_me
自分の投稿したtweetのうち、他のユーザによってretweetされたもの

Search

:search/QUERY-STRING/
検索文字列 QUERY-STRING にマッチするtweet。 QUERY-STRING の中では/ (slash)や\ (backslash)は\/あるいは\\のようにエスケープする必要があります。

Alias

alias は timeline spec の別名を定義する機能です。 長い timeline spec に短い alias を割り当てれば timeline spec を指定するのが楽に なります。 alias には固定のものと関数によるものとの2種類あります。 alias は変数 ‘twittering-timeline-spec-alias’ に連想リスト(association list)の形式で定義できます。

$ALIAS-NAME
変数 ‘twittering-timeline-spec-alias’ の連想リストで ALIAS-NAME に対応している文字列で指定される timeline
$ALIAS-NAME(ARGUMENT)
ALIAS-NAME に対応する関数を ARGUMENT という文字列引数付きで呼び出したときの返り値で指定される timeline 。 関数はシンボルかλ式で設定できます。 関数は文字列引数をひとつとる関数である必要があります。

例として、変数 ‘twittering-timeline-spec-alias’ を以下のように設定した場合について紹介します。

(setq twittering-timeline-spec-alias
      '(("FRIENDS" . "my-account/friends-list")
        ("related-to" .
         (lambda (username)
           (if username
               (format ":search/to:%s OR from:%s OR @%s/"
                       username username username)
             ":home")))
        ("related-to-twitter" . "$related-to(twitter)")))

上記の設定下では、以下のような alias が使えます。

alias等価なtimeline spec
$FRIENDSmy-account/friends-list
$related-to:home
$related-to(twitterapi):search/to:twitterapi OR from:twitterapi OR @twitterapi/
$related-to-twitter:search/to:twitter OR from:twitter OR @twitter/

alias 定義中で alias を参照することもできますが循環参照を含む定義は不可です。

起動時に自動で開くtimelineの設定

変数‘twittering-initial-timeline-spec-string’を変更すれば、最初に自動的に開くtimelineを変更できます。開くtimelineはtimeline-specを使って下記のように指定してください。

(setq twittering-initial-timeline-spec-string
      '(":home"
        ":replies"
        ":favorites"
        ":direct_messages"
        ":search/emacs/"
        "user_name/list_name"))

その他便利なオプション

 (setq twittering-icon-mode t)                ; Show icons
 (setq twittering-timer-interval 300)         ; Update your timeline each 300 seconds (5 minutes)

twittering-mode also provides hooks that are run when new tweets arrive. This example calls notify-send (included in the libnotify package) to display a message when new tweets arrive:

 (add-hook 'twittering-new-tweets-hook (lambda ()
   (let ((n twittering-new-tweets-count))
     (start-process "twittering-notify" nil "notify-send"
                    "-i" "/usr/share/pixmaps/gnome-emacs.png"
                    "New tweets"
                    (format "You have %d new tweet%s"
                            n (if (> n 1) "s" ""))))))

ディスカッション


See also: Twitter Identica-mode