16 Mar 2013, 03:34

Cygwinでコンソールに表示されるユーザ名を変更する方法をメモ

Cygwinでログインした時のコンソールはこんな感じで表示される。

(ユーザ名)@(マシン名) ~

ここで表示される名前を変更したいと思って調べたメモです。

/etc/passwdを変更する

Linuxでユーザ管理をしているファイルが”/etc/passwd”というファイル。
なので、バックアップをとってから、これを書き換えてやる。

$cp /etc/passwd ~/etc/passwd.bk
$emacs /etc/passwd

なかを開くと文字と数字が並んでいる。
一行一行が、ユーザを表している。プロパティごとに”:“で区切られている。
各プロパティの詳細はここが詳しい。

Linux ユーザー一覧の確認と/etc/passwd ファイル

今回変更したい行を見つける。先頭の文字がユーザ名。(おそらくいちばん最後の行」
今回は、tsu-neraに変更する。

tsu-nera:unused:1000:513:U-TSUNEMICHI-VAIO\TSUNEMICHI,S-1-5-21-2209003112-325970183-628590984-1000:/home/TSUNEMICHI:/bin/bash

Cygwinを再起動すると、変更されたユーザ名が表示された。

13 Mar 2013, 11:45

Eclipseで文字数の線を表示する方法のメモ

コードが横に長くなるのは嫌いなので、一行80文字を意識してコーディングしている。
(長くなったら、一時変数を導入してリファクタリングだ!)

Eclipseで80行目に線が表示されると嬉しいと思い調べた。ちょっとハマったのでメモ。

設定方法は、[ウィンドウ] > [一般] > [エディター] > [テキスト・エディタ] を選択。
[印刷マージンの表示] にチェックを入れて、文字数入力する。

こんな感じで列の80列目に線が表示された。

(`゚Д゚´)ゞ以上!!

07 Mar 2013, 14:33

[TopCoder日記] SRM 572, Division 2

今回は、TopCoderに参加前にEclipseCoderからログインできず、かなりあたふたしたが、なんとか登録完了。

安心して、開始時間までジョギングに出かけたら見事に遅刻したorz。

Level 1: EasyHomework

与えられた配列の要素の積の符号を求める問題。与えられた配列をそのまま計算すると桁あふれするので、1/-1に要約するのがポイント。これはチョロかった。

/*
*  TopCoder
*  SRM       : 572
*  Division  : 2
*  Level     : 1
*
*  Created on: 2013/03/07
*      Author: tsu_nera
*/
#include <string>
#include <vector>
using namespace std;

class EasyHomework {

     public: string determineSign(vector<int> A) {

          // Initialization
          int rslt_integer = 1;
          int now_integer = 0;

          // Search
          for (int i = 0; i < (int)A.size(); ++i) {

               if( A[i] == 0 )     return "ZERO";

               now_integer = ( A[i] > 0) ? 1 : -1;
               rslt_integer *= now_integer;
          }

          // Judge
          return ( rslt_integer > 0 ) ? "POSITIVE"
                                        : "NEGATIVE";
     }

};

 

Level2: NextOrPrev

与えられたstart文字列を規則に従ってgoal文字列まで変形する。

変形までにかかる最小コストを求める。

ただし、変形の過程で文字列の中の文字は一意であることが条件。

反例はわかったのだが、そのアルゴリズムがわからなかった。。。挫折。

/*
 *  TopCoder
 *  SRM       : 572
 *  Division  : 2
 *  Level     : 2
 *
 *  Created on: 2013/03/06
 *      Author: tsu_nera
 */
using namespace std;

#define debug(x) cout << #x << " = " << x << endl;
#define size(a) int ((a).size())

class NextOrPrev {

public: int getMinimum( int nextCost, int prevCost, string start, string goal) {

        int cost = 0;
        int distance = 0;

        for(int i = 0; i < size(start); i++) {
               for(int j = 0; j < size(start); j++) {
                      if( ((start[i] - start[j]) * (goal[i] - goal[j]) ) < 0 ) {
                            return -1;
                     }
              }
       }

        for(int i = 0; i < size(start); i++ ) {
              distance = ( goal[i] - start[i] );

               if( distance == 0) continue;

               if( distance > 0 ) {
                     cost += nextCost * distance;
              }
               else {
                     cost -= prevCost * distance;
              }
       }

        return cost;

}

};

07 Mar 2013, 13:43

Eclipseプラグインのインストール/アップデートでNo repository found containingが出てあたふたする場合の解決方法

昨日、TopCoderに参加しようとしてEclipseからログインしようとしたら、ログインできずに焦った。こんなメッセージが表示された。

class “com.topcoder.client.netClient.ResponseWaiterManager”’s signer information does not match signer information of other classes in the same package
https://code.google.com/p/eclipsecoder/issues/detail?id=40

えっ、まじかよ!アタフタ((ヽ(;´Д`)ノ))アタフタ

