2011年6月13日月曜日

Eclipse > CDT > 実装にジャンプ

ソースファイルの純粋仮想関数上で"Ctr + t"を押下すると実装先の一覧が表示され、選択してそこにジャンプできる。

2011年6月11日土曜日

Eclipse > CDT > マクロの展開

ソースファイル上のマクロにマウスポインタをのせるとツールチップに展開された形が表示される。さらにF2キーを押すと、ポップアップで表示され、下部にあるボタンを押せば、マクロが展開されていく過程を知ることができる。

2011年6月8日水曜日

GTK HelloWorld

Eclipseを使ってGTKのHelloWorldをやってみた(WindowsXP、MinGW導入済み)。
  1. Eclipseをダウンロード(CDTが同梱されているタイプ)して、インストール(解凍)。
    http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr2
  2. GTKをダンロード(All-in-one(全部入り)タイプ)して、インストール(解凍)。
    http://www.gtk.org/download/win32.php
  3. GTKインストールディレクトリにある
    "gtk+-bundle_2.22.0-20101016_win32.README.txt" ファイルに記載されているように、パスを通して(後のために環境変数に登録)、手始めにコマンドを入力する。
    >pkg-config --cflags gtk+-2.0
    >gtk-demo
  4. デモが問題なく表示されたので、Eclipseを起動、適当にC,C++プロジェクトを作成。
  5. GTKサイトのサンプルソースを作成。
    http://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD
  6. プロジェクトのプロパティからインクルードパスを通す。
    C/C++ Build > Settings ---Tool Settingタブ > GCC C++ Compiler > Includes にてパスを通す。
    %GTK_HOME%\Include\gtk-2.0
    %GTK_HOME%\Include\glib-2.0
    %GTK_HOME%\lib\gtk-2.0\include

    すべて通すのは手間がかかるので、コード補完がある程度出来る程度にしておく。コンパイルに必要なパスは、Build Variablesにて設定する。
  7. コマンドプロンプトにて以下を実行
    >pkg-config --cflags gtk+-2.0 > a.txt
    >pkg-config --libs gtk+-2.0 > b.txt
  8. コマンドでリダイレクトしたテキストファイルの内容をBuild Variablesに追加
    (プロジェクトのプロパティ > C/C++ Build > Build Variables)。最初のコマンドの内容を
    gtk-inc,次のコマンドの内容をgtk-libとでもしておく。
  9. プロジェクトのプロパティ > C/C++ Build > Settings --- Tool Settingタブ
    GCC C++ Compiler > Commandline pattern と
    MinGW C++ Linker > Commandline pattern の末尾に ${gtk-inc}と${gtk-lib}を追加。
  10. プロジェクトのビルド、実行。
久しぶりにEclipseCDTを触ってみたが、以前と比べるとIndexerが固まることがなくなったような気がする。Ctr + o でアウトラインがポップアップで表示されると、やっぱEclipseっていいなぁって思う。

2011年6月7日火曜日

「LibreOffice 3.4.0」がリリース‎

http://ja.libreoffice.org/download/3-4-new-features-and-fixes/

エクスプローラーからカレントフォルダを選択してコマンドプロンプトを開く

ずっとこういう機能があればっと思っていたが、やっと見つけることができた。
http://www.atmarkit.co.jp/fwin2k/win2ktips/325openhere/openhere.html

ソースファイルをエディタで開くときにコンテキストメニューの"送る"を利用していたが、この記事を応用して、コマンドを追加し、ステップを減らすことができた。
環境変数PATHへの追加もやってみたがこれはできなかった(set path=%path%;%L)。

2011年6月5日日曜日

