Page 2 of 7: 1 2 3 4 5 6 7 »





xyzzy の irc-mode で twittericrgataway (TIG) や opentig.net に接続する方法

Posted at Fri, 15 Jan 2010 in computer::xyzzy

xyzzy の irc-mode で TwitterIrcGateway を使う場合、のデフォルトの文字コードでは文字化けはおきないのですが、UTF-8 にした場合や、同じく opentig.net (デフォルトの文字コードが UTF-8)に接続すると投稿が文字化けしていた現象がようやく直ったので記録をかねてメモしておきます。

エンコーディングが通常の *encoding-utf8* では駄目で、*encoding-std-utf8n* を使うというところが重要というかここで躓いていました。*encoding-utf8* とどう違うかというと、utf8n の n の部分が「Unicode signatureなしのUTF-8」で、std とついているのは「Windowsの変換表ではなくUnicode Consortiumが配布している変換表を使用する」ということのようです。(~/html/OChangeLog.html 参照)

そんでもって肝心の設定については、Twitter のopentig.net の場合 ~/.irc にこんな感じで記述。

(defvar *irc-server* "opentig.net")
(defvar *irc-port* 16668  "irc: ポート番号")
(defvar *irc-nick* "ついったーのID" "TwitterID")
(defvar *irc-realname* "ついったーのIDまたはメールアドレス" "TwitterID")
(defvar *irc-pass* "ついったーのパスワード" "Twitterパスワード")
(defvar *irc-incode* *encoding-std-utf8n* "irc: 入力文字コード")
(defvar *irc-outcode* *encoding-std-utf8n* "irc: 出力文字コード")

またはこんな感じに書いておくと、M-x irc-mode 、M-x irc::opentig で接続できます。接続するサーバをあちこち切り替えるならこっちのパターンで複数書いておくと便利。ただし、xyzzy を複数起動しない限りは一度に複数のサーバには接続できない(と思う)。

(defun opentig ()
  (interactive)
  (setf *irc-server* "opentig.net")
  (setf *irc-nick* "ついったーID")
  (setf *irc-port* 16668)
  (setf *irc-realname* "ついったーID")
  (setf *irc-pass* "ついったーパスワード")
  (setf *irc-incode* *encoding-utf8*)
  (setf *irc-outcode* *encoding-std-utf8n*)
  (irc-connect))

自前で TwitterIrcGateway をホスティングして使っているよという人は、*irc-server* とか *irc-port* とか、さらには *irc-incode* と *irc-outcode* を良いように書き換えてください。ローカル環境なら *irc-server* は localhost、エンコーディングはTIGで特に変更指定していなければ指定しなくても大丈夫です。(指定する場合には両方とも *encoding-jis*)

xyzzy の irc-mode で Twitter を眺める一番のメリットは自在なウィンドウ分割。作業中のウィンドウの下に Reply だけを表示したり、通常タイムライン、チャンネル A,B,C... と同時に複数の異なるタイムラインを一覧できるのは他のクライアントにはちょっとない機能なんじゃないかと思います。

2010/01/28

M-x opentig と書いていたのを M-x irc::opentig に修正。



irc-mode で invite on xyzzy

Posted at Mon, 30 Nov 2009 in computer::xyzzy

xyzzyirc-mode にチャネルに招待する(invite)コマンドがなかったので適当に作りました。キーバインドは Ctrl+c i I に当ててあります。.irc ファイルに書き足して使います。

(defun irc-dialog-send-invite (&optional nick)
  "irc: INVITE送信"
  (interactive)
  (irc-check-connection)
  (irc-dialog-check-channel)
  (irc-dialog-check-joined)
  (irc-dialog-check-chop)
  (unless nick
    (setq nick (read-string (format nil "INVITE - ~A: " (irc-channel-name irc-dialog-channel))
                                    )))
  (irc-send "INVITE ~A ~A" nick (irc-channel-name irc-dialog-channel)))