ネットでいろいろと調べてみると、eclipsecoderプラグインの不具合であることがわかった。
プラグインを0.3.10以降にすればいいらしい。

Issue 40 – eclipsecoder – Arena version downloaded by Eclipsecoder is too old and doesn’t work – An Eclipse plug-in for competing at the TopCoder online algorithm competition – Google Project Hosting

早速、Eclipsecoder Coreを0.3.12にアップデートしようとしたころ、エラーしてできない。
こんなメッセージが表示された。

インストールする項目の収集中にエラーが発生しました

session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,org.apache.ant,1.8.3.v201301120609
No repository found containing: osgi.bundle,org.eclipse.ant.core,3.2.401.v20121204-162022
No repository found containing: osgi.bundle,org.eclipse.compare,3.5.301.v20130125-135424
No repository found containing: osgi.bundle,org.eclipse.compare.win32,1.0.200.v20120914-154749
No repository found containing: osgi.bundle,org.eclipse.core.commands,3.6.2.v20130123-162658
No repository found containing: osgi.bundle,org.eclipse.core.databinding,1.4.1.v20120912-132807
No repository found containing: osgi.bundle,org.eclipse.core.expressions,3.4.401.v20120912-155018
No repository found containing: osgi.bundle,org.eclipse.core.filesystem,1.3.200.v20130115-145044
No repository found containing: osgi.bundle,org.eclipse.core.jobs,3.5.300.v20120912-155018
No repository found containing: osgi.bundle,org.eclipse.core.net,1.2.200.v20120914-093638

・・・長いので、以下省略。

えっ、まじかよ!アタフタ((ヽ(;´Д`)ノ))アタフタ

さらに、ネットでいろいろと調べてみるとEclipse上にアップデートサーバの情報がキャッシュされていて、その情報が古いかららしい。キャッシュクリアのためには、以下の方法を試す。

[ウィンドウ] > [設定] > [インストール/更新] > [利用可能なソフトウェア]で、今回ダウンロードしてくるサーバを選択(今回はEclipseCoder http://fornwall.net/eclipsecoder/)し、右の[再ロード]をおす。

これで、解決するはずが・・・直らない!
EclipseCoderをアンインストールしたら、今度はインストールすらできない!

えっ、まじかよ!アタフタ((ヽ(;´Д`)ノ))アタフタ

いろいろと追い詰められた結果、以下の方法で解決した。

  1. [ウィンドウ] > [設定] > [インストール/更新] > [利用可能なソフトウェア] > [エクスポート]で利用可能なソフトウェアのリストをbookmarks.xmlに保存。
  2. 利用可能なソフトウェアを全て削除して、Eclipse再起動
  3. 再度、[利用可能なソフトウェア]にURLを追加
  4. アップデートを実施 -> 成功する
  5. bookmarks.xmlを[インポート]

なんとか間に合ってよかったよかった。

06 Mar 2013, 23:13

ザッカーバーグやビル・ゲイツなど、ブログラミングの夢と希望を語る動画に凄みを感じた

ネット上で、プログラミング教育を啓蒙する動画が話題になっている。
動画の出演者が、facebookのザッカーバーグ、Microsoftのビル・ゲイツ、twitterのジャック・ドーシー、Dropbox創業者のアンドリュー・ヒューストンなど、蒼々たる顔ぶれの方々が、プログラミングの魅力について、活き活きと語っている。

