Giter Site home page Giter Site logo

qq542vev / vim-style-newsboat Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 2.32 MB

Vim, Pentadactyl のキーボード操作を、Newsboat で実現する試み。

License: Creative Commons Attribution 4.0 International

Shell 36.05% JavaScript 0.84% HTML 63.07% CSS 0.04%
vim pentadactyl newsbeuter config keymap vim-like keybindings macros color-scheme cc-by posix-sh posix-compatible extension plugin shell-script newsboat tui addon dotfiles free-software

vim-style-newsboat's Introduction

Vim Style Newsboat

Screenshot of Feed List Screenshot of Article List Screenshot of Article

Vim Style Newsboat は VimPentadactyl のキーボード操作を Newsboat 及び Newsbeuter でも実現する試みのプロジェクトです。

Vim は CLI のスクリーンエディタ、Pentadactyl は Webブラウザーである Pale Moon のアドオン、Newsboat と Newsbeuter は CLI の Feed (RSS / Atom) リーダーです。ソフトウェアの性質の違い故に全てのキーボード操作を模倣出来ている訳ではありませんが、基本的な操作の模倣は完了しております。

テストは newsboat r2.26 と newsbeuter 2.9 で行っています。それ以外のバーションでの動作は未確認です。

機能

  • h, j, k, l, ^F, ^B, G, :, !, / などの Vim 風のキーボード操作
  • r, a, f, ;, m, b, ^N, ^P, d などの Pentadactyl 風のキーボード操作
  • ダークとモノクロームの2種類のカラースキーム
  • Webブラウザーの切り替えやヤンクなどのマクロを定義
  • 便利なフィルターとクエリの定義

使い方

まずこのプロジェクト内のディレクトリとファイルをそのままホームディレクトリにコピーしてください。その後 ~/.newsboat/config に次の内容を追加してください。

include "~/.newsboat/bookmark-config"
include "~/.newsboat/color"
include "~/.newsboat/filter"
include "~/.newsboat/keymap"
include "~/.newsboat/macro"

ご使用の端末の言語環境に合わせて ~/.newsboat/color 内の一部をコメントアウトします。例えば日本語環境であれば次のように変更してください。

# Japanese
highlight article "^フィード:|^見出し:|^作者:|^日付:|^リンク:|^Flags: |^コンテンツ:" white black bold
highlight article "^Links: $" white black bold

Newsboat を起動してスクリーンショットのような彩色が反映され、j, k などで移動操作が可能ならば初期設定は完了です。

マクロ

Vim Style Newsboat では幾つかのマクロが定義されており、~/.newsboat/macro を読み込むと使用可能です。デフォルトのマクロプレフィックスは @ であり、それに続けて次のキーを押すと次の動作を行います。

キー 詳細説明
^ 最初のダイアログに移動します。
$ 最後のダイアログに移動します。
0 フィードリンクの URI 、または記事の URI を任意のプログラムで開きます。
1 フィードリンクの URI 、または記事の URI を FireFox で開きます。
2 フィードリンクの URI 、または記事の URI を Chromium で開きます。
3 現在のの記事をEメールで送信します。
4 フィードリンクの URI 、または記事の URI をQRコードに変換して表示します。
5 フィードリンクの URI 、または記事の URI を Lynx で開きます。
6 フィードリンクの URI 、または記事の URI を w3m で開きます。
7 フィードリンクの URI 、または記事の URI を GNU Wget で開きます。
8 フィードリンクの URI 、または記事の URI を curl で開きます。
9 フィードリンクの URI 、または記事の URI を youtube-dl で開きます。
i 現在の記事をテキストエディタで開きます。
J 記事のリスト内で現在選択中の記事以下の50記事を既読にします。
K 記事のリスト内で現在選択中の記事以上の50記事を既読にします。
m フラグが付けられた記事の一覧を開きます。
o フィードリンクの URI 、または記事の URI をテキストエディタで開き、その URI をWebブラウザーで開きます。
O 未読記事の URI をテキストエディタで開き、その URI をWebブラウザーで開きます。
p Newsboat のみで動作します。記事内の1番目のリンクを GNU Wget または curl でダウンロードします。これは Podcast で便利です。
w 現在の記事をページャーで開きます。
y フィードリンクの URI または記事の URI のヤンクを行います。
Y 現在の記事の内容のヤンクを行います。
Ctrl-r auto-reload を(有効 / 無効)にします。

xselxclip がインストールされている環境では、ヤンクにクリップボードを使用することも可能です。~/.newsboat/macro 内のヤンクに関する当該行をコメントアウトしてください。例えば xsel を使用する場合は次の行を有効にしてください。

macro y set browser "echo %u | xsel --input --primary; echo %u | xsel --input --clipboard" ; open-in-browser ; set browser "${BROWSER:-lynx --} %u"
macro Y pipe-to "tmpFile=$(mktemp); cat >${tmpFile}; cat -- ${tmpFile} | xsel --input --primary; cat -- ${tmpFile} | xsel --input --clipboard; rm -f -- ${tmpFile}"

環境変数

Vim Style Newsboat では次の環境変数を参照します。環境変数の値を変更することにより、動作の変更が可能です。

環境変数名 詳細説明
BROWSER 使用するWebブラウザーを指定します。この変数が存在しない場合か、値が空文字列の場合には lynx -- を使用します。
EDITOR 使用するテキストエディタを指定します。この変数が存在しない場合か、値が空文字列の場合には vi -- を使用します。
MAILER 使用するメーラーを指定します。メーラーは mailto URI Scheme の処理が可能である必要があります。この変数が存在しない場合か、値が空文字列の場合には mutt -- を使用します。
PAGER 使用するページャーを指定します。この変数が存在しない場合か、値が空文字列の場合には less -- を使用します。
VIMSTYLENEWSBOAT_YANKFILE ヤンクを行った値を追加するファイルのパスを指定します。この変数が存在しない場合か、値が空文字列の場合には ${HOME}/newsboat-yank を使用します。
VISUAL 使用するテキストエディタを指定します。この変数が存在しない場合か、値が空文字列の場合には ${EDITOR} を使用します。

ToDoリスト

  • ブックマークへ追加するプログラムの作成

ライセンス

Vim Style Newsboat は CC BY 4.0 で配布されています。このライセンスに従う限りに於いて自由に改変や再配布を行えます。ライセンスの詳細は LICENSE を参照してください。

謝辞

Vim Style Newsboat を作成するにあたり、次のソフトウェアの機能を参考にしました。当該ソフトウェアの開発者の皆様に感謝の意を表します。

vim-style-newsboat's People

Contributors

qq542vev avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.