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





xyzzyをやめて、VSCode+EmEditorFree+BoostNoteに移行した話

Posted at Thu, 24 Dec 2020 in computer::xyzzy

xyzzyをはじめて使ったのがいつかは正確に覚えていないけれど、2002年ぐらいのことだったと記憶しています。
このサイトにもxyzzyのカテゴリがあるほど好きなエディタです
ただ、最初の著者の亀井哲弥氏が開発を止め、有志によるバージョンも2014年が最新版ということで、いつまで使い続けられるのか、という問題が浮上してきました。

基本的に仕事で書いているのはRuby、HTML、CSS、JavaScriptですが、hamlやPythonなど、違う言語を書く機会も時々あります。
xyzzyがデフォルトで扱える言語はそれほど多くなく、大抵は拡張を入れることになります。また、hamlなどはそもそも拡張が見つかりませんでした。
最初に移行したのが、ソースコードを書くエディタでした。SublimeTextを使っていた時代もあったのですが、起動の速さ、検索の軽さ、拡張の多さとインストールの簡単さから、ソースコードはVSCodeで書くようになりました。

一時的に書く仕事などでのテキストファイル。これはEmEditor Freeに移行しました。これは特に移行コストなどはありませんでした。
EmEditorはとてもバランスのとれているエディタで、Free版を公開してくださっていることには本当に感謝です。

一番移行に悩んだのは、howmです。
これはメモツールで、その日にやることを全部書きだしてTODOを管理するという使い方がメインです。それ以外にも重いついたメモなどをぽいぽいいれておき、必要があったら全文検索してデータを探す、という使い方をしていました。
データの実体はただのテキストファイルなので、最初はテキストファイルベースのメモツールを探していたのですが、最終的にBoost Note にしました。

このあたりが決め手でした。なお、データはテキストファイルではないので、従来のhowmのデータは特に移行していません。

VSCodeの開発元はマイクロソフトなので、今後の継続的な開発が予想されます。また、EmEditorも長い間定期的にバージョンアップされているため、開発終了はしばらくの間ないでしょう。

BoostNoteについては開発がいつまで続くか未知数な部分もありますが、オープンソースであることから今後に期待して使っていきたいと思います。

従来xyzzy 1つで事足りていたソフトが3つに増えてしまいましたが、今の所特に不自由は感じていないので、しばらくはこの環境で使っていこうと思います。
また、アンインストールしたわけではないので、相変わらず亀のアイコンはデスクトップに残っています。

参考



xyzzyで選択中のバッファバーの色を反転させる

Posted at Fri, 30 Jan 2015 in computer::xyzzy

仕事用のPCを新しくしたら設定がわからなくなってしまったのでメモ。

「ツール」 - 「共通設定」 - 「フォント」タブで
「表示色」 - 「選択バッファタブ背景色」を変更する

ちなみにバッファバーを右に置くのは、ドラッグ&ドロップ。さらに、共通設定から「表示」-「タブバーを横書きにする」をオンにしています。

参考

いろづく - octech
http://d.hatena.ne.jp/octech/20080508

バッファバーでアクティブなバッファを目立たせる - Another 朝顔日記
http://d.hatena.ne.jp/nyama/20080408/1207638603



xyzzy から git grep

Posted at Wed, 10 Apr 2013 in computer::xyzzy

xyzzy上で現在開いているファイルが所属する Git ツリーすべてから grep します。一覧表示した画面で F-10、次の検索結果に飛ぶのは F-11 で飛べます

UTF-8の日本語は悲しいことになります。

つかいかた:M-x girep



irc-mode の適当シンタックス on xyzzy

Posted at Mon, 29 Mar 2010 in computer::xyzzy

xyzzy の irc-mode で psearch をつかった検索をするときに、nick のハイフンとかアンダーバーとかが単語が区切りとみなされてしまうのが面倒なので、text-mode のシンタックスから適当にコピペしてみました。
psearch するときの便利さが格段に違います(自分調べ)。それから dabbrev-expand とかでの補完がばしっときまるのが嬉しい。
不具合が出たら適時調整していこうかなと。
コメントアウトした行があったりするのは text-mode からコピペしてきた名残などです。

