Firefox _blank _newなリンクのカーソル変更

投稿者: shuichi, タグ: ,, 投稿日時: 2010/11/13 23:02

userContent.cssの定番ネタです。

a[target="_blank"]
{
	cursor: alias !important;
}

カーソルを好みのものに変更し、ついでにtarget=”_new”と区別する。

a[target="_blank"]
{
    cursor: copy !important;
}

a[target="_new"]
{
    cursor: alias !important;
}

Emacs verilog-mode モジュール インスタンス インデント

投稿者: shuichi, タグ: ,,,,, 投稿日時: 2010/07/04 14:52

Emacsのverilog-modeでモジュールをインスタンス化する場合、デフォルトではインデントはこのようになる。

MOD mod(
        .A( A ),
        .B( B )
        );

1行目のカッコの部分までインデントするようになっている。
これを、次のように設定値のverilog-indent-levelまでインデントするようにした。

MOD mod(
    .A( A ),
    .B( B )
    );

単なる好みの問題。
モジュール名が長くなると無駄に右側にインデントするのが好きではないので。
以下はEmacs 23.2に付属していたverilog-mode.elに対するパッチ。

--- verilog-mode.el.org	2010-05-08 18:58:35.665404800 +0900
+++ verilog-mode.el	2010-07-04 14:29:06.093750000 +0900
@@ -5237,9 +5237,8 @@
       (eq type 'cparenexp)
       (let ((val (save-excursion
 		   (backward-up-list 1)
-		   (forward-char 1)
-		   (skip-chars-forward " \t")
-		   (current-column))))
+           (beginning-of-line-text)
+           (+ (current-column) verilog-indent-level))))
 	(indent-line-to val)
       ))

emacs + auto-complete

投稿者: shuichi, タグ: ,,,, 投稿日時: 2010/07/02 00:47

auto-completeが便利すぎ。
ファジー機能やフィルタ機能がなかなか良い。
辞書の追加も簡単。

試しにVerilogの辞書を追加してみたが、かなり楽になった。
今後もいろいろと進化する予定みたいなので期待。
現在のVerilog環境は emacs + verilog-mode + auto-complete + cua-mode + align となった。

auto-complete デモ

cua-mode デモ

FireGestures: [Hybrid] Forward / Undo Close Tab

投稿者: shuichi, タグ: ,,,, 投稿日時: 2010/06/07 21:48

FireGesturesのスクリプト

[Hybrid] Back / Close Tab

if(gBrowser.sessionHistory.index>0) gBrowser.goBack();
else gBrowser.removeCurrentTab();

↑はよく見るけど、その逆↓

[Hybrid] Forward / Undo Close Tab

if(gBrowser.sessionHistory.index==gBrowser.sessionHistory.count-1) document.getElementById("History:UndoCloseTab").doCommand();
else gBrowser.goForward();

追記(2010/06/28)
自分で作っといてなんだけど、使いづらいわコレ。
ただ、一部で需要があるみたいなので残しておきます。

Emacsのalignが便利

投稿者: shuichi, タグ: ,,,,, 投稿日時: 2009/04/08 21:50

Emacsのalignがけっこう便利。桁揃えが簡単になるので、特にコーディングするときに重宝する。例えば次のようなコードがあるとする。

input HCLK; // Clock
output [31:0] HADDR; // Address
output [1:0] HTRANS; // Transfer type
output HWRITE; // Transfer direction
output [2:0] HSIZE; // Transfer size
output [2:0] HBURST; // Burst type
output [31:0] HWDATA; // Write data
input [31:0] HRDATA; // Read data
input HREADY; // Transfer done

そして次に示すコマンドを実行してみる。

コードをリージョンで選択→M-x align-regexp→Align regexp: \[
コードをリージョンで選択→M-x align-regexp→Align regexp: H
コードをリージョンで選択→M-x align-regexp→Align regexp: //

するとコードが次のように桁揃えされる。

input         HCLK;   // Clock
output [31:0] HADDR;  // Address
output [1:0]  HTRANS; // Transfer type
output        HWRITE; // Transfer direction
output [2:0]  HSIZE;  // Transfer size
output [2:0]  HBURST; // Burst type
output [31:0] HWDATA; // Write data
input  [31:0] HRDATA; // Read data
input         HREADY; // Transfer done

同じようなことを3回繰り返しているのでちょっと面倒だが、手作業でやるよりはマシだと思う。どこで桁揃えするかを正規表現で指定できるのでかなり応用が利く。場合によっては余計面倒になるかもしれないが…。

ちなみにC-u M-x align-regexpでもう少し複雑なことができる。詳細はEmacsWiki: Align Commandsを参照。さらに、桁揃えのルールをあらかじめ定義しておくことができるので、これを定義しておけばもっと便利になりそう。