はじめに
最近よくマックにいくのだけれども, ここがとても電波回線が悪い (@_@);
ネットサーフィンをしてても, とてもストレスがたまる. このままだと, マックのせいでストレスから立ち直れなくなってしまうので なんとかしようと思った.
テキストブラウザをつかえば, よりサクサクとネットを楽しめるのではとお もい, Emacs での テキストブラウザの eww をつかってみた.
EWW とは
Emacs での テキストブラウザ. Emacs24.4 からデフォルトで Emacs にはいっている.
Basics Config
KeyBindings
- N (eww-next-url)
- P (eww-previous-url)
- l (eww-back-url)
- r (eww-forward-url)
- H (eww-list-histories)
- & (eww-browse-with-external-browser)
- b (eww-add-bookmark)
- B (eww-list-bookmarks)
- q (quit-window)
見にくいときは, R eww-readable をすると, 余計なリンクやサイドバーが消えて見えやすくなる.
いくつか自分でも追加.
(define-key eww-mode-map "r" 'eww-reload)
(define-key eww-mode-map "c 0" 'eww-copy-page-url)
(define-key eww-mode-map "p" 'scroll-down)
(define-key eww-mode-map "n" 'scroll-up)
背景色の設定
正直, 以下の記事をみつけなければ, eww は利用していなかった!!
黒背景を利用していると, google の検索結果が白みががかってしまってつか いものにならなかった. 以下の設定をしたら, あらー不思議. いろが消えた.
(defvar eww-disable-colorize t)
(defun shr-colorize-region--disable (orig start end fg &optional bg &rest _)
(unless eww-disable-colorize
(funcall orig start end fg)))
(advice-add 'shr-colorize-region :around 'shr-colorize-region--disable)
(advice-add 'eww-colorize-region :around 'shr-colorize-region--disable)
(defun eww-disable-color ()
"eww で文字色を反映させない"
(interactive)
(setq-local eww-disable-colorize t)
(eww-reload))
(defun eww-enable-color ()
"eww で文字色を反映させる"
(interactive)
(setq-local eww-disable-colorize nil)
(eww-reload))
default の検索エンジンを Google に変更
default では, duckduckgo が設定されている. Google へ.
(setq eww-search-prefix "https://www.google.co.jp/search?q=")
dokudokgo
こまかくパラメータ設定
- kl=ja-jp 日本語
- k1=-1 広告なし
- kc=1 自動先読み
- kf=-1 サイトアイコンなし
- q = 検索文字
=> サイトアイコンなしは動かない.
;; (setq eww-search-prefix "https://duckduckgo.com/html/?kl=jp-jp&k1=-1&kc=1&kf=-1&q=")
eww 複数起動する
バッファ名を rename すればいい.
(defun eww-mode-hook--rename-buffer ()
"Rename eww browser's buffer so sites open in new page."
(rename-buffer "eww" t))
(add-hook 'eww-mode-hook 'eww-mode-hook--rename-buffer)
- eww-list-buffers (S にキーバインドされている) 生成した eww を一覧で表示できる.
クイック検索
サクッと Google 検索をしたいので, 検索機能を強化した.
- 検索結果にハイライトをつける.
(defun eww-search (term)
(interactive "sSearch terms: ")
(setq eww-hl-search-word term)
(eww-browse-url (concat eww-search-prefix term)))
(add-hook 'eww-after-render-hook (lambda ()
(highlight-regexp eww-hl-search-word)
(setq eww-hl-search-word nil)))
現在の url を 外部ブラウザ で開く (eww-browse-with-external-link)
テキストブラウザは地味なので, ときには別のブラウザでも Web ページを閲覧したい. 私は普段は conkeror を利用しているので, これで開きたい.
以下の関数で今見ているページを外部ブラウザで開くことができる. &にキーバインドされている.
eww-browse-with-external-link
以下の設定で, ブラウザを conkeror に指定.
(setq browse-url-generic-program (executable-find "conkeror"))
(setq shr-external-browser 'browse-url-generic)
現在の url を eww で開く
外部ブラウザで開きたいときもあれば, eww で開きたいときもある.
(defun browse-url-with-eww ()
(interactive)
(let ((url-region (bounds-of-thing-at-point 'url)))
;; url
(if url-region
(eww-browse-url (buffer-substring-no-properties (car url-region)
(cdr url-region))))
;; org-link
(setq browse-url-browser-function 'eww-browse-url)
(org-open-at-point)))
(global-set-key (kbd "C-c p") 'browse-url-with-eww)
- カーソル位置の URL をブラウザで開く - tototoshi の日記
- browser - How to setup Emacs to folow links in two ways depend on CTRL key - Stack Overflow
- Emacs Lisp: Using thing-at-point
- アクトインディ技術部隊報告書
画像表示
画像は遅いので表示させない. 以下の記事のテクをそのまま借りた.
(defun eww-disable-images ()
"eww で画像表示させない"
(interactive)
(setq-local shr-put-image-function 'shr-put-image-alt)
(eww-reload))
(defun eww-enable-images ()
"eww で画像表示させる"
(interactive)
(setq-local shr-put-image-function 'shr-put-image)
(eww-reload))
(defun shr-put-image-alt (spec alt &optional flags)
(insert alt))
;; はじめから非表示
(defun eww-mode-hook--disable-image ()
(setq-local shr-put-image-function 'shr-put-image-alt))
(add-hook 'eww-mode-hook 'eww-mode-hook--disable-image)
現在の URL を org-link 形式でクリップボードにコピー
eww-copy-page-url (w) で現在の URL をクリップボードにコピー.
しかし, やりたいことは org-mode のリンクをクリップボードにコピーす ること.この機能かあるかどうかで, 情報収集のスピードが全然違う.
別記事にしました.
External Elisps
eww-hatebu
モードラインにはてぶ数を表示する.
(require' eww-hatebu)
(eww-hatebu-setup)
はてなブックマークを投稿するには, メールからのブックマーク機能を利用する. wl-draft を起動して, コメント書いて送信.
helm-eww-history
helm インタフェースで履歴を見る.
helm-eww-bookmarks
helm インタフェースでブックマークを見る.
(require 'helm-eww-bookmark)
(define-key eww-mode-map "B" 'helm-eww-bookmark)
auto-hightlight-symbol で語句をハイライト
auto-hightlight-symbol を利用すると, 語句にカーソルを当てるだけで, キーワードがハイライトされる.
なんかもうメンテナンスされていないようにみえる.
(require ' auto-highlight-symbol)
(add-hook 'eww-mode-hook 'auto-highlight-symbol-mode)
(global-auto-highlight-symbol-mode t)
ace-link
ace インタフェースによるリンクの選択. これは必須!! conkeror のようなリンク選択ができる.
o をおすと発動.
(require 'ace-link)
(eval-after-load 'eww '(define-key eww-mode-map "f" 'ace-link-eww))
(ace-link-setup-default)