投稿

2013の投稿を表示しています

Vimでファイルパスを関連付けられたアプリで開く

function Gnome_open () let str = matchstr ( getline ( '.' ), '\(\~\|/\|\.\.\)\=\(/\w\+\)\+\.\a\+' , 0 ) if has ( 'mac' ) let res = system ( 'open ' . str ) elseif has ( 'unix' ) let res = system ( 'gnome-open ' . str ) elseif has ( 'win32' ) let res = system ( 'start ' . str ) endif echo res endfunction command Go : call Gnome_open () 正規表現にマッチした文字をgnome-openに渡してるだけ。 vimwikiで画像を参照したくなって作ったが、外部資料との連携もしやすいはず。 ## 参考資料 * / home / user / Document / sanko . xlsx * ~/ Document / sanko . xlsx * ../ Pictures / sanko . jpg とかのファイルパス上で :Go するとどうさする。 各プラットフォームで動きそうな記述だけどGnome以外で試してない。 はじめてのVimScriptはせいきひょうげんの味がした

MarkdownとVimwikiのシンタックスを素早く切り替える

VimWikiでMarkdownに対応したのは素晴らしい事だが、 一部シンタックス機能に難があるように思う。 例えば、 バッククォートで言語を指定してもハイライトしない ```php <?php phpinfo(); ?> ``` 一色。。 改行した際リストマークが補完されない 私だけでしょうか? === や --- タイプの見出がハイライトしない Vimwikiでmarkdownを使う設定 まあ↑入れれば問題無い さくっと切り替える function Vimwiki_syntax_toggle () if ( & filetype == 'markdown' ) set filetype = vimwiki elseif ( & filetype == 'vimwiki' ) set filetype = markdown endif endfunction nmap , s : call Vimwiki_syntax_toggle ()< CR > これを.vimrcに書いておけば  ,s  で切り替わる。 以上!

PHPの "if():" タイプの注意点

PHPでのif文は3通りの書き方がある。 1つ目は、 if ( $check ) { echo 'Good!'; } else { echo 'Bad.'; } の様に中括弧を使う方法。 2つ目は、 <?php if ( $check ) echo 'Good!'; else echo 'Bad.'; の様に括弧を省略する方法。この場合  有効な行は   if   の次の行の1行だけ  という事に注意しましょう。 そして3つ目が、 <?php if ( $check ) : echo 'Good!'; else : echo 'Bad.'; endif; の様に、 if(): 〜 endif; のパターン。 WordPress等ではお馴染みですね。開始と終わりがわかりやすいのでHTMLと混在したファイルなどでよく使用されます。 このパターンを使う場合注意点が  2つ  あり、1つ目は、 else if :   の様にelseとifを分割してはいけない、  という事。 2つ目は、 elseifをネストする場合、中のif文も   if() :   形にしなければならない、  という事。 例えば、 <?php $a = true; $b = 5; $c = 'aaa'; if ($a) : if ($b == 5) echo 'OK'; elseif ($c == 'aaa') : echo 'aaa'; endif; この様な書き方は PHP Parse error: syntax error, unexpected ':' in /home/user/dev/tmp/test.php on line 8 と、エラー

Apache2(>=2.4)のVirtualHost設定でちょい嵌った

Ubuntuのapt-getで保留が気になったので、なんの考えなしに sudo apt-get dist-upgrade してしまったのが事の始まり。 今まで使っていたApache2.2系が**2.4.6**になってしまった。 バーチャルホストで dev.exampleで/var/www/example/ を読みに行くように設定していたはずが、なぜか /var/www/index.php を読む。 つまり、バーチャルホストの設定ファイルが読み込まれていない。 とりあえずapache2を再読み込み、再起動してみたら、 NameVirtualHost has no effect and will be removed in the next release なるエラーが。調べると2.4以降だと NameVirtualHost は廃止されたようなので、この行を丸っと削除。 次に/etc/apache2/sites-enabled/内のリンクを一旦削除し、/etc/apache2/sites-available/で、 sudo a2ensite dev.example すると、**ERROR: Site dev.example does not exist!** とでた。 え? あるじゃん!? ここで少し混乱(いやかなり) 散々ググった挙句(日本語情報は皆無)、 serverfault.comのこの記事 で事なきを得た。 cd /etc/apache2/sites-available sudo mv dev.example dev.example.conf sudo a2ensite dev.example.conf おっけ。 こんな微妙な仕様変更、やめて頂きたい限りである。。。

fish-shell はじめてみた

イメージ
結構前からあったんですね。zshとか設定面倒なイメージしかなくてずっとbasherだったけどfish良さ気だったので乗り換えてみた。 いいと思った機能 履歴等の補完が超強力 プロンプトに現在チェックアウトしてるGitブランチを表示出来る エラー出力があるとプロンプトが赤くなったり、他にも色でわかりやすくなってる fish-shellのインストール $ cd /usr $ git clone https://github.com/fish-shell/fish-shell.git $ autoconf $ ./configure $ make $ sudo make install 私はgithubのソースをビルドしたが、 公式サイト でパッケージをダウンロードしてインストールするほうが楽だと思う。 使ってみる $ fish gitサブコマンドの展開(tab) デフォルトのシェルにする $ sudo su # echo /usr/local/bin/fish >> /etc/shells # exit $ chsh -s /usr/local/bin/fish ※一度ログアウトしてログインし直すと設定が反映される。 help $ help で、ヘルプページがlocalhost:8000で開く。ブラウザで開く。w3m入れてるとそれで開く。 fish_config 以下コマンドでブラウザが開き、WEB上から設定ファイルを編集出来る。 $ fish_config プロンプトは私は 「pwd + (git branch) $」 とシンプルな表示にしてます。 bashとの違い 細かいところはまだわからないですが、シェルスクリプトの構文がbashとかとだいぶ違うみたいです。 ざっとわかった違いは、 サブコマンドコマンドの展開 普通bash等でサブコマンドを展開するとなると、 $ cat $(ls) とか $ cat  ls  ってすると思うけど(こんな使い方する人はいないと思うが) fishでは単純に括弧で囲うらしい。 $ cat (ls) PA