(defvar *irc-dialog-mode-syntax-table* nil)
(unless *irc-dialog-mode-syntax-table*
  (setq *irc-dialog-mode-syntax-table* (make-syntax-table))
;  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\&)
;  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\*)
;  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\+)
  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\-)
;  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\/)
  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\_)
  (set-syntax-symbol *irc-dialog-mode-syntax-table* #\|))
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (use-syntax-table *irc-dialog-mode-syntax-table*)))


xyzzy の psearch で新規に検索する前に一旦色を消す

Posted at Fri, 12 Mar 2010 in computer::xyzzy

psearch on xyzzyものすごく便利、と昔も投稿していますが、最近検索結果への色付けをはじめたところ、検索するごとに色をつけていってくれて自動で消してくれる機能がない。というわけで関数を一部上書きしてこんなんにして使っています。

;;;;;;;;;;;;;;;;;
;; ■ psearch ポップアップリストで検索
(require "psearch")
(global-set-key #\C-] 'psearch-popup-string-list)
(global-set-key #\M-] 'psearch-popup-list-again)
(global-set-key #\C-: 'psearch-popup-string-list-word-search)
(global-set-key #\M-: 'psearch-popup-list-again-word-search)
(global-set-key #\C-M-] 'psearch-goto-return-point)
;; インクリメンタルサーチでも使う
(define-key *isearch-map* #\C-] 'psearch-popup-string-list-isearch)
(define-key *isearch-map* #\C-: 'psearch-popup-string-list-word-search-isearch)
;; 色付けをする
(setq *psearch-coloring* t)
(global-set-key '(#\C-c #\]) 'psearch-delete-attributes)
(add-hook '*show-match-hook* 'psearch-coloring)
;; ポップアップリストを作る前に走る hook を追加するために関数を上書き
(in-package "editor")
(export '*before-psearch-hook*)
(defun psearch-popup-list (str case-fold word-search coloring regexp)
  (run-hooks '*before-psearch-hook*)
  (let ((list (psearch-make-list str case-fold word-search coloring regexp)))
    (unless list
      (let ((s (psearch-message-string str regexp)))
    (if regexp
        (plain-error "~A: 正規表現が見つかりません" s)
      (plain-error "~A: 文字列が見つかりません" s))))
    (popup-list list (psearch-goto-function case-fold word-search regexp))
    (let ((match-number *psearch-match-number*) (len (list-length list))
      (s (psearch-message-string str regexp)))
      (if (= len match-number)
      (message "~A: ~D" s len)
    (message "~A: ~D(~D)" s len match-number)))
    (run-hooks '*psearch-hook*)))
(in-package "user")
;; ポップアップリストを出しなおすときは、一旦それまでの色をクリアする
(add-hook '*before-psearch-hook* 'psearch-delete-attributes)


irc-mode から clickable-uri を使って適当に URI を開く on xyzzy

Posted at Wed, 10 Feb 2010 in computer::xyzzy

例のごとく現在行で GShiftg)を押すと、URI があった場合に clickable-uri の設定にしたがって URI を開いたりします。
irc-mode に加えて clickable-uri がインストールされている必要があります。

;;;;;;;;;;;;;;;;;;;
;; ■ clickable-uri を利用して適当にURIにジャンプ
(defun irc-goto-uri ()
  (interactive)
  (save-excursion
    (let ((ed (progn (goto-eol) (point))))
      (goto-bol)
      (when (scan-buffer ed::*clickable-uri-regexp* :limit ed)
        (ed::clickable-uri-open)))))
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (local-set-key #\G 'irc-goto-uri)))


TwitterIrcGateway(TIG) + irc-mode on xyzzy の TypableMap を使った Favorite や Reply 関連 Lisp

Posted at Tue, 09 Feb 2010 in computer::xyzzy

Twitter クライアントの P3 とかを使っているとキーひとつでふぁぼできるのですが、そういうのがうらやましかったので TwitterIrcGateway + irc-mode の環境でも使えるように書きました。~/.irc に書いて使ってください。現在カーソルのある行の発言に対して実行します。
TypableMap って何? どうやって設定するの? という方はこのあたりに TypableMap を有効にする方法についての解説があるのでご参照ください。(端折って説明すると /join #Console , config, set EnableTypableMap True で終了)

FShift + f) で Favorite、UShift + u)で Favorite から削除。RShift + r)で TypableMap を使ったリプライ補助。
ふぁぼとあんふぁぼは、問い合わせもなしにいきなり Favorite に追加(または削除)します。問い合わせて欲しい場合はそのための関数を作ったので、そちらにキーを割り当ててください。
実行は TIG まかせなので発言が Fav されているかどうかをチェックして Unfav を抑止するとかいう親切設計はありません。

Reply は一番左端に @screen_name が表示されて一応相手がわかるという誤爆防止機能はありますが、TypableMap の部分を消すとリプライでもなんでもないごく普通の発言になります。仕様です。

;;;;;;;;;;;;;;;;;;;
;; ■ TIG での TypableMap を利用した Reply
(defun tig-reply ()
  "Reply"
  (interactive)
  (irc-check-connection)
  (irc-dialog-check-joined)
  (save-excursion
    (goto-bol)
    (when (scan-buffer "^[0-2][0-9]:[0-5][0-9] <\\([^>]+\\)> \\(.*\\)(\\([a-z]+\\))$" :regexp t)
      (let ((tp (match-string 3))
            (prompt (format nil "@~A - ~A: " (match-string 1) (irc-channel-name irc-dialog-channel)))
            msg)
        (setf msg (read-string prompt :default (format nil "re ~A " tp)))
        (unless (equalp msg "")
          (irc-dialog-post-buffered-privmsg (irc-channel-name irc-dialog-channel) msg))))))
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (local-set-key #\R 'tig-reply)))

;;;;;;;;;;;;;;;;;;;
;; ■ TIG での 問答無用 Favorite
(defun tig-favorite (&optional y-or-n)
  "Favorite"
  (interactive)
  (irc-check-connection)
  (irc-dialog-check-joined)
  (save-excursion
    (goto-bol)
    (when (scan-buffer "^[0-2][0-9]:[0-5][0-9] <\\([^>]+\\)> \\(.*\\)(\\([a-z]+\\))$" :regexp t)
      (when (or (not y-or-n)
                (yes-or-no-p (format nil "@~A: \"~A...\" を~%Fatorite に追加しますか?" (match-string 1) (substring (match-string 2) 0 20))))
        (irc-dialog-post-buffered-privmsg (irc-channel-name irc-dialog-channel)
                                          (format nil "fav ~A" (match-string 3)))))))
;; キーバインド
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (local-set-key #\F 'tig-favorite)))
;; 一言聞く場合はこっちにキーを割り当てる
(defun tig-favorite-interactive ()
  (interactive) (tig-favorite t))

;;;;;;;;;;;;;;;;;;;
;; ■ TIG での 問答無用 Favorite 削除
(defun tig-unfavorite (&optional y-or-n)
  "UnFavorite"
  (interactive)
  (irc-check-connection)
  (irc-dialog-check-joined)
  (save-excursion
    (goto-bol)
    (when (scan-buffer "^[0-2][0-9]:[0-5][0-9] <\\([^>]+\\)> \\(.*\\)(\\([a-z]+\\))$" :regexp t)
      (when (or (not y-or-n)
                (yes-or-no-p (format nil "@~A: \"~A...\" を~%Fatorite から削除しますか?" (match-string 1) (substring (match-string 2) 0 20))))
        (irc-dialog-post-buffered-privmsg (irc-channel-name irc-dialog-channel)
                                          (format nil "unfav ~A" (match-string 3)))))))
;; キーバインド
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (local-set-key #\U 'tig-unfavorite)))
;; 一言聞く場合はこっちにキーを割り当てる
(defun tig-unfavorite-interactive ()
  (interactive) (tig-unfavorite t))