Gedit」タグアーカイブ

Gedit for Windows part1

久しぶりに Windows を使う。
何気に EmEditor pro 版のバージョンアップを始める。
ライセンスの更新をって、以前の登録キーって何だっけ?
マジで解らない事態に、Windows を使わなさすぎだ。

探したり問い合わせしたりするほど使っていないし。
ならばもういいや削除しよう、で。

代わりに秀丸を使ってみたがなんとも使いにくい。
Shift+Tab で逆インデントする手段が無いしスニペット機能も無い。
設定が多すぎてゲンナリ、よくこんなのを昔は愛用していたなと。
EmEditor の設定はもっとゴチャゴチャしていたけど。

特に Shift+Tab ができないと IronPython コードを書くのに困る。
逆インデントに BackSpace を 4 回叩くなんてやってられねぇ。
EmEditor でもマクロで強引にやっていただけだし。

あーあ、Gedit に慣れ過ぎだな筆者は。
と長い前置きはこれくらいにして。

ということで、Gedit の Windows 版を試すことにした。

gedit

gedit win32 binary にリンクがある、2.30 かよ。
Linux 版は現在 3.10 だよ。
なんか 23MB もあるし、なんでこんなにデカいのだ?

インストールしてみて驚く、GTK+, ORBit どころか Python2 まで同梱なのか。
そりゃデカくて当然。

gedit_dir

起動するとホームに .gconf, .gconfd というディレクトリが作られる。
ORBit があるし設定読み書き方法も gconf のまま Win32 化したんだね。
だから Windows でドットディレクトリは無意味だというのに。

【レビュー】世界のテキストエディターから – LinuxテキストエディターのWindows版「Gedit」 (1) Windows OSでGeditを使う | マイナビニュース

上記がエディタヲタ向けにうまくまとめていると思う。
色分けとかばかり気にして検索機能ガン無視の人ばかりだからね。

さて実際の利用ではどんな感じか。

起動遅すぎ、おまえは IronPython か!
いや、たまにしか使わないから SuperFetch は無効にしているんですけど。
とにかく秀丸と併用だとイヤでも差が気になる。

Shift+Tab は、当然のように使える。

DnD 編集も可能、やっぱり GtkSourceView だね。

デフォルト読み書きは当然 UTF-8 だが改行は CRLF になっている。
LF でもいいんだが、LF だとメモ帖で改行してくれないからだろうな。
とにかく CP932 はもう抹殺してくれ、マジでウンザリ。

外部ツールプラグインが見当たらない、あれ?

ヘルプでエラー、まさか devhelp が必要なの?

ダイアログを出してもエディタ部をホイールスクロールできる。
Windows は大抵コレができなくてもどかしいのでうれしい。
でも非アクティブではスクロールできない、GNOME とは少し違う。

プレーンテキストの保存は自分で txt の拡張子を付ける必要がある。
Linux なら常識というか拡張子なんて見分けやすい程度の意味しか無いし。

gedit_find

検索は Ctrl+F でダイアログ、Ctrl+G で次を検索。
うん Linux と同じだ、Gedit3 のニョッキのほうが使いやすいが。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

f = open("azu.txt", "w")
a = u"あずにゃんはかわいい\n".encode("utf8")
s = ""
for i in range(10000):
    s += a

f.write(s)
f.close()

こんなコードで IronPython から一万行のテキストファイルを作成。
読み込み速度は、おぉシーケンシャルで読み込むようで滅茶苦茶早い。
全置換なんて一瞬、なんと秀丸より早い。

zenchikan

十分使えるレベルというより恐るべし潜在能力だった。
プラグイン等については次回(多分)

but_active 3.0.1

意表を突いて Gedit Plugin を更新しました。

Gedit が 3.4 になって but_active が使えなくなったのは知っていた。
我ながら不便だけど多分バグでそのうち Gedit 側が対応すると思い放置。
しかしいつまでたっても…

もう仕様変更だとしか思えない、3.4 のソースをダウンロード。
gedit

3.4 には NotebookPopup 定義が無いジャン!
ソース側に移動したのかと思い grep コマンド。
関数名は見つかるけどメニュー用の定義はやっぱり無い。

