vimperatorを設定する

vimperatorを前回インストールしたのですが、今回いろいろ設定したいと思います。
.vimrcを書くみたいなイメージ

自分のホームディレクトリに下記ファイル(ディレクトリ)を作ります。
HOME\_vimperatorrc (file)
HOME\vimperator\plugin (directory)

ホームディレクト

  1. コントロールパネル -> システム
  2. 詳細設定タブ -> 環境変数
  3. ユーザーの環境変数の「新規」ボタンをクリック
  4. 下記値を設定
    • 変数名:「HOME」
    • 変数値:「C:\home」(vimperatorrc を保存するフォルダを指定)

vimperatorrcの編集

_vimperatorrcを編集します。
ここで、キーマップの変更やoptionの設定などができます。

" メニューバー、ツールバーなどを表示
set guioptions=mTb
" 検索結果をハイライト
set hlsearch

" 選択文字列ののコピーを に割り当て
map Y

pluginの導入

vimと同様pluginが存在します。
pluginは下記ディレクトリにいれるだけで使えます。

HOME\vimperator\plugin

今回便利そうなので、「lookupDictionary.js」を入れてみたいと思います。
Web辞書を引いて結果をバッファウィンドウに出力してくれるらしい。


http://d.hatena.ne.jp/teramako/20080221/p1

  1. 上記サイトからlookupDictionary.jsをダウンロード
  2. ダウンロードしたファイルを「HOME\vimperator\plugin」へ移動
  3. :restart

参考ページ
http://d.hatena.ne.jp/k0y/20070919/1190257028
http://d.hatena.ne.jp/teramako/
http://d.hatena.ne.jp/kasahi/20080127

vimperatorのプラグインを書いてみる

javascriptを使ってvimperatorのpluginをかけるようなので試しに書いてみます
基本vimperatorオブジェクトを使ってごにょごにょするようです。

基本となる雛形

(function(){
    vimperator.commands.add(new vimperator.Command(
        ['コマンド名'],
        function(){
              ここに実装
	}
    ))
})();

toggleHighlight.jsの作成

vimでもそうなんですが、hlsearch(検索結果をハイライト)をよく使います。
ただ、ハイライトしっぱなしだとウザイのでこれをトグルで操作したい。
ということで、非常に簡単なpluginというかscriptですね。
作ります。

toggleHighlight.js

/**
 * lookup dictionary (vimperator plugin)
 * @author ktsukago
 * @version 0.1
 * 
 * toggle highlight
 */

(function(){
    vimperator.commands.add(new vimperator.Command(
        ['toggleHighlight'],
        function(){
            var hlsearch=vimperator.options.get('hlsearch');
 	    hlsearch.value = !hlsearch.value
	}
    ))
})();

toggleHighlightをキーバインドとして設定

$HOME/_vimperatorrcに書き記述を追加

" 検索結果のハイライトをトグルで操作
map :toggleHighlight

バックスペースでハイライトをトグルで切り替えられます

参考ページ
http://project-p.jp/halt/anubis/blog_show/848

vimのキーバインドでブラウジング

最近キーボードを買いました。

仕事では使っていたんですが、家でも同じ環境がほしくなり。ついつい2台目を、、、
せっかくHHKを買ったので家でもキーボードでブラウジングをしたいと思い
vimperatorプラグインを導入しました。

https://addons.mozilla.org/ja/firefox/addon/4891


インストール直後はメニューバーもツールバーもない男らしい仕様です。
さすがにこれだと少し不便なので、多少修正を

:set guioptions=mTb
#################################################
'guioptions' Show or hide the menu, toolbar and scrollbars

  • m: menubar
  • T: toolbar
  • b: bookmark bar

#################################################

guioptionsをセットすることで、それぞれ表示することができます。


これで困ることはあまりなくなると思うので、よく使う操作方法を
基本vimのノリで使えます

画面移動

コマンド 動作
j 下に移動
k 上に移動
ctrl+d 下に移動
ctrl+u 上に移動
gg ページの最上部へ
G ページの最下部へ

ページ遷移

コマンド 動作
gh ホームページに移動
H 戻る
L 進む
f リンクにラベルを割り当て→ラベル入力で対象ページへ遷移
:o URL URLを開く。
:o 検索語 検索語を検索する。

タブ移動

コマンド 動作
ctrl+p 前のタブへ
ctrl+n 次のタブへ
ctrl+w カレントのタブを閉じる
:b タブナンバー 対象のタブへ移動(Tabで保管できます)
gH 新しいタブでホームページを開く

便利系

コマンド 動作
/検索語 インクリメンタル検索→Enterで確定後→n:次, p:前で検索結果移動
y urlコピー
p コピーしたurlをカレントのタブで開く
I vimperator無効化(ESCで有効化)
:bmark カレントページをブックマーク
:bmarks ブックマークを表示
:help ヘルプ

注意

入力モードが日本語になっているとうまく動作しません。
フォーカスがテキストエリアなど入力系の場所にあたっているとうまく動作しません。

うーん、便利です

コードをキレイにするための変数の使い方

ktsukagoshi2008-02-25


本買いました。

ざっくりと呼んでみたんところ
いい本です。もっと早くにこの本読んでおきたかった。
簡単にできてすぐに効果があるネタがいっぱいです。



CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

「コードは書くことより読むことのほうがはるかに多い」と。。
たしかに。

てことで、わかっちゃいるけどついつい忘れそうな変数の使い方をメモ

変数の寿命はできるだけ短く

変数の寿命とは、変数が最初に参照されてから、最後に参照されるまでのステートメント数のことを指す。
これが短いほど

  • 変数を変更してから次に変更するまでに誤って変更される危険性が減る
  • コードの一部を集中的に調べればよくなり、コードの把握が容易になる
  • コードの関連する部分をルーチンとしてリファクタリングしやすくなる

もっとも狭いスコープから初めて、必要に応じてスコープを拡大していく

狭いスコープを拡大するより、広いスコープを縮小する方がはるかに難しい。
スコープの判断がつかない場合は、最初はもっとも小さく設定しておく。

変数のバインディングタイムを考える

バインディングタイムとは、変数にその値が結び付けられるタイミングのことをいう。

など。
一般的にバインディングタイムが早ければ早いほど、柔軟性がなくなり複雑性はなくなる。
逆に柔軟性が必要になればなるほど、その柔軟性をサポートするコードは複雑になる。

vimのバッファ管理

今日vimを使っててバッファの閉じ方をど忘れしました...

なのでvimバッファ関連のネタを

バッファのいいとこ

  • undo履歴を全部覚えててくれる
  • バッファ間でコピペができる
  • splitしてソースを見比べながら編集がでいる

バッファ関連のコマンド

キー操作 内容
:b $buffnum 今いるwindowに特定のバッファを呼び出す
:bd 今いるバッファを削除
:bn 次のバッファに移動
:bp 前のバッファに移動
:ls バッファ一覧を表示
:split 画面を分割
:vsplit 画面を縦に分割
:e $filename 今いるwindowにファイルを開く
:q windowの削除

毎回このコマンド打つのもだりので
バッファ関連の操作をGNU screenぽく設定すると便利。

"-----------------------------------------------------------------------------
" スクリプト設定
" GNU screen likeなキーバインド
let mapleader = "^W"
nnoremap :bn
nnoremap :bp
nnoremap n :bn
nnoremap p :bp
nnoremap d :bd
nnoremap l :ls
"bufferlist用
nnoremap :call BufferList()

ctrl+wがエスケープキーとなりスクリーンぽく操作できる。

キー操作 内容
ctrl+w n 次のバッファへ
ctrl+w p 前のバッファへ
ctrl+w d バッファを閉じる
ctrl+w ctrl+w バッファリストの表示


ちなみにバッファ一覧を表示するのに「:ls」を使うより
プラグインを使ったほうが見やすい。

今使ってるのはこれ。シンプルなのがいいです。
bufferlist.vim http://www.vim.org/scripts/script.php?script_id=1325

会議を設定するときのポイント

ktsukagoshi2008-02-20

会議を使って評価を上げる方法 http://www.geekpage.jp/blog/?id=2008/2/20

最近自分から会議を設定する機会が増えてきたので、目に留まった。

評価をあげるとかより、不毛な会議が嫌いなのでそうならないためのTipsをメモ。

会議には必ずアジェンダ(議題)があります。議題からそれまくる会議はあまり有意義ではありません。

何が話し合われる会議であるかをあらかじめ把握しておけば、議題からそれた発言をする事も減ります。また、あらかじめ調べておくと良い可能性が高いもの等を把握する事も可能です。

  • 会議で決定しなければならない事を確認しておく

大抵の会議は何かを決定するために行われます。決定しなければならない事を意識しない会議は、ダラダラと続く可能性が高くなります。決定事項を意識しながら発言を行えば、おのずと会議がスマートになっていくかも知れません。

たしかに

会議をやる前にこれくらいは最低限連絡しておくべき。

  • 議題はなにか
  • 目を通しておく資料はなにか
  • なにを決めたら終わるか
  • 議事録を取る

議事録を取る係りなどが決まっていない場合、誰も議事録を取らないという場合もあります。議事録が無い状態では、決定事項等が曖昧になることもあります。何か困った事が発生したときに、過去の議事録があれば非常に役に立ちます。

議事録を取る作業は面倒ではありますが、それ故に自ら進んでそれを行う人は重宝がられるのではないでしょうか。なお、議事録を取っているからと言って、会議に参加しないのはアウトです。議事録を取りつつも、会議に参加するという責任は果たさなければならないのが難しいところかも知れません。

また、議事録に残すべきではない/残して欲しくない発言もあります。そのような空気を感じたら、「議事録には残さない方が良いですか?」と聞いたり、ノートPCを明示的に閉じて議事録を取っていない事を示すのが良いかも知れません。

  • 簡単な報告書/まとめを作製する

議事録は、議論の生情報です。生情報は蓄積と共に膨大な量になるため、非常に見にくいものです。

生情報である議事録と共に、簡単なまとめがあれば重宝されます。まとめを作る事に時間をかけ過ぎるのは本末転倒ですが、簡単なまとめを作っておくと良いのではないでしょうか。

耳が痛い。議事録を簡単にまとめて周知するとか
当たり前のことなんですけど、めんどくさいんですよね。

、、、めんどくさいとかいってられないです。