Geanyの好きなところは以下のところです。
- 正規表現で検索・置換ができる
- BOMが付いている付いていないが確認できるだけでなく変更もできる。
- エンコーディングがSJISなどの日本語対応している。
- 改行コードの変更ができる。
- 各行の改行コードをCR, LF, CRLFで表示できる。
- 矩形選択ができる。
- まぁまぁ軽い。
そんな事もあってgeditと比べると多少重たいもののぼちぼちと使うエディタのひとつなんですが、行の折り返しがワード単位なのでアルファベットと日本語を含むファイルを含むとこんなふうになってしまいます。
(文の内容はRuby 2.3.0 リファレンスマニュアル > オブジェクト から引用)
それがどうも好きになれなくてgeditやBracketsを優先して使っていたのですが、ある日、ふと、それなら折り返し処理のところを変更ちゃえば良いじゃない、ソースコードも公開されているハズだし、と基本的な事に気づいたので変更してみました。
環境について
今回は、Ubuntu 12と14 + Geany 1.28で動作確認を行なっています。
Geanyのコンパイル
Geanyからソースコードをダウンロードし解凍します。
$ tar xvfz geany-1.28.tar.gz
コンパイルします。
$ cd geany-1.28
$ ./configure
$ make
私の環境では何もエラーがでることなく順調にコンパイルできましたが、ライブラリがないといったエラーが出る場合は必要に応じてインストールします。build-essential
pkg-config
libgtk2.0-dev
intltool
あたりのパッケージが入っていれば良さそうですので、以下のコマンドを叩いてあげればだいたい揃うと思います。
$ sudo apt-get install build-essential
$ sudo apt-get install pkg-config
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install intltool
Geanyの修正
ソースコードを見たところGeanyはScintillaを使っているようです。Scintillaは文字単位の折り返しはもともとサポートされますので、ちょこっと修正するだけでいけそうです。
SC_WRAP_WORD
をSC_WRAP_CHAR
に変えるだけの本当にちょこっとの変更です。
@@ -146,7 +146,7 @@ void sci_set_visible_white_spaces(Scinti
void sci_set_lines_wrapped(ScintillaObject *sci, gboolean set)
{
if (set)
- SSM(sci, SCI_SETWRAPMODE, SC_WRAP_WORD, 0);
+ SSM(sci, SCI_SETWRAPMODE, SC_WRAP_CHAR, 0);
else
SSM(sci, SCI_SETWRAPMODE, SC_WRAP_NONE, 0);
}
再度コンパイルします。
$ make
パッケージの作成とインストール
インストールした後でアンインストールする事も考えるとパッケージした方が楽ですのでパッケージ化します。
今回はcheckinstall
というツールを使ってパッケージを作成します。checkinstall
がイントールされていない場合はsudo apt-get install checkinstall
でインストールして下さい。
以下のコマンドでパッケージを作成します。
$ sudo checkinstall
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
このソフトウェアはGNU GPLの下でリリースしています。
(省略)
**********************************************************************
Done. The new package has been saved to
/home/hachi/geany-1.28/geany_1.28-1_i386.deb
You can install it in your system anytime using:
dpkg -i geany_1.28-1_i386.deb
**********************************************************************
$
作成されたら古いGeanyを削除して、先程作成したGeanyをインストールします。実際のところcheckinstall
実行時にインストールされてしまっていますのでをインストールは必要ないと言えばないのですが…
$ sudo apt-get remove geany
$ sudo gdebi geany_1.28-1_i386.deb