gedit-notebook-popup-menu.c を見ると都度作成になっている。
マジで仕様変更だった、あーあ作り直ししなきゃ。
てゆーかもっと早く気がつけよ俺!

ドキュメントメニューに入れるように変更、他はそのまんま。
で普通に動くようになった、入らないなら例外を吐いてくれよ…

けどメニューがこの位置では使いにくいお。
ええい、キーボードショートカットを使えにしてしまえ。
Shift+Ctrl+Alt+W しか選べないな、まあいいや。
ダウンロードとスクリーンショットは以下に。

Gedit 及び Eye of Gnome プラグイン

今度から動かなくなったら早めに調べよう。
そういえば Eye of GNOME 3 のプラグインは使えるようになったかな?
使えるようならそろそろ GNOME3 対応版を作りたいな、今度調べる。

Gedit C lang

プログラミングへの意欲がすっかり無くなってきた君達(俺のこと…
ここいらで基本の基本をやり直ししたいところだ。

ということで gcc による C 言語コンパイルの基本を。
コンパイラやヘッダ類は導入済みという前提で。

Gedit を利用します。
プラグインの「コードスニペット」を有効にします。
プラグインの「外部ツール」を有効にします。

Manage External Tools… を開き以下を登録します。

#!/bin/sh
gcc $GEDIT_CURRENT_DOCUMENT_NAME

準備はコレだけです。

test.c という名前で空のファイルを作成し Gedit で開きます。
Inc と打ち込んでキーボードの Tab キーを叩きます、i だけ大文字。

上記のようなテキストが流し込まれたはず。
inc と i を小文字にすると自作ヘッダ用のダブルコーテーションになる。
Delphi(pascal) 屋の人は「それインクリメントじゃないの?」と勘違いしない。

後はお約束の stdio と打ち込み Tab キーで下方にカーソルが移動する。
スタンダード In/Out ヘッダと通ぶらずとも「スタジオえっち」で誰にでも通…(以下略
これで printf 関数が使えるようになる。

Enter キーで一段下げて main と打ち込み再び Tab キー。
main 関数が流し込まれ関数内にカーソルが移動するので printf() を書く。

コンパイルは最初に作成した外部ツールを実行するだけ。
Gedit は実はこんなに凄い!

、、、、、、、、、、

では Gedit の宣伝なので分割コンパイル方法も少し。
extern 宣言を使う方法もあるけど事実上ヘッダを利用する人しかいない。

cbr.h cbr.c という2つのファイルを同一ディレクトリに作成。

cbr.h

#include <stdio.h>

void
print_cbr(void);

stdio.h をインクルードし、関数プロトタイプのみを書く。

cbr.c

#include "cbr.h"

void
print_cbr(void)
{
    printf("でも CBR250R 買ってしまったし...\n");
}

cbr.h をインクルードし、プロトタイプの実体を作成する。

test.c も書き換え。

#include "cbr.h"

int
main (int argc, char *argv[])
{
    printf("新型 Ninja250 カッケェ!\n");
    print_cbr();
    return 0;
}

stdio.h は cbr.h で宣言されているので書く必要は無い。
プロトタイプがヘッダで宣言されているので print_cbr 関数が使える。

先ほどの外部ツールは残念ながら使えない。
$GEDIT_DOCUMENTS_PATH を使えば複数ファイルのリンクもできるけど *.c のみを全部開いている状態をビルド時に作る必要があるので逆に面倒くさい。
普通に Makefile を作って Ctrl+F8 のほうがいい。

Makefile

ninja: test.c cbr.c
	gcc -o ninja test.c cbr.c

cbr.tar.gz

以上 Gedit はこんなに凄い、ってだからぁ…
すっかり月一更新臭くなっているこのブログ、なんとかせねば。

Gedit External Tools and Seed argv

Linux に移行してからテキスト編集のほぼすべてで Gedit を愛用している。
Windows から Linux に移行できたのも Gedit が存在したからなのは確実といえる。
Gedit をシンプルという人はただの無知、Windows 的思考を早く捨てろといいたい。
Windows ではほとんど意味が無くなった環境変数が Linux では重要なのです。

前置きはこれくらいにして。
私は Python コードの Debug に長いこと以下の外部ツールを使っていた。

#! /bin/sh
python $GEDIT_CURRENT_DOCUMENT_PATH

を F5 キーに割り付けて結果をボトムペインに表示させている。
しかし最近 Seed を少しかじってたりするが、つい F5 を押してしまう。
F6 等に割り付けしても ibus に取られるのか無視されるし何より間違える。

それなら F5 からソースによりで振り分けしてしまえばいいじゃないか!
環境変数 $GEDIT_CURRENT_DOCUMENT_TYPE で ContentType が得られるので

#!/bin/sh
PYTHON="text/x-python"
SEED="application/javascript"
HTML="text/html"
BASH="application/x-shellscript"
echo @Lunning $GEDIT_CURRENT_DOCUMENT_TYPE
if [ $GEDIT_CURRENT_DOCUMENT_TYPE = $PYTHON ]; then
    python $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $SEED ]; then
    seed $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $HTML ]; then
    google-chrome $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $BASH ]; then
    sh $GEDIT_CURRENT_DOCUMENT_PATH