vim taglistのインストール

  1. taglistをダウンロードする
  2. $HOME\vimfilesに解凍しdocとpluginフォルダを生成
  3. ctags等にパスを通す
    環境変数PATHに定義するか、_vimrcにて変数Tlist_Ctags_Cmdで実行ファイルを指定
    ($HOME\vimfiles\plugin\taglist.vim の最初の方を読むとよくわかる)
  4. vimを起動
  5. コマンドを実行してヘルプタグを生成
    :helptags $HOME\vimfiles\doc
  6. 試してみる
    :e 何かのソースファイル
    :Tlist                     (Tは大文字で)
ウィンドウが分割されてメソッドやフィールドが表示されたときは感動した(*^^*)

2011年6月4日土曜日

OpenOffice > Python, C++ > 複雑なツールバーの作成

テキストボックスやコンボボックスを持つツールバーを作成するチュートリアルをやってみた。

DeveloperGuide
http://wiki.services.openoffice.org/wiki/Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls
SDKのexampleの中に対応するサンプルソースがある(example\cpp\complextoolbarcontrols)。C++で実装してある。

http://hermione.s41.xrea.com/pukiwiki/index.php?Extensions%2FComplexToolbar
Pythonで実装してある。

C++, Pythonともによく知らないので、サンプルコードを流用してイベントを拾ったら、OpenOffice BasicのマクロにDispatchしてしまえば、簡単に面白いツールが作れると思う(DeveloperGuideのサンプルならBaseDispatch#dispatch内で)。

2011年6月3日金曜日

OpenOffice > Basic > 選択された文字列を取得

'文字列を取得する
'Calcの場合は選択されているセルの文字列
'Writerの場合は選択されている文字列
'Calcのセル内で選択されている文字のみを抽出する機能はない
Function GetSelectedText

controller = ThisComponent.CurrentController
selection = controller.getSelection()
iName = selection.ImplementationName
If iName="SwXTextRanges" Then
GetSelectedText = selection.getbyindex(0).String
ElseIf iName="ScCellObj" Then
GetSelectedText = selection.String
Else
GetSelectedText = ""
End If

End Function

vim ctags

  • タグファイルの設定
    :set tags=tagfile1,tagfile2...
  • タグジャンプする
    Ctr + ]
  • 元の位置に戻る
    Ctr + t
  • タグファイルの作成(vimのコマンドではない)
    ctags -R -f outputfile_name search_directory_path
    例 ctags -R -f c:\tags c:\project1\src
    -R 再帰

vim ヘルプ

  • helpの表示
    :help
  • コマンドを調べる
    :help command_name
  • コマンドの一覧を見る
    :help part_of_command_name<C-d>

OracleがOpenOfficeのコードをApach財団に寄贈

http://itpro.nikkeibp.co.jp/article/NEWS/20110602/360967/

2011年6月2日木曜日

OpenOffice > Python > Eclipseでデバッグ

OpenOfficeのPythonマクロをEclipseでデバッグする方法

EclipseにPydevプラグインをインストールし、Pydevプラグインの機能であるデバッグサーバーを使用することでリモートデバッグできる。あくまでもサーバーであるため、シグナルを送るのはクライアントであるPythonマクロということになる。つまりPythonマクロにサーバーにリクエストを送るためのコードを埋めこまなくてはならない。(Eclipse上でブレイクポイントも貼っても意味が無い。)

参考
http://pydev.org/manual_adv_remote_debugger.html

vim 基本

  • ディレクトリの移動
    :cd directory
  • ファイルを開く
    :e filename

  • バッファを切り替える
    :b filename
  • 次のバッファ
    :bn
  • 前のバッファ
    :bp

  • ファイルの先頭に移動
    gg
  • ファイルの末尾に移動
    G

  • 直前の操作を取り消す(アンドゥ)
    u
  • リドゥ
    Ctr + r

  • 上書きモードに移行する
    R

  • 行をコピー(ヤンク)
    yy
  • 貼りつけ(ヤンクしたものを)
    p
  • 選択範囲をクリップボードにコピー
    Ctr + Insert
  • クリップボードから貼りつけ
    Shift + Insert