tmux をインストールした
今更ながらtmuxをインストールした備忘録です。
インストール
reattach-to-user-namespace はViモードでクリップボードへコピーする際に利用します。
(Mac) $ brew info tmux reattach-to-user-namespace (CentOS) $ sudo yum install tmux
設定
colorの設定はsoramugiさんのbashで256色表示するスクリプト用意しておくと便利 - Qiitaを利用し、jellybeans風味に仕上げてあります。
操作方法
dotfiles/tmux.markdown at master · KazuakiM/dotfiles · GitHub
参考リンク
vim-regexperを作った
追記あり
先日、2つのホットエントリーが話題になり、Vimでそういった機能はないものかと調べて、
無さそうだったため、簡易ではあるがVimでも正規表現の実装結果をサクッと確認できるようにした。
まだ調整中のため、helpなど作っていませんが、
もう少し汎用性を高めてhelp追加したいと思います。
現状、JavaScriptの正規表現のみ対応している感じです。
ソース
使い方
:RegexperExecute <第1引数>
第1引数へはチェックする正規表現
設定例
動作
regexper.comをforkしてherokuにたてたサイトにリクエストするだけのシンプルなものです。
直リンクするのは良くないだろうから、妥当な落とし所?かなと。
これから
可能であればherokuへリクエス卜せずに済ませたいと思っています。 (g)Vim上で表示するのはJavaScriptとか画像の表示が苦手なVimでは難しそうなので後回しです。
(2014/11/25 12:00 追記)
ヘルプとローカルアプリへの対応完了。
TODO: 各OSでの動作検証 TODO: 複数言語対応
previmの設定を見なおした
VimConf 2014 に参加した
初mixiさんビルです!!
mixiさんはモンス卜で盛り上がっていますが、エンジニアとしては圧倒的にdeploygateに興味がありますね。
mixiさんステッカー&deploygateのステッカー、キーホルダー(σ・∀・)σゲッツ!!
そして、初VimConf参加!!
sekicocoに登録して、いざ、オープニングから発表開始。
発表資料はこちらにまとめリンクがあります。
Identity of the Vim
1つの言語でのみ開発をするのなら、その言語に特化したエディタ/IDEを使えば良く、
Vimはマルチプラットフォームでいろいろな言語に触る場合に真価を発揮するというところに、
すごく共感でき、同じような理由で去年からVimを使い始めました。
実際にはかなりIDE感溢れてて自分でメンテナンスできるという事実を知った事が変えた大きな理由ですが...。Web系にいる以上はJavaScript、HTML5、Ruby、CoffeeScriptあたりはいつ書いてもおかしくない状況下だと思うんだよなぁ。
PM2
PM2のプロセス管理を良さ気にしてくるplugin、Vimスクリプトバリバリ書く方には便利なのかな〜といった印象を受けました。そこまで深く触れていないから若干ついていけなかった感。
ただ、普段使っているvim-quickrunには現行のPM(ProcessManager)が使われていたりと、身近に使われている印象。
あとはCiv5。ハマると抜け出せないCiv5。
f
通常のVimのマッピングで、f を全然使ってなかったけど、慣れると便利そうでした。
omapは第122回 vimrc読書会で話に出てきて導入しようと勉強最中なので、これは引き続きやります。
vim-shot-f、clever-f.vimが良さ気で導入してみたいと思いました。
vim-shot-fはfを押した後に遷移できる所をハイライト表示して、ざっくりと移動する感じ。
clever-f.vimはmapの設定を簡潔にしてf連打することで目的の場所に数ストロークで近づく感じです。この設定がある事で、","と";"を普段使っている人は救われる感じで、私も救われる一人だという事は言うまでもありません。
Hey, Java! Vim is coming.
...Now Loading
VimでJAVAを書く人という事で私の中で話題のkamichiduさんです。
JAVAのSourceそのものがでかく、その上でEclipseでメモリを喰らって辛いという話でした。
VimでJAVAを書く時に便利なpluginを教えて頂いたので、是非書く際には活用したいです。
auto closing parenthesis
終了括弧についての発表でした。Rubyを一時期使うかもと私の中で話題になった際に、vim-endwiseをいれたくらいで、
若干、痒い所に手が届いていないような気がしないでもないのですが、ultisnipsとneocomplete.vimでそこまで気になっていなかったのかもしれない感じを受けました。
発表を聞いてvim-smartinputを入れてみたい感が湧いてきました。
また、lexima.vimは完全に勘違いしてました。vim-smartinputのインスパイアpluginで.(ドット)リピートが可能との事です。
私自身が、.(ドット)リピートを使った事がないので、まずはソコから感漂ってます。
leximaは前から知っていたのですが、Vim pluginだという事を知りませんでした。
ご覧頂けただろうか、Lingrのvim-jp部屋では日常会話にさっそうと現れるleximaは皆の心を鷲掴みです。
怖くないマクロ入門
今まで使った事がない機能で、とっても勉強になりました。
すぐに使う事は出来なそうですが、このプレゼンはいつか見返すだろう事は確信しました。
懇親会ではマクロでif文を使いたいとcdepillabout さんがderis さんに質問していました。
検索等を駆使して行う事で、同様の事が出来そうと教えて頂いたので、ここに備忘録として残します。
Test for Vim script
Vimによるスライド発表でした。
Vim scriptにもTDDだって事でやはりテストコード大事、絶対て事ですね。
vim-themisはvim-jp内でかなり盛り上がってる感じでいい感じです。
Let's talk about neovim
暗黒美夢王 さんでした。
NeoVimは気になりつつも、私はディストリビューションにのるまでは静観する感じになりそうです。
私は何回か勉強会、カンファレンスに参加した事があるのですが、
Vimの勉強会ではShougo さんがライブをする事が硬い掟で定められています。
今回も熱く熱唱して頂きました。
ただ、宗教上の都合でUSTができなかったため、目下、対応策を検討中となります。
かなりすごい発表(かなり)
かなりすごかったです(かなり)
間の取り方など多くのテクニックと画像チョイスの冴え渡る発表でした(すごく)
幼女であるためにはあらゆる技術が必要なんだなと思い、羨望の眼差しで見ていました(かなり)
XVim with MacVim and smartgrep
XVim は XCode上で 仮想Vimを動作させるものらしいです。
良さ気な感じだったけど、私がXcodeを使う機会が無さそうで残念な感じではあります。
Xcode使う機会があった際には検討したいと思います。
/-improved
/ をMotionとして、捉えると途端に難しくなるイメージだけど、使いこなすと便利。
以前、簡単な動作動作確認で入れてみましたがincsearch.vimが良さ気です。
f マッピング覚えた後に導入を検討したいです。
その前にWindowsでの開発環境何とかしないと、やる事多いな。
vim script初心者に使ってもらいたい、転ばぬ先の杖「Vint」
Vintと他のLintの違い、Vintの特徴についての発表でした。
Vim script作る場合にあると便利な感じです。
Vintを使いながらVim script開発を行い、vim-themisでテストする感じが良い感じかな〜。
Jenkins + vimenv で 最新のVimを使おう!
raa0121(らぁ) さん宅では9分毎にVimのバージョンをチェックして、更新があった場合には、autobuildしているとの事。
不具合パッチを探す時にvimenvがあると調査が捗る感じですね〜。
感想
知らない知識、知っているけど触った事がない知識が多くて大変勉強になりました。
いろいろと教えて頂いたので楽しかったで終わらせず、身につけれるようにこの記事を〆めたいと思います。
Installed VirtualBox + CentOS7.0
背景 Background
最近はMacで直接開発等を行っていたのですが、
CentOSで調査したい事があったため、CentOSをインストールしようとした所、
CentOS7が出ていたため、前回の『Installed VirtualBox + CentOS6.4』の違いを記録します。
手順 Operation
VirtualBox設定
新規
- システム
メモリ
2048MB
- 起動順序
- CD/DVD-ROM
- ハードディスク
オーディオ
無効化
ネットワーク
ポートフォワーディング
名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート SSHD TCP (空) 2222 (空) 22 HTTPD TCP (空) 2223 (空) 80
OSインストール後
- システム
- 起動順序
- ハードディスク
- 起動順序
パスワードなしのsudo権限付与
# visudo (アカウント名) ALL=(ALL)ALL
SELinuxの無効化
# getenforce Enforcing # vi /etc/sysconfig/selinux SELINUX=disabled
インストール済パッケージ更新
# yum -y update
SSH自動起動設定
# chkconfig sshd on # service sshd start
ローカルPCからSSH接続確認
(localPC) $ ssh -l (アカウント名) -p 2222 localhost
再起動
(ウィンドウ無し)VM起動
(localPC) $ VBoxManage startvm (host名) --type=headless
ローカルPCからSSH接続
(localPC) $ ssh -l (アカウント名) -p 2222 localhost
SELinux確認
$ sudo getenforce Disabled
作業領域設定
$ sudo chown -R (アカウント名):(アカウント名) /usr/local $ mkdir -p $HOME/work
yumレポジトリ追加
epel
$ sudo rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-7 $ sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
ius
$ sudo rpm --import http://dl.iuscommunity.org/pub/ius/IUS-COMMUNITY-GPG-KEY $ sudo rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-13.ius.centos7.noarch.rpm
remi
$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi $ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpmforge
$ sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt $ sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
$ sudo rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
各リポジトリの設定状況確認
$ cd /etc/yum.repos.d 各リポジトリの設定をチェック
公開鍵生成
GitHubに登録する。
$ cd $ ssh-keygen $ cat .ssh/id_rsa.pub
必要なパッケージインストール
$ sudo yum install \ colordiff ctags \ gcc \ httpd \ libcurl-devel lynx \ make man-pages-ja mercurial \ ncurses-devel \ openssl openssl-devel \ perl-core perl-devel php php-devel python-devel \ ruby ruby-devel \ tree \ wget
dotfiles設定
GitHubに登録している設定ファイルを設置する
$ cd $ git clone https://github.com/KazuakiM/dotfiles work/dotfiles $ diff $HOME/work/dotfiles/.bash_logout .bash_logout $ diff $HOME/work/dotfiles/.bash_profile .bash_profile $ diff $HOME/work/dotfiles/.ctags .ctags $ diff $HOME/work/dotfiles/.gitconfig .gitconfig $ diff $HOME/work/dotfiles/.vimrc .vimrc
問題ない事を確認した上で適用する。
$ ln -sf $HOME/work/dotfiles/.bash_logout .bash_logout $ ln -sf $HOME/work/dotfiles/.bash_profile .bash_profile $ cp $HOME/work/dotfiles/.bash_profile.local . $ ln -sf $HOME/work/dotfiles/.ctags .ctags $ ln -sf $HOME/work/dotfiles/.gitconfig .gitconfig $ cp $HOME/work/dotfiles/.gitconfig.local . $ ln -sf $HOME/work/dotfiles/.mplayer .mplayer $ ln -sf $HOME/work/dotfiles/.vim .vim $ ln -sf $HOME/work/dotfiles/.vimrc .vimrc $ cp $HOME/work/dotfiles/.vimrc.local . $ ln -sf $HOME/work/dotfiles/.w3m .w3m $ exec $SHELL -l
アプリインストール
Vim pluginのQuickRunでPHPUnitを実行する
VimでPHPUnitを実行する方法は『VimからPHPUnitを実行する環境を整える』を参考にしました。
設定
設計思想
phpunit.xmlを使用しない設計としました。phpunit.xmlはプロジェクト全体で使っているため、
個人用にカスタマイズするのは現実的ではありません。
そこで、"--no-configuration"を使用します。これはphpunit.xmlを読み込めるディレクトリにいたとしてもphpunit.xmlを読み込みません。
読み込まない事によるエラーは個別で対処します。
Laravelでは"--bootstrap '〜'"を設定する必要がありました。
ココらへんのオプションなどは"phpunit --help"とプロジェクトにあるphpunit.xmlを見比べれば察する事が出来ます。
あとは実行結果をsyntax highlightで良さ気にすれば完成です。
今回は通常のPHPファイルを開いている場合には全てのテストを実行し、PHPTestファイルを開いている場合は個別に実行するという、自然な感じにしたつもりです。
問題点、改善点などありましたら、コメント頂けると助かります。
Vim でSQLの整形
VimでSQLを整形する方法を探していた所、Perlを利用するのが良さ気だったため、
試しに導入してみました。
最新版はSQL-Beautify-x.xxをご確認下さい。
SQL-Beautify設定
Perlを使った事が無いため、スマートでないかもしれません。
$ mkdir -p $HOME/.vim/SQL-Beautify $ cd /tmp $ wget http://search.cpan.org/CPAN/authors/id/J/JK/JKRAMER/SQL-Beautify-0.04.tar.gz $ tar -zxvf SQL-Beautify-*.tar.gz $ rm -f SQL-Beautify-*.tar.gz $ mv SQL-Beautify-*/* $HOME/.vim/SQL-Beautify $ cd $HOME/.vim/SQL-Beautify $ perl Build installdeps $ perl Build.PL $ perl Build
Perl スクリプト と .vimrc設定
感想
Alignを使用している場合にはSQLUtilitiesで簡単に整形できます。ただ、私は使いやすさからvim-easy-alignを使用しています。Alignとvim-easy-alignを共存させようとしましたが競合しているのかうまくいきませんでした。そこで今回の設定がいい感じに機能するわけです。
Perl初見さんなため、エライ疲れますた。。。
(追記 2014/09/15 12:05)
vim-easy-alignの設定不足が原因でAlignが悪さをしていている様に見えていた事が発覚しました(検証大事、絶対)
なので、普通にSQLUtilitiesを使った方がスマートかと思われます。