firemacsを自分用に改造してみた

中見たら, すごく小さくてビックリした.
こんなに綺麗にまとまっているコード, 自分も書けるようになりたいなあ.
それで, 改造するには, chrome/content/firemacs.js だけ見れば OK みたい.



やったのはこんなこと.

  • C-o(open-line)を追加した.
  • C-/(undo)を追加した.
  • C-k(kill-line)で改行ごと消すようにした.
  • C-wでマークが選択されていなかったら, backward-kill-wordするようにした.

コードの対応部分は, こんな感じ.
「/* khiker's insert start */」から「/* khiker's insert end */」で括っている範囲が自分で足したコード.
なんか英語で書いてみた. 間違ってる可能性大^^;
まぁ, khiker's insert startで意味はだいたい通じるでしょうw

	case 'k':
	    goDoCommand('cmd_selectEndLine');
            /* khiker's insert start */
            goDoCommand('cmd_selectCharNext')
            /* khiker's insert end */
	    goDoCommand('cmd_cut');
	    e.originalTarget.fe_marked = false;
	    return true;
	case 'w':
            /* khiker's insert start */
            if(e.originalTarget.fe_marked == true){
               goDoCommand('cmd_cut');
               e.originalTarget.fe_marked = false;
             } else {
               goDoCommand('cmd_deleteWordBackward')
             }
             /* khiker's insert end */
//	    goDoCommand('cmd_cut');
//	    e.originalTarget.fe_marked = false;
	    return true;
	case 'y':
	    goDoCommand('cmd_paste');
	    return true;
        case 'h':
            goDoCommand('cmd_deleteCharBackward');
            return true;
        /* khiker's insert start */
	case 'o':
	    firemacs_insert_text('\n');
            goDoCommand('cmd_charPrevious')
	    return true;
        case '/':
            goDoCommand('cmd_undo')
            return true;
        /* khiker's insert end */


こんな簡単に改造できるとは思わなかった.
やってみるもんだなあ.