arte_nut

for loop

7 2月

Markdownでの参照リンクの共有

markup

Markdownで文書を書くにあたって、linkのreferenceを毎回文末に書くのが面倒だと思ったので、Wrapperを作ってみた。名前は適当にmarkupにしておいた。

#!/bin/sh
cat - $* ~/bin/link.lst | markdown

ちなみに link.lst はそのまま共用で使うlinkをmarkdown形式で記載している。このエントリを書いてる時点では下記。

[Linux Mint]:http://linuxmint.com/ "Linux Mint"
[markdown]:http://daringfireball.net/projects/markdown/ "markdown"
[markdown-mode]:http://jblevins.org/projects/markdown-mode/ "markdown-mode"
[prettyPrint]:http://google-code-prettify.googlecode.com/svn/trunk/README.html "google prettyprint"

この状態で $ markup body.md などとして実行するとlinkが解決されたhtmlが作られる。

markdown-mode

上記を作成したら、Emacsからも使えるようにするために下記をinit.elに設定する。

(setq markdown-command "markup")

これでmarkdown-modeでmarkdown-exportなどを実行すればhtmlファイルを作成できる。

6 2月

Markdown ことはじめ

インストール

markdown

今回はLinux Mintだったのでapt-get install markdownのみ。 Windowsを使った場合は本家からDownload.

markdown-mode.el

文書を書くのはEmacsなのでこれも使う。 配布元からDownload. もしくはM-x auto-install-from-url http://jblevins.org/git/markdown-mode.git/plain/markdown-mode.el

設定

markdown-modeの設定

下記をinit.elに書くのみ。

(autoload 'markdown-mode "markdown-mode"
   "Major mode for editing Markdown files" t)
(setq auto-mode-alist
   (cons '("\\.text" . markdown-mode) auto-mode-alist))

補完

markdown-modeで設定してあるキーバインドを覚えるのは面倒そうだったのでyasnippetで何か書こうと思ったのだけど、意外に書くことなかった。

どちらかというとLink先の一覧を別に持っておいて、markup時に繋げるような設定があると 良いかなと。

不満点

markdown

オプションなどがあるのかもしれないけど、見つからなかった。コードを書いたときにclass="prettyprint"を付与できなかったので、markdownそのものを書き換えてしまった。大変良くない。早めに代替の処理系を探すなりしたのが良い。

markdown-mode

何故か分からないけど、SKKの変換をEnterで確定すると行頭に行く。改行されるでもなく、行頭に。ちょくちょく間違えて平仮名で書く場合にもsticky-shiftしてしまうので、困る。とりあえず、無駄にもう一度sticky-shiftしておけば改行せずに確定できるという他で役に立ちそうもないtipsを手に入れた。

5 2月

Linux での Window アクティベーション

元ネタ http://d.hatena.ne.jp/mooz/20101228/p1

今までにも色々書いてたのだけど上のtogwinスクリプトが使えればとりあえず私がしたいことはこれでできる。
のだけど、togwinが思ったように動かない。

どうも下記がネックになっている様子。

echo `eval xdotool search $@ | head -1`
togwin内で使っているxdotool でアプリを指定するのは例えば下記のようにするのだけどこれがなぜか(Windowコンポーネントが複数に分かれてる?)複数でてきてしまう。そしてこの一つ目を指定した場合に目的の操作をできないことがある。

 $ xdotool search --class emacs
 12582913
 12583672
 12583075
下記は一つ目の値を使うところまで一つのコマンドで実行した例。


 $ xdotool search --class emacs windowactivate %1
 XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)

適切に使う方法は他にあるのかもしれないけど、とりあえず動く、というレベルでは下記の様に実行してしまえばいい。これで列挙された全部のパターンを実行してくれる。

xdotool search --class emacs windowactivate %@

この方法でtogwinを 実行する場合は、下記の行を
xdotool windowactivate $WID || xdotool windowfocus $WID

このように書き換えれば良い。(先に検索した結果はここでは使ってない)
eval xdotool search $COND windowactivate %@

ここから先はおまけ。 awesomeで実行すると別タグに置いたWindowにフォーカスしようとしたときに次々同じアプリが起動されて困ったけど、workspaceとか使わないんだったら、対象のWindowIDを探すのは下記に変更したのでもよさそう。
echo `eval xdotool search --onlyvisible $@ | head -1`

一意にWindowを指定する方法は見つからなくて、色々試してるうちに何故かxdotoolでwmctrlの16進数指定のidが使えることに気付いたので、下記のような指定は可能。(class限定)
echo `eval "wmctrl -lx | cut -f1,3 | grep $2 | cut -f1"`

このとき、下記のvalidationはコメントアウトして切っておかないと、形式が違うのでactivationを実行してくれない。

#is_valid_wid "$TARGET_WID" || exit 1;

そして、もとあったすでにフォーカスがあたってるWindowに対する再フォーカスをしたときには一つ前にフォーカスがあたってたWindowに再フォーカスする、という動作が無効になる副作用もある。一番初めのが元との互換性があるみたい。 ちなみに今回使った xdotoolのバージョンは下記
 $ xdotool -v
 xdotool version 2.20110530.1

記事検索
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