はじめに
Feedlyが不安定で遅かったり、取得できなかったりすることがあるので、コマンドラインで使えるcantoを使ってみました。なかなかいいかんじです。
今回は、cantoの使い方を紹介していきます。ついでにCLIを好むユーザーにオススメできるブラウザの使い方なども紹介します。
一応、Linuxで動作する手順を書きますが、Macでも動かせます。ただし、cantoは、バージョンによって仕様がだいぶ異なりますので注意が必要です。
canto
cantoのインストール
$ sudo yaourt -S canto
$ canto
$ sudo port install canto
$ canto
cantoの起動オプション
# アップデート
$ canto -u
# 未読数の確認
$ canto -a
cantoの基本操作
基本的に、ノーマルモード(Normal Mode)とリードモード(Reader Mode)に分けられ、キーバインドも異なります。
Normal
| キー | 内容 | 設定 |
|---|---|---|
| h | ヘルプ | help |
| j | カーソル移動(下) | next_item |
| k | カーソル移動(上) | prev_item |
| space | 読む(リードモードに移行) | "reader" |
| q | 終了 | quit |
| R | すべて既読 | all_read |
参考:
http://codezen.org/canto/config/#main-view
Reader
Spaceを押すと、記事を読むことが出来ます。その時有効なキーバインドは以下の通りです。
| キー | 内容 | 設定 |
|---|---|---|
| l | リンク番号を表示する | toggle_show_links |
| g | リンク番号をブラウザで開く | goto |
| ↓ | スクロール(下) | page_down |
| ↑ | スクロール(上) | page_up |
参考:
http://codezen.org/canto/config/#reader-view
リンク先をブラウザで開く
リンク先をブラウザで開くには、まず、Spaceでリードモードに移行します。
これにより、上の方に記事の中身が表示されます。ここで、l(L)を押すと、リンクに番号が割り振られます。
そこでgを押すと、番号を指定し、ブラウザで開くという処理を実行できます。
なお、ブラウザの設定は以下のような感じになります。ヘッダとイメージでブラウザ(ツール)を分けられます。
link_handler("w3m \"%u\"", text=True)
image_handler("dwb \"%u\"", fetch=True)
ただし、ここではまだ設定しないでください。次に、cantoの初期設定方法を紹介します。
cantoの初期設定
MacとLinuxでは、よく使用されているパッケージマネージャーによりインストールされるバージョンが異なります。したがって、設定も若干異なることになります。注意が必要です。
具体的には、Macの場合、設定ファルをダウンロード後に、URLのみの設定をconfに書かなければなりません。
では、以下は、Linuxで有効な設定方法を紹介します。
まず、設定ファイルをダウンロードします。
$ cd ~/.canto
$ curl -O http://codezen.org/static/conf.py.example
$ chmod +x conf.py.example
$ cp conf.py.example conf.py
$ vim conf.py
次に、設定ファイルの設定を見直していきましょう。
フィードを追加するには、以下のように書きます。表示数の指定やタグ付け、フィルタなどが利用できます。
add("http://someurl", rate=30, keep=100)
add("http://some-blog", tags=[None, "blogs"])
add("http://some-other-blog", tags=[None, "blogs"])
filters = [ None, with_tag_in("blogs") ]
add("http://feeds.penny-arcade.com/pa-mainsite") # Implicitly creates "Penny Arcade" tag
add_tag("Penny Arcade", filters=[only_with("Comic:"), only_with("News:")])
次にキーバインドの設定です。ノーマルモードとリードモードがあります。モードによりキーバインドが異なります。
keys['/'] = search_filter
keys['y'] = yank
reader_key['n'] = ["destroy", "just_read", "next_item", "reader", "toggle_show_links"]
reader_key['p'] = ["destroy", "just_read", "prev_item", "reader", "toggle_show_links"]
最後の行だけ見ていきましょう。
reader_key['p'] = ["destroy", "just_read", "prev_item", "reader", "toggle_show_links"]
この設定は、前の記事を開いた状態で移動するというものです。末尾に toggle_show_linksを追加したので、リンク番号を表示するという処理になります。
つまり、最後の行では、pを押すと、「前の記事を"リンク番号を表示したまま"開く」というキーの設定ということになります。
これによりlを押す手間が省けます。
ブラウザの設定は、以下の通りです。
link_handler("w3m \"%u\"", text=True)
image_handler("dwb \"%u\"", fetch=True)
テキストブラウザかそうでないかで、記述が変わってきますので注意が必要です。
ここで、w3mとdwbというブラウザを設定してみました。
つまり、g(goto)でリンクを開くと、w3mが起動し、イメージを開くと、dwbが起動することになります。
参考:
http://codezen.org/canto/config/#example-config
では、以下では、w3mとdwbの基本的な使い方を紹介していきたいと思います。
といっても、cantoとの連携に役立つ限りで紹介していきます。
w3m
w3mのインストール
$ sudo pacman -S w3m xclip
w3mの便利設定
w3mをブラウザに設定した場合は、以下の様なキーバインドを設定しておくと便利です。
keymap m EXTERN_LINK "echo %s | xclip -i -selection clipboard"
keymap M EXTERN "echo %s | xclip -i -selection clipboard"
参考:
http://mba-hack.blogspot.jp/2012/10/w3m.html
x11 Clipboard
Linuxのx11クリップボードは、以下の様な形態になっています。 -selectionで指定します。
| -selection | 内容 |
|---|---|
| primary | マウスでテキストを反転させてコピーした場合 |
| clipboard | マウスでテキストを反転させ、右クリックしてコピーを選択した場合 |
| secondary | - |
Linuxのx11クリップボードを使う場合は、必須の知識です。シェルや端末で独自に設定したい場合は、このようなコマンドになります。
x11 クリップボードへ放り込む
$ xclip -i -selection clipboard
x11 クリップボードから読み込む
$ xclip -o -selection clipboard
参考:
http://l-w-i.net/t/x/clipboard_001.txt
なお、Linuxのクリップボードには、xselもよく使われます。Arch Wikiなどでは、xclipが推されていますが…。
しかし、Arch Wikiの充実度は、素晴らしいですね。私が、Archを使っているのは、この影響も大きいです。
話が逸れましたね。話を戻します。
w3mの話は、これで終わります。次は、debというブラウザの使い方を紹介していきます。
dwb
dwbとは
軽量のGUIブラウザです。
私は、Linuxでは、普段使いとしてdwbというブラウザを使用しています。簡易なブラウジングには、オススメできます。
また、デフォルトのキーバインドがとても優れています。dwbがデフォルトで持っている拡張は、不要ですし、容易です。
不要というのは、基本機能とキーバインドがデフォルトで素晴らしいので、dwbは、あまり拡張する必要がないと個人的には考えています。
dwbのキーバインド
| キー | 内容 | エイリアス,コマンド |
|---|---|---|
| i | インサートモードに移行 | i |
| : | コマンドモードに移行 | - |
| Esc,C-n | ノーマルモードに移行 | - |
| / | 検索 | ffind |
| f | リンクを開く | hi |
| F | リンクをタブで開く | thi |
| j, k, h, l | スクロール、戻る、進む | down …etc |
| C+Tab | タブ移動 | ttab |
| d | タブを閉じる | close_tab |
| ;y | リンクをクリップボードに保存します | chi |
| yy | URLをクリップボードに保存します | yank |
| yt | タイトルをクリップボードに保存します | tyank |
| Sk | キーバインドの設定を開く | skeys |
| Ss | 設定を開く | ssettings |
| C-q | 終了 | q |
dwbの設定
カスタムキーを設定するには、 ~/.config/dwb/default/custom_keysに書きます。
書き方は、以下の様な感じです。
Control ;g :t http://google.com;; 150zoom
Control w :close_tab
例えば、上記は、;gを押すと、Googleをタブでズーム+150の状態で開くというものです。
その他の設定についても、同様のフォルダ内にあります。
参考:
http://portix.bitbucket.org/dwb/resources/manpage.html
https://wiki.archlinux.org/index.php/Dwb
dwbでのテキストコピー
例えば、テキストの選択は以下のようにします。
-
/https + n -
i + Shift + → + C+c
簡単には、検索した後、インサートモードでテキストを選択、コピーします。
リンクをコピーしたければ、;yなどのキーが便利です。
tmux
tmuxとの連携
テキストブラウザを使用する場合は、tmuxを使って、画面をコピーできるようにしておくと便利です。1キーでコピーできるように工夫しています。
# 設定リロード
bind r source-file ~/.tmux.conf \; display-message "Reload Config!!"
# "C-b, [" コピーモードの設定 vi
# set-window-option -g mode-keys vi
setw -g mode-keys vi
# [?]キーバインドの確認
# [p]貼り付け
bind p paste-buffer
# c[Enter]コピー
# bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
bind -t vi-copy Enter copy-pipe "xclip -i -selection clipboard"
# c[Space]選択
# [y]1行コピー(クリップボードとの連携がない場合)
bind -t vi-copy Enter copy-pipe "xclip -i -selection clipboard"
bind -t vi-copy Y select-line
bind y run 'tmux copy-mode\; send-keys Y Enter'
## [y]1行コピー(クリップボードとの連携がある場合)
# bind -t vi-copy Y select-line
# bind y run 'tmux copy-mode\; send-keys Y'
# [v]全行コピー
bind -t vi-copy V begin-selection
bind v run 'tmux copy-mode\; send-keys ggVG Enter'
参考:
http://mba-hack.blogspot.jp/2013/05/tmux.html
追記
だれか、dwbで連続hintsを行うマクロかTipsがあれば教えて下さい。