[http://www.youtube.com/embed/nKIu9yen5nc]

曰く、プログラムは、世界のいたるところに存在する。
曰く、ブログラミングは、全ての夢を可能にする。
曰く、プログラミングは、創造的な行為だ。

元気と勇気が出てくる。
影響力のあるビッグな人たちが集結しているので、凄みがある。

この動画は、学校教育でのプログラミングの教育を促進する(必須科目にする?)ことが目的らしい。codeorgというプログラミングの教育団体が作成したキャンペーン動画。

Code.org | Anybody can learn

 

プログラミングを学校で教えることには、大いに賛成だ。それは、自分がプログラミングや数学に今まで時間を費やしてきたからという、利己的な理由からかもしれないけれども。

自分が高校生のころは、すでに数学の一分野として組み入れられてはいるけれども、おまけのような扱いだった気がした(BASIC)。TopCoderのように、数学の問題をプログラミングで解くことが学校でもさればよいと思った。

05 Mar 2013, 12:49

EclipseとJenkinsをインテグレーションするプラグイン[Mylyn ビルド・コネクター Hadson/Jenkins]

Eclipseを使っていて、Jenkinsも使っていると、どうしてもEclipseからJenkinsを覗き見したくなります。(*/∀\*)イヤン。Eclipseは総合開発環境なので、全てEclipseから実施しないと気が済みません。

ということで、EclipseからJenkinsのビルド結果を確認するためのプラグイン

Mylyn ビルド・コネクター Hadson/Jenkins

を試しました。

インストールと導入設定

インストール

インストールは以下のURLを[ヘルプ] > [新規ソフトウェアのインストール] > [追加]に追加して、落としてくるのがよい。

http://download.eclipse.org/mylyn/releases/latest

(他にも、mylynのビューから[新規タスクの追加] > [コネクターをさらにインストール]からHadson/Jenkinsを選択してもよい。しかし、上記URLから落としてきたほうが最新版がテに入るので良い)

導入設定

まずは[ウィンドウ] > [ビューの設定] > [mylyn] > [ビルド]からビルドビューをだす。
次に、[新規ビルドサーバを追加] > [Jenkins]を選択する。

サーバーの欄にJenkinsサーバのURLを入力。
ユーザ管理されている場合は、ログインするユーザ・パスワードを入力。

これでいったん、左下の[検証]を押してサーバと接続できるか試す。
(できないときは、プラグインのバージョンが古いかも。
自分も古いバージョンでログインできずにハマった)

image

ビルド・プランの欄にJobが現れるので、Eclipseから見たいJobを選択して、完了をおす。

こんな感じ

ビューから最新のビルド結果を見ることができる。
また、ビルドの履歴、テスト結果、ビルド時のコンソールもみれる。
これがあれば、わざわざサーバまでアクセスして結果の確認をする必要もない。

image

また、ビルドの成功、失敗はポップアップ通知で表示されたりする。

[http://www.youtube.com/embed/2qTgUnHY7s4]

02 Mar 2013, 07:25

CppcheckをEclipse CDTに組み込んで静的解析!C/C++ユーザに嬉しい『cppcheclipse』

Eclipse CDT からCppcheckの結果が見れたら便利だなーなんて思って、Eclipseのプラグインを探してみたら、こんなのを見つけた。

cppcheclipse – Integration for cppcheck with Eclipse (CDT) – Google Project Hosting

なんと語呂がいい名前。座布団一枚だ。 というわけで、試してみる。

環境

  • Eclipse 4.2 Juno
  • Windows 7
  • Cppcheck 1.58(注:1.58でないと、Eclipse 4.2 Junoで動かなかった」

cppcheclipseのダウンロードとインストール

Eclipse CDTとCppcheckはインストールされていることが前提で。
Cppcheckがインストール方法は過去記事を参照ください。

CppCheckでC言語/C++のメモリリーク(解放漏れ)を静的解析で検出する。 | Futurismo

注:cygwinからのcppcheckでは動かないので注意すること。

cppcheclipseのインストールは、ツールバーから[ヘルプ] > [Eclipse マーケットプレイス]を選択して、cppcheckで検索すると見つかるので、インストールを選択。

image

Eclipseでの設定

インストールして再起動したら、ツールバーの[ウィンドウ] > [設定] > [C/C++]を選択する。選択項目にcppcheclipseが現れる。

まず、Cppcheckの実行バイナリを選択する。

image

次に、[設定]を選択して、cppcheck実行時のオプションを選択する。
とりあえずは、”–enable=all”だけでよい。

130302_1.png

 

cppcheckを実行する

プロジェクト・エクスプローラからcppcheckを実行したいファイルやフォルダを選択して、右クリック。[cppcheck] > [run cppcheck]を選択して、実行。

実行の結果、エラーがあった場合は[問題ビュー]から確認できる。
そのまま、該当箇所にもジャンブで移動可能なのが嬉しい。

エディタにも、エラー箇所は赤く表示される。

130302_2.png

 

[Ctrl + Alt + C]がCppcheckの実行に割り当てられている。
これで、アクティブなファイルに対して即座に静的解析が実行できる。とても便利だ。

cygwinにインストールしたcppcheckは使えない

cygwinにインストールしたcppcheckだと、cppcheckの結果を正しくEclipseがパースしてくれない。templateの指定方法が間違ってるようで、”問題”ビューにあらわれてくれない。
下のような感じで、表示されてしまう。

‘{file}:{line},{severity},{id},{message}’

WindowsにインストールしたCppcheckを使うこと。

02 Mar 2013, 02:10

setup.exeはもういらん!Cygwinでコマンドラインからインストール/アップデートする[apt-cyg]を試す

Cygwinをツールをアップデートするときに、いちいちsetup.exeを起動するのが面倒だ 。

LinuxやRubyとかみたいに、コマンドラインからインストール出来ないかなと思って調べたらありました。それが

apt-cyg

です。以下、詳細をメモメモφ(`д´)メモメモ

apt-cygとは

apt-cygとは、apt-getみたいにコマンドラインからツールのインストールやアップデートをするためのコマンド。

GoogleCodeで公開されている。

apt-cyg – A command-line software installer for Cygwin – Google Project Hosting

 

 

apt-cygのインストール方法

事前準備として、以下のコマンドをcygwinに入れておくこと。apt-cygの中で使う。

  • Base/gawk
  • Archive/bzip2
  • Base/tar
  • Net/wget

wgetで取得。

$ wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg

apt-cygは内部的にwgetを使っている。proxy環境でうまくいかない時は、wgetのプロキシ設定が必要。自分は以下の記事を参考にしました。

実行権限を与えて、パスの通った場所に置く。

$ chmod +x apt-cyg
$ mv apt-cyg /usr/bin

これだけで、インストール完了。簡単簡単。

$ apt-cyg --version
apt-cyg version 0.57
Written by Stephen Jungels

Copyright (c) 2005-9 Stephen Jungels.  Released under the GPL.

ミラーサーバの設定

cygwinの取得先を日本のサーバに指定しておく。

// 32 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86/ update
// 64 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86_64/ update

apt-cygの使い方

helpを参照

$ apt-cyg --help
apt-cyg: Installs and removes Cygwin packages.
  "apt-cyg install <package names>" to install packages
  "apt-cyg remove <package names>" to remove packages
  "apt-cyg update" to update setup.ini
  "apt-cyg show" to show installed packages
  "apt-cyg find <patterns>" to find packages matching patterns
  "apt-cyg describe <patterns>" to describe packages matching patterns
  "apt-cyg packageof <commands or files>" to locate parent packages
Options:
  --mirror, -m <url> : set mirror
  --cache, -c <dir>  : set cache
  --file, -f <file>  : read package names from file
  --noupdate, -u     : don't update setup.ini from mirror
  --help
  --version

リポジトリ(setup.ini)をアップデートする

ローカルで持っているツールの更新情報をアップデートする。

apt-cyg update

ツールをアップデートしてみる

ここでは、すでにインストールされたcppcheckをアップデートしてみる。

既存のcppcheckをまずは削除。

$apt-cyg remove cppcheck

次に、新しいcppcheckをインストールする。

$ apt-cyg install cppcheck

これで、cppcheckのバージョンが1.56から1.58にアップデートされた。

いろんなツールの更新を調べて、一気にアップデートするのはsetup.exeを使ったほうがよさそう。

追記 13/08/12

Cygwinに大きな仕様変更があったようで、32bit版と、64bit版で、Cygwinは分けられたようだ。64bit版には、inetutilsも見つからない・・・。

、久しぶりにapt-cygを実行したらエラー。

$ apt-cyg update
Working directory is /setup
Mirror is http://ftp.iij.ad.jp/pub/cygwin/
--2013-08-12 23:12:06--  http://ftp.iij.ad.jp/pub/cygwin//setup.bz2
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.143, 202.232.140.144, 2001:240:bb8f::f:300, ...
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.143|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2013-08-12 23:12:06 エラー 404: Not Found。

--2013-08-12 23:12:06--  http://ftp.iij.ad.jp/pub/cygwin//setup.ini
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.143, 202.232.140.144, 2001:240:bb8f::f:300, ...
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.143|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2013-08-12 23:12:06 エラー 404: Not Found。

Error updating setup.ini, reverting

404 Not Found…だと?

原因は、setup.iniが 32bit番と64bit番でディレクトリが分けられるようになったからだった。

http://ftp.iij.ad.jp/pub/cygwin/にアクセスすると、ディレクトリ構造が変更されていた。

ミラーサイトは以下のように、32bitと64bitで区別する必要がある。

// 32 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86/ update
// 64 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86_64/ update

正式版のapt-cygはこの仕様変更には対応していないみたい。forkしたapt-cygをみつけたので、しばらくはこっちを使うのが良さそう。

Cygwinをツールをアップデートするときに、いちいちsetup.exeを起動するのが面倒だ 。

LinuxやRubyとかみたいに、コマンドラインからインストール出来ないかなと思って調べたらありました。それが

apt-cyg

です。以下、詳細をメモメモφ(`д´)メモメモ

apt-cygとは

apt-cygとは、apt-getみたいにコマンドラインからツールのインストールやアップデートをするためのコマンド。

GoogleCodeで公開されている。

apt-cyg – A command-line software installer for Cygwin – Google Project Hosting

 

 

apt-cygのインストール方法

事前準備として、以下のコマンドをcygwinに入れておくこと。apt-cygの中で使う。

  • Base/gawk
  • Utils/bzip2
  • Utils/tar
  • Web/wget

wgetで取得。

$ wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg

apt-cygは内部的にwgetを使っている。proxy環境でうまくいかない時は、wgetのプロキシ設定が必要。自分は以下の記事を参考にしました。

実行権限を与えて、パスの通った場所に置く。

$ chmod +x apt-cyg
$ mv apt-cyg /usr/bin

これだけで、インストール完了。簡単簡単。

$ apt-cyg --version
apt-cyg version 0.57
Written by Stephen Jungels

Copyright (c) 2005-9 Stephen Jungels.  Released under the GPL.

ミラーサーバの設定

cygwinの取得先を日本のサーバに指定しておく。

// 32 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86/ update
// 64 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86_64/ update

apt-cygの使い方

helpを参照

$ apt-cyg --help
apt-cyg: Installs and removes Cygwin packages.
  "apt-cyg install <package names>" to install packages
  "apt-cyg remove <package names>" to remove packages
  "apt-cyg update" to update setup.ini
  "apt-cyg show" to show installed packages
  "apt-cyg find <patterns>" to find packages matching patterns
  "apt-cyg describe <patterns>" to describe packages matching patterns
  "apt-cyg packageof <commands or files>" to locate parent packages
Options:
  --mirror, -m <url> : set mirror
  --cache, -c <dir>  : set cache
  --file, -f <file>  : read package names from file
  --noupdate, -u     : don't update setup.ini from mirror
  --help
  --version

リポジトリ(setup.ini)をアップデートする

ローカルで持っているツールの更新情報をアップデートする。

apt-cyg update

ツールをアップデートしてみる

ここでは、すでにインストールされたcppcheckをアップデートしてみる。

既存のcppcheckをまずは削除。

$apt-cyg remove cppcheck

次に、新しいcppcheckをインストールする。

$ apt-cyg install cppcheck

これで、cppcheckのバージョンが1.56から1.58にアップデートされた。

いろんなツールの更新を調べて、一気にアップデートするのはsetup.exeを使ったほうがよさそう。

追記 13/08/12

Cygwinに大きな仕様変更があったようで、32bit版と、64bit版で、Cygwinは分けられたようだ。64bit版には、inetutilsも見つからない・・・。

、久しぶりにapt-cygを実行したらエラー。

$ apt-cyg update
Working directory is /setup
Mirror is http://ftp.iij.ad.jp/pub/cygwin/
--2013-08-12 23:12:06--  http://ftp.iij.ad.jp/pub/cygwin//setup.bz2
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.143, 202.232.140.144, 2001:240:bb8f::f:300, ...
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.143|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2013-08-12 23:12:06 エラー 404: Not Found。

--2013-08-12 23:12:06--  http://ftp.iij.ad.jp/pub/cygwin//setup.ini
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.143, 202.232.140.144, 2001:240:bb8f::f:300, ...
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.143|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2013-08-12 23:12:06 エラー 404: Not Found。

Error updating setup.ini, reverting

404 Not Found…だと?

原因は、setup.iniが 32bit番と64bit番でディレクトリが分けられるようになったからだった。

http://ftp.iij.ad.jp/pub/cygwin/にアクセスすると、ディレクトリ構造が変更されていた。

ミラーサイトは以下のように、32bitと64bitで区別する必要がある。

// 32 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86/ update
// 64 bit
$ apt-cyg -m http://ftp.iij.ad.jp/pub/cygwin/x86_64/ update

正式版のapt-cygはこの仕様変更には対応していないみたい。forkしたapt-cygをみつけたので、しばらくはこっちを使うのが良さそう。

28 Feb 2013, 23:32

汚いコードをハイライト表示するEclipseプラグイン[Bracketeer for C/C++]

複雑な条件分岐に死にたくなったことがよくあると思います。たとえば、

if(1) {
  if(2) {
    if(3) {
      if(4) {
          printf("4重カッコだお(´・ω・`)");
      }
    }
  }
} 

とか、

  if (((i_am_sleepy == true) || (i_am_happy == false))&&
      ( (i_am_angry == true)|| (i_am_sad == true))) {
     printf("わけがわからないお(´・ω・`)");
  }

Bracketeer for C/C++でできること

こんなときには、コードをハイライト表示してわかりやすくしてくれるEclipseプラグイン[Bracketeer for C/C++]がかなり便利です。

C言語/C++用のEclipseプラグイン、Bracketeer for C/C++をつかうと、カッコの対応関係がハイライトされて見やすくなる。

C/C++用のCDTの他に、Java用のJDT版もあるようだ。

Bracketeer for C/C++のインストールは、[ヘルプ] > [Eclipse マーケットプレイス]から[Bracketeer for C/C++]で検索する。

カッコの対応関係が分かる

{} だったり、 ()の対応関係が色付きのハイライト表示されるので、どこがどのカッコに対応するかがわかりやすくなります。

20130301_breaketeer_0.png

画面からはみ出る条件の表示とジャンプ

一画面に収まらない{}や()、#if/#endifの対応関係の場合、条件の終わりから先頭へジャンプするためのリンクが挿入される。ジャンプは[Ctrl]を押しながらクリック。

色で確認することもできるが、ジャンプして直接確認もできる、ということ。便利!

20130301_breaketeer_1.png

28 Feb 2013, 12:56

検索ハヤッ!Eclipseユーザにオススメのインデックスサーチするプラグイン[InstaSearch]の紹介

Eclipseのデフォルト機能での検索、けっこう遅いですね。Eclipseでも、インデックスサーチできないかなと思って調べてみたら、ありました。それが、今回紹介する、InstaSearchです。

InstaSearch – Eclipse plug-in for quick code search

 

 

インデックスサーチとは

インデックスサーチとは、検索高速化技術の一つ。
検索を事前に実施してインデックスを作成しておくことで、検索が早くなる。
Googleデスクトップだったり、Windowsサーチとかにつかわれている。

一文字ごとに検索結果が変化していく高速性が素敵だ。

InstaSearchとは

InstaSearchはインデックスサーチを利用するので、検索がとても早い。

一文字一文字入力するたびに、検索結果が絞り込まれていくので、検索にまったくイライラを感じない。もちろん、Eclipseなので、検索結果をクリックすれば検索場所にジャンプできる。拡張子やワークスベースによる絞り込み検索も可能だ。

インストールはEclipse マーケットプレイスから。
ツールバーの[ヘルプ] > [Eclipse マーケットプレイス] から[InstaSearch]で検索。

InstaSearchを使ってみる

インストールして再起動すると、すでにインデックスが構築されている。
InstaSearchというビューが増えているので、試しに検索してみよう。

20130228_instasearch

拡張子の設定は、設定画面の[Exentions of files to index]で設定。
ここは必須なので、自分が検索したい拡張子を指定しよう。

image

キーバインドを割り当てよう

[ウィンドウ] > [設定] > [一般] > [キー]からキーバインドを設定すると便利。
InstaSearchで検索して[ビューの表示]にキーバインド(例えば[Ctrl + Shift + J])を割り当てる。

インクレメンタルサーチもいっしょに高速化しよう

前回紹介した、インクレメンタルサーチを改善するプラグインも合わせて使うとオススメ。

Eclipse プラグイン「Glance」でのインクリメンタル検索が便利な件 | Futurismo

 

 

しっかり調べたいときは、InstaSearchを、
サクッと調べたいときは、Glanceを、

なんて使い分けがいいと思います。色がカラフルなのはGlanceのほう。
ただ、InstaSearchでも、開いたエディタのインクリメンタルサーチを兼ねているので、Glanceの代わりになるかも。