buftabsがQuickFixに切り替わると動かなくなる

  1. いくつかファイルを開いている
  2. grepなどを実行(自動でquickfix-windowを開く設定にしている)
  3. :bwでバッファを閉じる
  4. quickfix-windowに切り替わる
  5. buftabsがきかなくなる

動かなくなる原因は、バッファを閉じてquickfix-windowに切り替わった段階で

w:buftabs_enabled
w:original_statusline

が未定義になってしまうため。

g:buftabs_enabled
g:original_statusline

と変えれば、動くようになった。

はてブのコメント一覧ページを開いたら元ページを開く

Twitterへ投稿されるURLのリンク先の初期設定がコメント一覧ページになって、無駄なページを見せられる機会が増えてつらい。
コメント一覧ページが開かれるのはあきらめて、コメント一覧ページが開かれたとしても元ページが必ず開かれているのであれば、少しはストレスが減る。

  1. Greasemonkeyで元ページを新しいタブで開く
  2. Duplicate Tabs Closerアドオンで重複していたとしても閉じられる
  3. コメント一覧ページを閉じるのは手動
// ==UserScript==
// @name        b.hatena entry openInTab
// @namespace   https://github.com/hpool/
// @include     http://b.hatena.ne.jp/entry/*
// ==/UserScript==
(function(){
    var link = document.getElementById('head-entry-link');
    GM_openInTab(link.getAttribute("href"));
})();

スペースのhighlight

行末スペースを別のhighlightにしたくて、
こんな感じの設定にしていたけど問題があった。

highlight SpecialKey cterm=underline
set list
set listchars=trail:\ ,tab:>-

highlight WhitespaceEOL guibg=red ctermbg=red
match WhitespaceEOL /\s\+$/

:editで開く場合は問題ないが、Unite.vimで開くとSpecialKeyに戻ってしまう。


以下のような設定にしたい

  • :editでもUnite.vimでもファイルを開く
  • 行末スペースのhighlightはlistcharsのSpecialKeyとは別のhighlightにしたい
  • 全角スペースも別のhighlightにしたい
" listcharsからtrailを消す

augroup HighlightSpaces
  autocmd!
  autocmd BufNew,BufRead * highlight WhitespaceEOL guibg=red ctermbg=red
  autocmd BufNew,BufRead * syntax match WhitespaceEOL /\s\+$/
  autocmd BufNew,BufRead * highlight JISX0208Space cterm=underline guifg=lightblue ctermfg=lightblue
  autocmd BufNew,BufRead * syntax match JISX0208Space " "
augroup END

これで問題なさそう。


※ 2013/1/31追記
ファイルを指定せずに起動した時にきかなかった。
highlightも変えた。

" listcharsのtrailを消す

augroup HighlightSpaces
  autocmd!
  autocmd VimEnter,ColorScheme * highlight WhitespaceEOL gui=underline guifg=red guibg=red cterm=underline ctermfg=red ctermbg=red
  autocmd VimEnter,WinEnter,BufNew,BufRead * syntax match WhitespaceEOL /\s\+$/
  autocmd VimEnter,ColorScheme * highlight JISX0208Space gui=underline guifg=lightblue cterm=underline ctermfg=lightblue
  autocmd VimEnter,WinEnter,BufNew,BufRead * syntax match JISX0208Space " "
augroup END


※ 2013/1/31 20:40 追記
ソース内でうまくきかなかった。
matchaddでやったらできた。

" listcharsのtrailはどちらでもよい

function! SetSpacesHighlight()
  highlight WhitespaceEOL gui=underline guifg=red guibg=red cterm=underline ctermfg=red ctermbg=red
  highlight JISX0208Space gui=underline guifg=lightblue cterm=underline ctermfg=lightblue
endfunction

call SetSpacesHighlight()
augroup HighlightSpaces
  autocmd!
  autocmd VimEnter,ColorScheme * call SetSpacesHighlight()
  autocmd VimEnter,WinEnter,BufNew,BufRead * match WhitespaceEOL /\s\+$/
  autocmd VimEnter,WinEnter,BufNew,BufRead * call matchadd("JISX0208Space", " ")
augroup END

JavaScriptでdisabledにするとIEではinput type=imageの場合にテキストボックスでEnterキーが効かない

IE 6,7,8で確認

<html>
<body>

JavaScriptでdisabled, input type=image → Enterキー効かない
<form>
<input type="text" id="a" />
<input type="text" />
<input type="image" />
</form>
<script type="text/javascript">
document.getElementById('a').disabled = true;
</script>

HTMLでdisabled, input type=image → Enterキー効く
<form>
<input type="text" id="b" disabled="disabled" />
<input type="text" />
<input type="image" />
</form>

JavaScriptでdisabled, input type=submit → Enterキー効く
<form>
<input type="text" id="c" />
<input type="text" />
<input type="submit" />
</form>
<script type="text/javascript">
document.getElementById('c').disabled = true;
</script>

JavaScriptでdisabled, button type=submit → Enterキー効く
<form>
<input type="text" id="d" />
<input type="text" />
<button type="submit" />
</form>
<script type="text/javascript">
document.getElementById('d').disabled = true;
</script>

</body>
</html>

VirtualBoxのCentOSの時刻同期

バージョン


VirtualBoxVMのメニューで、「デバイス」 → 「Guest Additions のインストール」

$ sudo yum install kernel-devel gcc

$ sudo mkdir /mnt/cdrom
$ sudo mount /dev/cdrom /mnt/cdrom
$ cd /mnt/cdrom


/lib/modules/2.6.18-194.el5/build のシンボリックリンクが間違ってるため実行してもエラーになる。

$ sudo ln -sf /usr/src/kernels/2.6.18-194.32.1.el5-x86_64/ /lib/modules/2.6.18.194.el5/build

$ sudo ./VBoxLinuxAdditions.run
$ sudo /etc/init.d/vboxadd setup
$ sudo /etc/init.d/vboxadd-service start

同期されるdefaultのしきい値が20分なので、1分に変える

$ sudo /usr/sbin/VBoxService --timesync-set-threshold 60000

rebootしてもリセットされないようにする

$ sudo VBoxControl guestproperty set "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 60000

テスト時のDoctrine::loadData

テストデータをロードする方法として、

<?php
Doctrine::loadData(sfConfig::get('sf_test_dir').'/fixtures');

と書いてるが、外部キーがRESTRICT型制約の場合は、削除ができないためエラーになる。


drop databaseして、create databaseして、create tableしてあげればいい。

<?php
Doctrine_Manager::connection()->dropDatabase();
Doctrine_Manager::connection()->createDatabase();
Doctrine_Core::createTablesFromModels(sfConfig::get('sf_lib_dir').'/model/doctrine');
Doctrine::loadData(sfConfig::get('sf_test_dir').'/fixtures');


drop databaseの時「だけ」、SET FOREIGN_KEY_CHECKS = 0をしてくれてるから。

<?php
    # plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Export/Mysql.php
    public function dropDatabaseSql($name)
    {
        return array(
            'SET FOREIGN_KEY_CHECKS = 0',
            'DROP DATABASE ' . $this->conn->quoteIdentifier($name),
            'SET FOREIGN_KEY_CHECKS = 1'
        );
    }