Vim

EclipseでAndroid開発

  • POST
1.0が出たのでAndroid Studioの方が良いかと。 開発環境構築 ADTバンドル版Android SDK Androidアプリケーション開発環境の構築(ADTバンドル版SDK編) – Yahoo!知恵袋を参考にして環境構築してみた。IDEはEclipse。 Java SE Downloadsから(リンク先ではJava SE 6になっているけど)最新版のJava SEをダウンロードする Android SDK | Android DevelopersからEclipseが同梱されたAndroid SDKのダウンロードする 日本語化しない場合は以下はしなくて良い。Pleiades – Eclipse プラグイン日本語化プラグイン | MergeDoc ProjectからAll in Oneではなく、プラグインのダウンロードする ダウンロードしたら、Java SEをインストールする。 Android SDKを解凍する。 Pleiadesを解凍し、pluginsとfeaturesのフォルダををAndroid SDKのフォルダのeclipseフォルダに移動させて、上書きする。 UTF-8にするために、eclipse.iniの最後に -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash -Dfile.encoding=utf-8 を加える。=default.splashをつけると、Eclipse起動時に出るロゴがAndroid Developer Toolsのものになる。 Eclipse Marketplaceを使ってインストール Eclipseをインストールして、「Help」にあるEclipse Marketplaceをクリック。androidで検索して「Android Development Tool for Eclipseをインストールする。 古いAndroid SDKとADTのインストール 本家からはリンクが無くなってしまうが、以下にリンク先が書いてあるので、ここからAndroid SDKとADTをもってくる Android 旧バージョンで開発環境を構築する 【Android TIPS】 | [email protected] [email protected][email protected][email protected]。 Eclipseの設定 基本設定 Using Eclipse | Android DevelopersのIncrease Eclipse’s Memory Settingsに従い、eclipse.

リモートサーバからクリップボードコピー&ブラウザを開く

  • POST
ssh接続したリモートサーバの出力を手元Macのクリップボードに送る – Glide Note – グライドノートやssh先screenのペーストバッファをクリップボードに貼り付ける – Keep It Simple, StupidでRemoteForwardを使って、リモートのテキストをローカルに送って、クリップボードにコピーする方法が紹介されているが、リモートのURLをブラウザで開きたいことがよくあるので、それもできるようにしてみた。 tmsanrinsha/remote2local Macでの話だけど、pbcopyの部分や、サーバを立ち上げるために使っているLaunchAgentsの部分を変更すれば、windowsでもいけるはず。 仕組み ローカルにPHPのビルトインサーバを使って、2224ポートでサーバを立ち上げる。(2224ポートは参照先に従った) サーバにapacheを使うとpbcopyが権限などの理由?でうまく行かなかったので、PHPのビルトインサーバをLaunchAgentsで立ち上げることにした。 次にRemoteForwardを使って、リモートサーバにsshする。 $ ssh -R 2224:127.0.0.1:2224 remote.com こうすると、リモートサーバの2224ポート(前の2224)への接続がローカルの2224ポート(後ろの2224)につながる。 リモート上で自分自身に向かって $ curl -n -d &#8220;url=http://example.com&#8221; &#8220;http://localhost:2224/browser&#8221; などのリクエストを送る。-nはBasic認証。 するとローカルサーバにリクエストが来るので、ローカル側でexample.comをブラウザで立ち上げる処理を書いておく。 pbcopyの場合も同じような感じ。 使い方 git cloneする。 Library/LaunchAgents/rfrouter.plistというファイルを~/Library/LaunchAgents/に絶対パスでシンボリックリンクを貼る。 ~/src/github.com/tmsanrinsha/remote2localにgit cloneした場合はこんな感じ。 ln -s ~/src/github.com/tmsanrinsha/remote2local/router.php ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/rfrouter.plistでサーバを立ち上げる。次回からはログイン時に自動的に立ち上がるようになる。 止めたい場合はlanchctl unloadする。設定を変更した時はlanchctl unloadしてからlanchctl loadする。 gitのルートディレクトリに移動して、Basic認証用のファイルを作る $ htpasswd -mc .htpasswd <username> $ chmod 600 .htpasswd -mは暗号化にMD5を使うオプション(version 2.2.18からはこれがデフォルト)。-cは新規にファイルを作るときのオプション。(htpasswd – Manage user files for basic authentication – Apache HTTP Server Version 2.