(defvar *irc-prefix* '(#\C-c #\i))          ;これ以前に同じ宣言があれば不要
(add-hook '*irc-dialog-mode-hook*
          #'(lambda ()
              (local-set-key `(,@*irc-prefix* #\I) 'irc-dialog-send-invite))
          )


バッファとかウィンドウとかをさくさくきりかえたい on xyzzy

Posted at Fri, 06 Nov 2009 in computer::xyzzy

バッファ、ウィンドウ、フレームの切り替えについて標準のキー割り当てがどうにもしっくり来なかったので自分用に設定メモ。
たいていはバッファとフレームのツールバーを表示しています。バッファは縦表示。(ドラッグでぐりぐりひっぱって左端に持っていって縦にして、「共通設定」−「表示」のタブバーを横書きにするにチェックを入れる)

設定後は以下のようになります。(2009/11/26追記)

;;;;;;;;;;;;;;;;;;
;; ■ バッファをさくさく切り替えたい(改変版)
;; http://www9.ocn.ne.jp/‾y-kwsk/luvtechno/xyzzy.html#next-buffer
(setq *next-buffer-in-tab-order* t) ; バッファ移動をタブ順に
(global-set-key #¥C-PageUp 'previous-buffer) ; 前のバッファに移動
(global-set-key #¥C-PageDown 'next-buffer) ; 後のバッファに移動

;;;;;;;;;;;;;;;;;;
;; ■ ウィンドウをさくさく切り替えたい(改変版)
;; http://www9.ocn.ne.jp/‾y-kwsk/luvtechno/xyzzy.html#other-window
(global-set-key #¥C-S-PageUp 'move-previous-window)
(global-set-key #¥C-S-PageDown 'other-window)

;;;;;;;;;;;;;;;;;;
;; ■ フレームの切り替え用ショートカットキー
(global-set-key #¥M-S-Right 'other-pseudo-frame)
(global-set-key #¥M-S-Left 'previous-pseudo-frame)

バッファバーを表示している場合には以下の設定もしておくとわかりやすいです。

(setq *next-buffer-in-tab-order* t) ; バッファ移動をタブ順に


howm-wrap でキーワードサーチに Hyper Estraier を利用する on xyzzy

Posted at Fri, 16 Oct 2009 in computer::xyzzy

タイトルの通りです。以前書いた記事(howm の検索に Hyper Estraier を使ってさらに速度改善 on xyzzyHE-grep を使って howm のデータを検索する on xyzzy)のリンク先が NotFound のため、 howm-init.l に追記すれば良いであろう部分を抜き出しました。
現在検証環境がないので未検証です。またコードについても私が書いたものではないので引用ということで。

;;;;;;;;;;;;;;;;;;
;; ■ howm-wrap でキーワードサーチに Hyper Estraier を利用する
(defvar *howm-view-HE-grep-command* "estcmd search -ic CP932 -vh -gs -max -1 -ord @title")
(defvar *howm-view-HE-grep-index-dir* 	 "C:/bin/xyzzy/.estraier-mode/casket") ;インデックスの保存されているディレクトリを指定

(defun howm-view-grep (str file-list &optional fixed-p)
  (when (stringp file-list)
    (setq file-list (list file-list)))
  (when *howm-view-force-case-fold-search*
    (setq str (downcase str)))
  (cond (fixed-p
	 (howm-view-HE-grep str))
	(howm-view-use-grep
	 (howm-view-real-grep str file-list fixed-p))
	(t
	 (howm-view-fake-grep str file-list fixed-p))))

(defun howm-view-HE-grep-initialize-buffer (buffer)
  (set-buffer buffer)
  (erase-buffer buffer)
  (set-buffer-fold-width nil)
  (setq need-not-save t)
  (setq kept-undo-information nil)
  (setq auto-save nil))

(defun howm-view-HE-grep (str)
  (let ((search-backward-f #'search-backward)
	(file-list (ed::read-HE-recent-save-files howm-directory))
	tmpbuf no-dup f)
    (save-excursion
      (setq tmpbuf (get-buffer-create "*howm-view-HE-grep-temp*"))
      (howm-view-HE-grep-initialize-buffer tmpbuf)
      (execute-shell-command (ed::format nil "‾A ‾A ‾A" *howm-view-HE-grep-command*
					 (map-slash-to-backslash *howm-view-HE-grep-index-dir*) str) nil tmpbuf)
      (set-buffer tmpbuf)
      (goto-char (point-min))
      (while (scan-buffer (compile-regexp "^URI: file:///¥¥(.+$¥¥)")
			  :no-dup no-dup)
	(setq no-dup t)
	(setq f (si::www-url-decode (match-string 1)))
	(setq f (substitute-string f "|/" ":/"))
	(when (file-exist-p f)
	  (pushnew f file-list :test #'equal)))
      (delete-buffer tmpbuf))
    (mapcan (lambda (file)
	      (howm-view-fake-grep-file str file search-backward-f))
	    file-list)))


TwitterIrcGateway を使い、xyzzy の irc-mode を使って Twitter をしている人向け ReTweet

Posted at Tue, 15 Sep 2009 in computer::xyzzy

TwitterIrcGateway(以下TIG)の ReTweet 機能がうまく動かないので、irc-mode 側で実装してみました。~/.irc ファイルに追記して使います。

「現在カーソルがある行のつぶやき」をとってきて、書式を整えてくれるだけの簡単なお仕事です。TIG で TypebleMap を使用していることを前提としているので、動かない場合は8行目の正規表現を修正するなどしてみてください。

2009/12/10 修正:正規表現の部分を若干修正しました。

(defun tig-retweet ()
  "ReTweet"
  (interactive)
  (irc-check-connection)
  (irc-dialog-check-joined)
  (let (prompt msg)
	(goto-bol)
	(when (scan-buffer "^[0-2][0-9]:[0-6][0-9] <\\([A-Za-z0-9_]+\\)> \\([^]+\\)\\([0-9]+([a-z]+)\\)?$" :regexp t :no-dup nil) ;;現在行の発言をとるための正規表現
	  (setq prompt (format nil "ReTweet - ~A: "
						 (or irc-dialog-private
							 (irc-channel-name irc-dialog-channel))))
	  (setq msg (read-string prompt :default (concat msg " RT @" (match-string 1) ": " (match-string 2))))
	  (irc-dialog-post-buffered-privmsg (or irc-dialog-private
											(irc-channel-name irc-dialog-channel))
										msg))))
;キー設定。Ctrl-c i r に設定してあります。
(defvar *irc-prefix* '(#\C-c #\i))
(add-hook '*irc-dialog-mode-hook*
		  #'(lambda ()
			  (local-set-key `(,@*irc-prefix* #\r) 'tig-retweet))
		  )


xyzzy で割り算の結果を小数表示にする

Posted at Thu, 04 Oct 2007 in computer::xyzzy

xyzzy で電卓を使うときに、割り算の結果が小数になるようにする設定方法。

電卓モードにしてから出力形式を設定します。

$ set ratio=float

詳細は「Calc-modeのManual」に書いてあります。



はてダモード&html-popup-menu on xyzzy

Posted at Wed, 12 Sep 2007 in computer::xyzzy

Netinstaller のはてダモードを更新&html-popup-menu を追加しました。

packages.l

はてダモードの主な更新

html-popup-menu