vimを使っている人はみんなctagsで幸せになれる権利を持っている
こんにちは!飲み過ぎてよくお腹を壊す人です。
結構長い間vimを使って開発をしているのですが、じょうよわなのでこの間初めて知りました。
開発中にどこから呼ばれてるのか分からないクラスやモジュールとかをgit grep
してたんですけど、
ctagsが超便利すぎて泣いて喜んだのでメモです。
まずインストールです。macの場合はctagsというコマンド自体は最初から入っていますが、
バージョンが古いのか、なんだか仕様が若干違うのでhomebrewでinstallし直すと良いと思います。
$ brew install ctags
設定ファイルは.ctagsに書きます。
ctagsのインストールが完了したら、"tags"というindexファイルを作成します。
ソースのあるディレクトリで以下のようなコマンドを入力します。
$ ctags -R
tagsというファイルが存在していたら成功です。
また、jsファイルはデフォルトだと
ctags: Warning: ignoring null tag in XXXX.js
っていうエラーが出るので、
gist.github.com
こちらのリンク内の内容を.ctagsに追加すると、jsファイルもtagsに含めてくれると思います。
あとはvimで開いているソースコードの中で、
調べたいワードにカーソルが乗っている状態でCtrl + ]
をすると、
対象のファイルが出てきます。(カーソルも名前の一番先頭にあります。)
また、デフォルトの設定だと、今までの開いていたファイルの上に出てきちゃうので(:b#
で戻れますが)これがなかなか厄介です。
なので以下の設定を入れると、新しいタブでファイルが出てきます。
map <C-]> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
gist.github.com
こちらを参考にさせて頂きました。
これでより幸せな開発環境を手に入れることが出来ました。幸せです。
ドキュメントはこちらです。
CTAGS
git statusでsyntax checkをしよう
こんばんわ!
膝に痛みを感じた瞬間に痛風だと思った情弱です!
最近は少しだけPHPを触るようになってファッションPHPヤローみたいな生活をしている訳ですが、
Rubyに体が慣れてしまってどうしてもお昼ご飯を忘れたおばあちゃんのノリでセミコロンを忘れるので、
git status
の時についでにsyntax chackするように.gitconfigにaliasを追加しました。
結構ごりごりです。
内容としては、git status --short
で編集済みのファイルパスを取得して、
その中でphpの拡張子がついているファイルがあればphp -l
で文法チェックをしている流れです。
PHPの場合はphp -l
で文法チェックができますが、コマンドを打っているだけなので他の言語でも使えます。
Rubyでもruby -wc
とかで同じように表示されると思います。
ただ、.gitconfigにshellscriptを書く場合は記号をエスケープする必要があるので
普通に新しいファイルに同じ内容を書いて、それをaliasで読み込む方が正直やりやすいです。
[alias] st = "!f(){ . git_syntax_check.sh };f"
こんな感じ
ただ、設定ファイルをこれ以上増やすのが嫌だったので.bashrcに関数を追加してその関数を
.gitconfigから呼ぼうとして色々試してみたのですがなかなか上手くいかなかったのでこの方法にしました。
.gitconfigのaliasから他のshellscriptファイルの関数を呼ぶナイスな方法を知っている方がいたらぜひ教えてくださいスリスリ
screenのペーストバッファをclipboardにも共有させて幸せになろう
こんばんわ。アラです。
ソースコードの中のfunctionをググりたかったり、
メモしておいたものをそのままチャットで伝えたかったりするときなどに、
毎回マウスで選択してコピーして・・・ってやるのがとても面倒だったので、
screenのペーストバッファをclipboardにそのままコピー出来るようにしました。
方法は以下の設定をbashrcに入れるだけです。
流れとしては、screenでコピーしたものをbufferfileに保存して、
そのファイルの中身をcommandでclipboardに入れています。
Macじゃない人はpbcopy以外でもclipboardにコピーするcommandをpipeで繋げると同じようにいけると思います。
私は職場でSynergyを使ってMacとWindowsのマウスとキーボードを共有しているのでが、
Macで開発、Windowsで資料作成というシーンがわりと多かったのでこれはとても便利です。
秒速で幸せになれるので是非お試しください!
ubuntuのapt commandが頼もしくなって帰ってきててすごい
先日久しぶりにubuntuを触っていたら、package管理で気づいてしまいました。
すっかりMacのhomebrewに慣れてしまっていたので、
brew search
の乗りでapt-get search
と打ち込んでみると
$ apt-get search git E: Invalid operation search
怒られました。
ふぁっ?!ってなって探してみると、
$ apt-get --help ~~(略)~~ Commands: update - Retrieve new lists of packages upgrade - Perform an upgrade install - Install new packages (pkg is libc6 not libc6.deb) remove - Remove packages autoremove - Remove automatically all unused packages purge - Remove packages and config files source - Download source archives build-dep - Configure build-dependencies for source packages dist-upgrade - Distribution upgrade, see apt-get(8) dselect-upgrade - Follow dselect selections clean - Erase downloaded archive files autoclean - Erase old downloaded archive files check - Verify that there are no broken dependencies changelog - Download and display the changelog for the given package download - Download the binary package into the current directory
packageを探せそうなcommandがありません。
実はこれ、探すときはapt-cacheというのを使います。
$ apt-cache search OKOME
ちなみにapt-cacheは他に以下のようなコマンドが使えます。
$ apt-cache --help ~~(略)~~ Commands: gencaches - Build both the package and source cache showpkg - Show some general information for a single package showsrc - Show source records stats - Show some basic statistics dump - Show the entire file in a terse form dumpavail - Print an available file to stdout unmet - Show unmet dependencies search - Search the package list for a regex pattern show - Show a readable record for the package depends - Show raw dependency information for a package rdepends - Show reverse dependency information for a package pkgnames - List the names of all packages in the system dotty - Generate package graphs for GraphViz xvcg - Generate package graphs for xvcg policy - Show policy settings
なんかわかんなくなっちゃうな〜と思いながら調べていたら、
ubuntu14.04からapt commandというものが出たという情報を仕入れました。
このapt commandは、今までapt-◯◯◯と入力していたそれぞれを、
一つに統合してくれています。要するにbrew search
のノリでいけます。
apt
と入力すると以下のようにヘルプが表示されます。
$ apt apt 1.0.1ubuntu2 for amd64 compiled on Oct 28 2014 20:55:14 Usage: apt [options] command CLI for apt. Basic commands: list - list packages based on package names search - search in package descriptions show - show package details update - update list of available packages install - install packages remove - remove packages upgrade - upgrade the system by installing/upgrading packages full-upgrade - upgrade the system by removing/installing/upgrading packages edit-sources - edit the source information file
検索もapt search OKOME
と打てるので楽勝です。
しかも検索結果やinstall中の表示も色分けされていて、
見やすくなっています。
とても使いやすくなっていて心がぴょんぴょんしました。
まだ基本のところしか使っていませんが、これから色々見ていこうと思います。
あと、Macでの開発をメインに行っていましたが
vagrant等でこちらも積極的に使っていきたいと思いました。
おしまい!
brew caskを知らなかった今までの人生を取り戻したい
こんにちは。
あと2ヶ月ほどで生まれてから24年が経つ訳ですが、
今回brew caskというツールを知って今までの人生を後悔したので、
今日はそれについて書こうと思います。
Macで何かしらのアプリをwebからダウンロードする時に、
dmgファイルをダウンロードすると思います。
このdmgファイルからアプリをインストールする時の
手順がめちゃくちゃ面倒くさいなと思っていました。
ダウンロードしたdmgファイルの中身にアクセスするには
イメージのボリュームをマウントする必要がある為、
Mac先輩が自動的にデスクトップにマウントします。
その後にアプリケーションをアプリケーションフォルダにドラッグしたりします。
また、もし必要なくなったdmgファイルを削除した場合、
dmgファイルをゴミ箱に入れるだけでなく、
デスクトップにイメージがマウントされているので
それもゴミ箱に移動してからやっと削除が出来る訳です。
もう一度言いますが
手順がめちゃくちゃ面倒くさいなと思っていました。
そこで調べてみたところ、どうやらhomebrewのcaskという
ツールがよしなにやってくれることが分かったので使ってみることにしました。
公式にも載っていますが、以下のようにインストールします。
$ brew install caskroom/cask/brew-cask
あとは欲しいアプリを探して、
$ brew cask search chrome
インストールするだけです。
$ brew install google-chrome
そうすると、ちゃんとアプリケーションフォルダ内にアプリが入ってます。
無駄なファイルも他に作られていません。
めちゃくちゃ簡単ですね!
手動とCaskの手順をまとめると以下のようになります。
Manual
- download dmg file from browser
- double click dmg file & mount diskimage on desktop
- drag new application to "applications" folder & install application
- remove diskimage from desktop
Cask
- seach application on terminal
- install application
なんかえいごになっちゃいましたがCaskの方が圧倒的に操作が少ないです。
なんで今までこんな便利なもの知らなかったんだろうな・・・
2015/01/18 追記
installしたアプリのバージョンを上げたい場合は、
もう一度同じ手順でinstallをするとそのままよしなにupgradeしてくれます。
$ brew cask install virtualbox ==> Downloading http://download.virtualbox.org/virtualbox/4.3.20/VirtualBox-4.3.20-96996-OSX.dmg ######################################################################## 100.0% ==> Running installer for virtualbox; your password may be necessary. ==> Package installers may write to any location; options such as --appdir are ignored. Password: ==> installer: Package name is Oracle VM VirtualBox ==> installer: Upgrading at base path / ==> installer: The upgrade was successful. � virtualbox staged at '/opt/homebrew-cask/Caskroom/virtualbox/4.3.20-96996' (4 files, 110M)
超便利っすな〜〜〜
RaspberryPi B+ model の OSインストール から SSH接続まで
ついにゲットしましたああああ!!!
ラズパイいいいい〜〜〜!!!
ふっふーぅ↑↑↑
しかも今年の夏に発売されたばかりのB+モデルが手に入ったので、
今回はそれについて書こうと思います!
まず、Bモデルとの違いについてですが、
個人的に大きいのはUSBポートの数です。
Bの時は2つで、もっと欲しかったら
セルフパワーのハブ買ってねという感じだったので、
あ〜ぐちゃっとするな〜と思っていたのですが、
B+は4つ搭載してくれているので装着が楽 & 見た目が綺麗になりました。
あとSDカードスロットがmicroSDカードスロットになっていたり、
全体的にシュッとして(る気がし)ます。
ちなみに今回、アキバの4店舗をまわりましたがB+はやっぱり人気で
わりとどこも品薄になってきているようです。
各店舗と状況は以下の通りでした。
おみせ | 状況 |
---|---|
マルツ | 売切 |
若松通商 | 4700円 |
千石電商 | 5250円 |
あきばお〜 | 5250円 |
使うために必要なケーブル、キーボード等を全て新しく買いましたが、それでもraspi含めて合計1万円ちょっとだったのでかなり手頃だなと思いました。
電源を入れただけなのに美しいです。
OSのインストール
まず、OSのインストールから行っていきますが、
以下のサイトが非常に分かりやすく参考にさせてもらったので、
つまずいた部分だけを書いていきたいと思います。
参考: RaspberryPi - Raspberry Pi に入門してみた。 - Qiita
SDカードを差し込んでからMacのターミナルでdf
と入力すると
以下のようなディスク使用量一覧が出力されます。
$ df Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk1 487830528 224485912 262832616 47% 28124737 32854077 46% / devfs 370 370 0 100% 642 0 100% /dev map -hosts 0 0 0 100% 0 0 100% /net map auto_home 0 0 0 100% 0 0 100% /home /dev/disk2s1 7798784 6016 7792768 1% 0 0 100% /Volumes/OKOME
今回の場合は「OKOME」がSDカードです。
そして、ここでSDカードをunmountしようとすると、
$ sudo umount /Volumes/OKOME "umount(/Volumes/OKOME): Resource busy -- try 'diskutil unmount'"
diskutil unmount
をやってみてねと言われます。
言われた通りに実行してみると、
$ sudo diskutil unmount /Volumes/OKOME diskutil unmount - Unmount failed for /Volumes/OKOME
失敗されます。
しかもエラーの内容が出ないのでちょっと困ります。
実はこれ、色々原因があるそうなのですが、
FinderでSDカードの中身を開いていたり、
mvコマンド等でカード名を変更したりすると起こるエラーのようです。
一旦カードを正常に抜いてからもう一度トライすると上手く行きます。
OSの入ったSDカードをraspiに入れて電源を入れてみると、
こんな感じでインストールがスタートします。
IDとパスワードを入力するといつもの黒い画面が完成します!
ここからGUI画面にうつるには、以下のcommandを入力します。
$ startx
startのあとの「x」はXorgのxだと思われます。
参考: Xorg (日本語) - ArchWiki
GUIのデスクトップが表示されました。
SSH接続
まず、ネット接続にはLANが必要です。今回は無線LANアダプタを使いました。
ここで注意しなくてはならないのが、raspiと対応するSDカードがあるように、
無線LANアダプタにも対応している種類があるので気をつけてください!
接続していることは認識してもらえるのですが、
無線LANアダプタとして認識してもらえないことがあります。
対応するkernel moduleを作るなど、解決策はあるようですが手間がかかりそうなので、
最初から合ったものを買う方が早いかと思われます。
(今のところ、BUFFALOの製品は全体的に行けそうです。)
無線LANアダプタの接続を確認するには以下のcommandを入力します。
$ lsusb
ここで接続されているデバイスの一覧が出力されますが、
接続した無線LANの型番が表示されていたらきちんと認識されています。
また、ifconfig
でも確認できます。
("wlan0"という表示と情報が出ていればOKです。)
続いて、IPアドレス等の設定を行います。
ネットワークの設定ファイルを編集します。
raspbianにはdefaultでviも入っていましたが
キーの操作等が安定していなかったので今回はnanoを使います。
$ sudo nano /etc/network/interfaces
固定IPアドレスに変更して、IPアドレス、ネットマスク、デフォルトゲートウェイの値を設定します。
※値は例です。
auto lo iface lo inet loopback iface eth0 inet static <- 「dhcp」を「static」に変更します。 address 192.168.100.101 <- IP address netmask 255.255.255.0 <- netmask gateway 192.168.1.1 <- default gateway allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
続いて、DNSサーバの情報を変更します。
$ sudo nano /etc/resolv.conf
nameserver 8.8.8.8
という設定のアドレス部分を先ほど設定したIPアドレスに変更します。
nameserver 192.168.100.101
2ファイルの編集が完了したら設定を読み直します。
$ sudo /etc/init.d/networking reload
無線LAN設定についてはGUIでポチポチっと終わらせてしました!
以下のサイトに画像付きで説明があります。
参考: Studio ODIN - blog風小ネタ集 > Raspberry Pi で無線 LAN 接続 (2)
いよいよSSH接続を行います。
raspi上でSSHサーバを起動します。
$ sudo /etc/init.d/ssh start
raspiが起動した時に自動的にSSHサーバも起動するようにしておくには、
以下のように設定します。
$ sudo update-rc.d ssh defaults
これらの設定を終えた後、Macから接続してみます。
うまくいきました!! ちなみに、「slogin」でも「ssh」でも接続可能です。
こんな感じで、SSH接続まで無事に完了しました〜。
こういった知識が全くと言っていい程ないので超ググりながら進めましたが、
それでもここまで1時間程度で出来たのでやっぱりraspi先輩すごいなーという感じです。
これからいっぱい触っていこうと思います!
おやすみなさい!