GitのhookでCtagsを実行する

  • POST
Ctagsを使って、クラス名や関数名のインデックスを記述したtagsファイルを作っておくと、vimでキーワード上にカーソルをおいて、を打つと、そのキーワードが定義された場所に飛んでくれて便利。 しかし、新たにキーワードが増えるたびにctagsを手動で実行するは面倒なのでGitのhookを使うことにする。 また、複数のプロジェクトがあるとき、各プロジェクトごとにtagsファイルを分けておくと、余計な候補が出なくてよいが、うまくやらないとプロジェクトを変えるたびに:set tagsでtagsファイルの指定を変更なくてはならないし、tagsファイルをGitのディレクトリ以下に置くと、.gitignoreで無視してやらなくてはならなかったりするので、その辺を解決させる。 まぁ、vimプラグインで有名なtpopeのtbaggery – Effortless Ctags with Git設定をほぼ訳した感じで、Vim – ctagsと連携するように環境を構築する – Qiitaでかなりまとめられている話しであるが…。 hookをつくる まず、gitのバージョンが1.7.1以上であれは、git initやcloneした時に、templatedirで指定したディレクトリ以下のファイルを.git以下にコピーしてくれるのでそれを作る。 git config --global init.templatedir '~/.git_template' mkdir -p ~/.git_template/hooks 次にctagsを実行するシェルスクリプトを~/.git_template/hooks/ctagsというファイル名で作る。 #!/usr/bin/env bash set -e PATH="$HOME/local/bin:/usr/local/bin:$PATH" cd "$(dirname "${BASH_SOURCE:-$0}")"; cd ../../ trap "rm -f .git/tags.$$" EXIT ctags --tag-relative -R -f .git/tags.$$ --exclude=.git mv .git/tags.$$ .git/tags $PATHはお好みで。 cdの部分で、gitのルートディレクトリに移動している( bash/zshでsourceされたスクリプト内で、ファイル自身の絶対パスをとるシンプルな記法 – Qiita)。hookで使われる場合は実行ディレクトリはgitのルートディレクトリなので必要ないが、それ以外でも実行したい場合に必要。 trapの部分は、このシェルスクリプトが終了時したときにtags.$$という一時ファイルを消すという意味。 $$はこのシェルスクリプトのPID。同時にシェルスクリプトが実行された時のことを考慮してる? 5行目でctagsを実行している。 –tag-relativeは生成するtagsファイルに記すパスをtagsファイルからの相対パスにするオプション。これをつけないと、ctagsを実行したディレクトリからの相対パスになってしまい、うまく扱えなくなる。ちなみにこのオプションを使う代わりにctagsの引数に` pwd`をつけるとtagsファイル内のパスが絶対パスになり、tagsファイルを移動させても、問題がなくなる。 -Rはディレクトリ以下から再帰的にインデックスを作るオプション -fは作るtagsファイルの名前の指定。指定しないとtagsというファイル名になる –exclude=.gitは.gitディレクトリ以下のファイルをインデックスの対象外にするオプション。 最後に一時ファイルを.git/tagsにリネームしている。.git以下にtagsファイルを置くことで.gitignoreで無視する手間を省いている。 gitディレクトリ以下だけでなく、他のディレクトリのファイルのインデックスを加えたいなら、このシェルスクリプトに-a(–apend=yes)のオプションをつけておき、さらに手動で ctags --tags-relative -aR -f <gitディレクトリ>/.