LoginSignup
1
2

More than 5 years have passed since last update.

Geanyで文字単位での行の折り返し(コンパイルを伴います)

Last updated at Posted at 2016-07-19

Geanyの好きなところは以下のところです。

  • 正規表現で検索・置換ができる
  • BOMが付いている付いていないが確認できるだけでなく変更もできる。
  • エンコーディングがSJISなどの日本語対応している。
  • 改行コードの変更ができる。
  • 各行の改行コードをCR, LF, CRLFで表示できる。
  • 矩形選択ができる。
  • まぁまぁ軽い。

そんな事もあってgeditと比べると多少重たいもののぼちぼちと使うエディタのひとつなんですが、行の折り返しがワード単位なのでアルファベットと日本語を含むファイルを含むとこんなふうになってしまいます。
geanyFrom.png
(文の内容はRuby 2.3.0 リファレンスマニュアル > オブジェクト から引用)

geditならこんな感じです。
geanyToGedit.jpg

それがどうも好きになれなくてgeditBracketsを優先して使っていたのですが、ある日、ふと、それなら折り返し処理のところを変更ちゃえば良いじゃない、ソースコードも公開されているハズだし、と基本的な事に気づいたので変更してみました。

環境について

今回は、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_WORDSC_WRAP_CHARに変えるだけの本当にちょこっとの変更です。

src/sciwrappers.c
@@ -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 

先ほどのファイルを開いてみると…おおっ!いい感じです。
geanyTo.jpg

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2