Subscribed unsubscribe Subscribe Subscribe

TerminalOutputzでCtrl+J, Ctrl+Mもリターンキーと同等に扱う

id:yuroyoroさんの作ったTerminalOutputz。
MacのTerminal.appでの打鍵数をoutputzに送るSIMBL Pluginを作ったよ。 - ( ꒪⌓꒪) ゆるよろ日記
ようやくソースを読んで何をやっているのかそれとなく理解したので、自分用に改変してみた。


自分はEmacsキーバインド愛好家でログイン時のパスワード入力画面以外ではまず「returnキー」を押すことがなく、Terminal.appでも基本的にCtrl+Jなどでコマンドの決定を行っているのです。
しかし上記のTerminalOutputzは「returnキー」のkeyCodeを取得して10回溜まるまで送信してくれないので、Ctrl+JやCtrl+Mキーの場合もreturnキーを押したと見なしてくれるように手を加えた。

$ svn diff TerminalOutputz.m
Index: TerminalOutputz.m
===================================================================
--- TerminalOutputz.m	(リビジョン 27288)
+++ TerminalOutputz.m	(作業コピー)
@@ -10,6 +10,8 @@
 #import "TerminalOutputzPreferences.h"
 
 static const int  RETURN_KEY_CODE = 36;
+static const int  J_KEY_CODE = 38;
+static const int  M_KEY_CODE = 46;
 
 @implementation TTView (TerminalOutputz)
 - (void)
@@ -59,7 +61,10 @@
 -(void)keyPressed:(NSEvent *) event
 {
 	[self inclementKeyCnt];
-	if( [event keyCode] ==  RETURN_KEY_CODE){
+	if ([event keyCode] == RETURN_KEY_CODE ||
+        (([event modifierFlags] & NSControlKeyMask) &&
+         ([event keyCode] == J_KEY_CODE || [event keyCode] == M_KEY_CODE))
+        ) {
 		[self inclementRetCnt];
 	}