else
    echo Non Support File
fi

こうしておけば ContentType 次第でコマンドを変更できるじゃない。
私が現在利用するのはコレくらいだ、好みで追記とかすればいい。
ちなみに Perl の ContentType は application/x-perl である。
一部の人は「Opera じゃないのか?」とツッコまないでください。

これで Python でも Seed でもボトムペインに結果を出力できる。
そういえば Seed 名前空間にはどんなメソッドがあるのかな?
Seed で Python の dir() に相当するのは for in 文なので

#!/usr/bin/env seed

for (var s in Seed) {
    Seed.print(s);
}

と、こんな感じで利用できます。
なるほど、argv オプションはココから得るのかと解った。
for 文で取り出して、argv.length でコマンド数が得られるようだ。

#!/usr/bin/env seed

for (var i=0; i < Seed.argv.length; i++) {
    Seed.print(Seed.argv[i]);
}

Python とは違い引数の最初に seed が含まれてしまうようだ。
+x して ./ でも結果は同じ、注意しないと間違えそう。

後は for in 文を使って各名前空間のメソッドをボトムペインで調べてと。
かなり Seed プログラミングが楽になったぞと。
いや、間違えて js を Python で、というのが無くなるのが一番嬉しいか。

ここまで Gedit を利用してアプリ作ったりコードをバリバリ書いていても…
Linux 屋からみれば「コイツ vi 使えないの?ププッ!」と思われているかも…
使い方はマジで知らないですけど、サブのエディタは nano ですし。

Gedit Snippet Japanese Language GEDIT_SELECTED_TEXT

# Gedit

前回書いたように Fedora 16 で Gedit 3 のコードスニペットを利用できるようにした。
けど $GEDIT_SELECTED_TEXT で日本語が流し込めなくて困っていた。

Gedit 2 は問題なく流し込めていたのに、何とかしようと試行錯誤。
んで、何を今頃 Sunippet の公式解説サイトがあることを知った。

Gedit/Plugins/Snippets – GNOME Live!

$(echo $GEDIT_SELECTED_TEXT)

と書けば日本語でもイケた、こんなにアッサリ…
ということで Gedit Tips ページにこんなのを追加しました。

Gedit のコードスニペット – L’Isola di Niente

こんなページを作る時は本当にスニペットは重宝する。
Linux でコード補完とかほざいている輩がバカにしか思えない。

# gnome-terminal

chown コマンドでオプションを除く最初の引数はユーザー名なのだが。
コレも Tab キーで補完できるのか、知らなかった!
端末って便利だなぁ、どんどん GUI を使わなくなっていくよ。

# Nautilus

Shift+マウスでの複数選択が Explorer 同様に利用できるようになっていた。
今までは無意味にサブディレクトリが開くというワケワカな動きだったものね。
もう Shift+矢印キーに手が慣れちゃっているので気がつかなかった。

# mono

Ubuntu 11.10 には gmcs が入っていないや、もう C# はどうでもいいけど。
gcc は入っているが g++ は無い、なんだこれ…
ちなみに Fedora には絶対に mono は入れない、圧倒的に Python のほうが便利だし。
素の GNOME に含まれているのにわざわざ省いているディストリに入れたらアホだよ。