Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.79 KB | None | 0 0
  1. // ========================== KeySnail Init File =========================== //
  2.  
  3. // この領域は, GUI により設定ファイルを生成した際にも引き継がれます
  4. // 特殊キー, キーバインド定義, フック, ブラックリスト以外のコードは, この中に書くようにして下さい
  5. // ========================================================================= //
  6. //{{%PRESERVE%
  7. // ここにコードを入力して下さい
  8. //}}%PRESERVE%
  9. // ========================================================================= //
  10.  
  11. // ========================= Special key settings ========================== //
  12.  
  13. key.quitKey = "C-g";
  14. key.helpKey = "<f1>";
  15. key.escapeKey = "C-q";
  16. key.macroStartKey = "<f3>";
  17. key.macroEndKey = "<f4>";
  18. key.universalArgumentKey = "C-u";
  19. key.negativeArgument1Key = "C--";
  20. key.negativeArgument2Key = "C-M--";
  21. key.negativeArgument3Key = "M--";
  22. key.suspendKey = "<f2>";
  23.  
  24. // ================================= Hooks ================================= //
  25.  
  26.  
  27. hook.setHook('KeyBoardQuit', function (aEvent) {
  28. if (key.currentKeySequence.length) {
  29. return;
  30. }
  31. command.closeFindBar();
  32. var marked = command.marked(aEvent);
  33. if (util.isCaretEnabled()) {
  34. if (marked) {
  35. command.resetMark(aEvent);
  36. } else {
  37. if ("blur" in aEvent.target) {
  38. aEvent.target.blur();
  39. }
  40. gBrowser.focus();
  41. _content.focus();
  42. }
  43. } else {
  44. goDoCommand("cmd_selectNone");
  45. }
  46. if (KeySnail.windowType === "navigator:browser" && !marked) {
  47. key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_ESCAPE, true);
  48. }
  49. });
  50.  
  51.  
  52. // ============================= Key bindings ============================== //
  53.  
  54. key.setGlobalKey('C-M-r', function (ev) {
  55. userscript.reload();
  56. }, '設定ファイルを再読み込み', true);
  57.  
  58. key.setGlobalKey('M-x', function (ev, arg) {
  59. ext.select(arg, ev);
  60. }, 'エクステ一覧表示', true);
  61.  
  62. key.setGlobalKey('M-:', function (ev) {
  63. command.interpreter();
  64. }, 'JavaScript のコードを評価', true);
  65.  
  66. key.setGlobalKey(['<f1>', 'b'], function (ev) {
  67. key.listKeyBindings();
  68. }, 'キーバインド一覧を表示');
  69.  
  70. key.setGlobalKey(['<f1>', 'F'], function (ev) {
  71. openHelpLink("firefox-help");
  72. }, 'Firefox のヘルプを表示');
  73.  
  74. key.setGlobalKey('C-m', function (ev) {
  75. key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_RETURN, true);
  76. }, 'リターンコードを生成');
  77.  
  78. key.setGlobalKey(['C-x', 'l'], function (ev) {
  79. command.focusToById("urlbar");
  80. }, 'ロケーションバーへフォーカス', true);
  81.  
  82. key.setGlobalKey(['C-x', 'g'], function (ev) {
  83. command.focusToById("searchbar");
  84. }, '検索バーへフォーカス', true);
  85.  
  86. key.setGlobalKey(['C-x', 't'], function (ev) {
  87. command.focusElement(command.elementsRetrieverTextarea, 0);
  88. }, '最初のインプットエリアへフォーカス', true);
  89.  
  90. key.setGlobalKey(['C-x', 's'], function (ev) {
  91. command.focusElement(command.elementsRetrieverButton, 0);
  92. }, '最初のボタンへフォーカス', true);
  93.  
  94. key.setGlobalKey(['C-x', 'k'], function (ev) {
  95. BrowserCloseTabOrWindow();
  96. }, 'タブ / ウィンドウを閉じる');
  97.  
  98. key.setGlobalKey(['C-x', 'K'], function (ev) {
  99. closeWindow(true);
  100. }, 'ウィンドウを閉じる');
  101.  
  102. key.setGlobalKey(['C-x', 'n'], function (ev) {
  103. OpenBrowserWindow();
  104. }, 'ウィンドウを開く');
  105.  
  106. key.setGlobalKey(['C-x', 'C-c'], function (ev) {
  107. goQuitApplication();
  108. }, 'Firefox を終了', true);
  109.  
  110. key.setGlobalKey(['C-x', 'o'], function (ev, arg) {
  111. command.focusOtherFrame(arg);
  112. }, '次のフレームを選択');
  113.  
  114. key.setGlobalKey(['C-x', '1'], function (ev) {
  115. window.loadURI(ev.target.ownerDocument.location.href);
  116. }, '現在のフレームだけを表示', true);
  117.  
  118. key.setGlobalKey(['C-x', 'C-f'], function (ev) {
  119. BrowserOpenFileWindow();
  120. }, 'ファイルを開く', true);
  121.  
  122. key.setGlobalKey(['C-x', 'C-s'], function (ev) {
  123. saveDocument(window.content.document);
  124. }, 'ファイルを保存', true);
  125.  
  126. key.setGlobalKey('M-w', function (ev) {
  127. command.copyRegion(ev);
  128. }, '選択中のテキストをコピー', true);
  129.  
  130. key.setGlobalKey('C-s', function (ev) {
  131. command.iSearchForwardKs(ev);
  132. }, 'Emacs ライクなインクリメンタル検索', true);
  133.  
  134. key.setGlobalKey('C-r', function (ev) {
  135. command.iSearchBackwardKs(ev);
  136. }, 'Emacs ライクな逆方向インクリメンタル検索', true);
  137.  
  138. key.setGlobalKey(['C-c', 'u'], function (ev) {
  139. undoCloseTab();
  140. }, '閉じたタブを元に戻す');
  141.  
  142. key.setGlobalKey(['C-c', 'C-c', 'C-v'], function (ev) {
  143. toJavaScriptConsole();
  144. }, 'Javascript コンソールを表示', true);
  145.  
  146. key.setGlobalKey(['C-c', 'C-c', 'C-c'], function (ev) {
  147. command.clearConsole();
  148. }, 'Javascript コンソールの表示をクリア', true);
  149.  
  150. key.setGlobalKey('C-M-l', function (ev) {
  151. getBrowser().mTabContainer.advanceSelectedTab(1, true);
  152. }, 'ひとつ右のタブへ');
  153.  
  154. key.setGlobalKey('C-M-h', function (ev) {
  155. getBrowser().mTabContainer.advanceSelectedTab(-1, true);
  156. }, 'ひとつ左のタブへ');
  157.  
  158. key.setViewKey([['C-n'], ['j']], function (ev) {
  159. key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true);
  160. }, '一行スクロールダウン');
  161.  
  162. key.setViewKey([['C-p'], ['k']], function (ev) {
  163. key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true);
  164. }, '一行スクロールアップ');
  165.  
  166. key.setViewKey([['C-f'], ['.']], function (ev) {
  167. key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_RIGHT, true);
  168. }, '右へスクロール');
  169.  
  170. key.setViewKey([['C-b'], [',']], function (ev) {
  171. key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_LEFT, true);
  172. }, '左へスクロール');
  173.  
  174. key.setViewKey([['M-v'], ['b']], function (ev) {
  175. goDoCommand("cmd_scrollPageUp");
  176. }, '一画面分スクロールアップ');
  177.  
  178. key.setViewKey('C-v', function (ev) {
  179. goDoCommand("cmd_scrollPageDown");
  180. }, '一画面スクロールダウン');
  181.  
  182. key.setViewKey([['M-<'], ['g']], function (ev) {
  183. goDoCommand("cmd_scrollTop");
  184. }, 'ページ先頭へ移動', true);
  185.  
  186. key.setViewKey([['M->'], ['G']], function (ev) {
  187. goDoCommand("cmd_scrollBottom");
  188. }, 'ページ末尾へ移動', true);
  189.  
  190. key.setViewKey('l', function (ev) {
  191. getBrowser().mTabContainer.advanceSelectedTab(1, true);
  192. }, 'ひとつ右のタブへ');
  193.  
  194. key.setViewKey('h', function (ev) {
  195. getBrowser().mTabContainer.advanceSelectedTab(-1, true);
  196. }, 'ひとつ左のタブへ');
  197.  
  198. key.setViewKey(':', function (ev, arg) {
  199. shell.input(null, arg);
  200. }, 'コマンドの実行', true);
  201.  
  202. key.setViewKey('R', function (ev) {
  203. BrowserReload();
  204. }, '更新', true);
  205.  
  206. key.setViewKey('B', function (ev) {
  207. BrowserBack();
  208. }, '戻る');
  209.  
  210. key.setViewKey('F', function (ev) {
  211. BrowserForward();
  212. }, '進む');
  213.  
  214. key.setViewKey(['C-x', 'h'], function (ev) {
  215. goDoCommand("cmd_selectAll");
  216. }, 'すべて選択', true);
  217.  
  218. key.setViewKey('f', function (ev) {
  219. command.focusElement(command.elementsRetrieverTextarea, 0);
  220. }, '最初のインプットエリアへフォーカス', true);
  221.  
  222. key.setViewKey('M-p', function (ev) {
  223. command.walkInputElement(command.elementsRetrieverButton, true, true);
  224. }, '次のボタンへフォーカスを当てる');
  225.  
  226. key.setViewKey('M-n', function (ev) {
  227. command.walkInputElement(command.elementsRetrieverButton, false, true);
  228. }, '前のボタンへフォーカスを当てる');
  229.  
  230. key.setEditKey(['C-x', 'h'], function (ev) {
  231. command.selectAll(ev);
  232. }, '全て選択', true);
  233.  
  234. key.setEditKey([['C-x', 'u'], ['C-_']], function (ev) {
  235. display.echoStatusBar("Undo!", 2000);
  236. goDoCommand("cmd_undo");
  237. }, 'アンドゥ');
  238.  
  239. key.setEditKey(['C-x', 'r', 'd'], function (ev, arg) {
  240. command.replaceRectangle(ev.originalTarget, "", false, !arg);
  241. }, '矩形削除', true);
  242.  
  243. key.setEditKey(['C-x', 'r', 't'], function (ev) {
  244. prompt.read("String rectangle: ", function (aStr, aInput) {command.replaceRectangle(aInput, aStr);}, ev.originalTarget);
  245. }, '矩形置換', true);
  246.  
  247. key.setEditKey(['C-x', 'r', 'o'], function (ev) {
  248. command.openRectangle(ev.originalTarget);
  249. }, '矩形行空け', true);
  250.  
  251. key.setEditKey(['C-x', 'r', 'k'], function (ev, arg) {
  252. command.kill.buffer = command.killRectangle(ev.originalTarget, !arg);
  253. }, '矩形キル', true);
  254.  
  255. key.setEditKey(['C-x', 'r', 'y'], function (ev) {
  256. command.yankRectangle(ev.originalTarget, command.kill.buffer);
  257. }, '矩形ヤンク', true);
  258.  
  259. key.setEditKey([['C-SPC'], ['C-@']], function (ev) {
  260. command.setMark(ev);
  261. }, 'マークをセット', true);
  262.  
  263. key.setEditKey('C-o', function (ev) {
  264. command.openLine(ev);
  265. }, '行を開く (Open line)');
  266.  
  267. key.setEditKey('C-\\', function (ev) {
  268. display.echoStatusBar("Redo!", 2000);
  269. goDoCommand("cmd_redo");
  270. }, 'リドゥ');
  271.  
  272. key.setEditKey('C-a', function (ev) {
  273. command.beginLine(ev);
  274. }, '行頭へ移動');
  275.  
  276. key.setEditKey('C-e', function (ev) {
  277. command.endLine(ev);
  278. }, '行末へ');
  279.  
  280. key.setEditKey('C-f', function (ev) {
  281. command.nextChar(ev);
  282. }, '一文字右へ移動');
  283.  
  284. key.setEditKey('C-b', function (ev) {
  285. command.previousChar(ev);
  286. }, '一文字左へ移動');
  287.  
  288. key.setEditKey('M-f', function (ev) {
  289. command.forwardWord(ev);
  290. }, '一単語右へ移動');
  291.  
  292. key.setEditKey('M-b', function (ev) {
  293. command.backwardWord(ev);
  294. }, '一単語左へ移動');
  295.  
  296. key.setEditKey('C-n', function (ev) {
  297. command.nextLine(ev);
  298. }, '一行下へ');
  299.  
  300. key.setEditKey('C-p', function (ev) {
  301. command.previousLine(ev);
  302. }, '一行上へ');
  303.  
  304. key.setEditKey('C-v', function (ev) {
  305. command.pageDown(ev);
  306. }, '一画面分下へ');
  307.  
  308. key.setEditKey('M-v', function (ev) {
  309. command.pageUp(ev);
  310. }, '一画面分上へ');
  311.  
  312. key.setEditKey('M-<', function (ev) {
  313. command.moveTop(ev);
  314. }, 'テキストエリア先頭へ');
  315.  
  316. key.setEditKey('M->', function (ev) {
  317. command.moveBottom(ev);
  318. }, 'テキストエリア末尾へ');
  319.  
  320. key.setEditKey('C-d', function (ev) {
  321. goDoCommand("cmd_deleteCharForward");
  322. }, '次の一文字削除');
  323.  
  324. key.setEditKey('C-h', function (ev) {
  325. goDoCommand("cmd_deleteCharBackward");
  326. }, '前の一文字を削除');
  327.  
  328. key.setEditKey([['M-d'], ['M-<delete>']], function (ev) {
  329. command.deleteForwardWord(ev);
  330. }, '次の一単語を削除');
  331.  
  332. key.setEditKey('M-<backspace>', function (ev) {
  333. command.deleteBackwardWord(ev);
  334. }, '前の一単語を削除');
  335.  
  336. key.setEditKey('M-u', function (ev, arg) {
  337. command.wordCommand(ev, arg, command.upcaseForwardWord, command.upcaseBackwardWord);
  338. }, '次の一単語を全て大文字に (Upper case)');
  339.  
  340. key.setEditKey('M-l', function (ev, arg) {
  341. command.wordCommand(ev, arg, command.downcaseForwardWord, command.downcaseBackwardWord);
  342. }, '次の一単語を全て小文字に (Lower case)');
  343.  
  344. key.setEditKey('M-c', function (ev, arg) {
  345. command.wordCommand(ev, arg, command.capitalizeForwardWord, command.capitalizeBackwardWord);
  346. }, '次の一単語をキャピタライズ');
  347.  
  348. key.setEditKey('C-k', function (ev) {
  349. command.killLine(ev);
  350. }, 'カーソルから先を一行カット (Kill line)');
  351.  
  352. key.setEditKey('C-y', command.yank, '貼り付け (Yank)');
  353.  
  354. key.setEditKey('M-y', command.yankPop, '古いクリップボードの中身を順に貼り付け (Yank pop)', true);
  355.  
  356. key.setEditKey('C-M-y', function (ev) {
  357. if (!command.kill.ring.length) {
  358. return;
  359. }
  360. let (ct = command.getClipboardText()) (!command.kill.ring.length || ct != command.kill.ring[0]) &&
  361. command.pushKillRing(ct);
  362. prompt.selector({message: "Paste:", collection: command.kill.ring, callback: function (i) {if (i >= 0) {key.insertText(command.kill.ring[i]);}}});
  363. }, '以前にコピーしたテキスト一覧から選択して貼り付け', true);
  364.  
  365. key.setEditKey('C-w', function (ev) {
  366. goDoCommand("cmd_copy");
  367. goDoCommand("cmd_delete");
  368. command.resetMark(ev);
  369. }, '選択中のテキストを切り取り (Kill region)', true);
  370.  
  371. key.setEditKey('M-n', function (ev) {
  372. command.walkInputElement(command.elementsRetrieverTextarea, true, true);
  373. }, '次のテキストエリアへフォーカス');
  374.  
  375. key.setEditKey('M-p', function (ev) {
  376. command.walkInputElement(command.elementsRetrieverTextarea, false, true);
  377. }, '前のテキストエリアへフォーカス');
  378.  
  379. key.setCaretKey([['C-a'], ['^']], function (ev) {
  380. ev.target.ksMarked ? goDoCommand("cmd_selectBeginLine") : goDoCommand("cmd_beginLine");
  381. }, 'キャレットを行頭へ移動');
  382.  
  383. key.setCaretKey([['C-e'], ['$'], ['M->'], ['G']], function (ev) {
  384. ev.target.ksMarked ? goDoCommand("cmd_selectEndLine") : goDoCommand("cmd_endLine");
  385. }, 'キャレットを行末へ移動');
  386.  
  387. key.setCaretKey([['C-n'], ['j']], function (ev) {
  388. ev.target.ksMarked ? goDoCommand("cmd_selectLineNext") : goDoCommand("cmd_scrollLineDown");
  389. }, 'キャレットを一行下へ');
  390.  
  391. key.setCaretKey([['C-p'], ['k']], function (ev) {
  392. ev.target.ksMarked ? goDoCommand("cmd_selectLinePrevious") : goDoCommand("cmd_scrollLineUp");
  393. }, 'キャレットを一行上へ');
  394.  
  395. key.setCaretKey([['C-f'], ['l']], function (ev) {
  396. ev.target.ksMarked ? goDoCommand("cmd_selectCharNext") : goDoCommand("cmd_scrollRight");
  397. }, 'キャレットを一文字右へ移動');
  398.  
  399. key.setCaretKey([['C-b'], ['h'], ['C-h']], function (ev) {
  400. ev.target.ksMarked ? goDoCommand("cmd_selectCharPrevious") : goDoCommand("cmd_scrollLeft");
  401. }, 'キャレットを一文字左へ移動');
  402.  
  403. key.setCaretKey([['M-f'], ['w']], function (ev) {
  404. ev.target.ksMarked ? goDoCommand("cmd_selectWordNext") : goDoCommand("cmd_wordNext");
  405. }, 'キャレットを一単語右へ移動');
  406.  
  407. key.setCaretKey([['M-b'], ['W']], function (ev) {
  408. ev.target.ksMarked ? goDoCommand("cmd_selectWordPrevious") : goDoCommand("cmd_wordPrevious");
  409. }, 'キャレットを一単語左へ移動');
  410.  
  411. key.setCaretKey([['C-v'], ['SPC']], function (ev) {
  412. ev.target.ksMarked ? goDoCommand("cmd_selectPageNext") : goDoCommand("cmd_movePageDown");
  413. }, 'キャレットを一画面分下へ');
  414.  
  415. key.setCaretKey([['M-v'], ['b']], function (ev) {
  416. ev.target.ksMarked ? goDoCommand("cmd_selectPagePrevious") : goDoCommand("cmd_movePageUp");
  417. }, 'キャレットを一画面分上へ');
  418.  
  419. key.setCaretKey([['M-<'], ['g']], function (ev) {
  420. ev.target.ksMarked ? goDoCommand("cmd_selectTop") : goDoCommand("cmd_scrollTop");
  421. }, 'キャレットをページ先頭へ移動');
  422.  
  423. key.setCaretKey('J', function (ev) {
  424. util.getSelectionController().scrollLine(true);
  425. }, '画面を一行分下へスクロール');
  426.  
  427. key.setCaretKey('K', function (ev) {
  428. util.getSelectionController().scrollLine(false);
  429. }, '画面を一行分上へスクロール');
  430.  
  431. key.setCaretKey(',', function (ev) {
  432. util.getSelectionController().scrollHorizontal(true);
  433. goDoCommand("cmd_scrollLeft");
  434. }, '左へスクロール');
  435.  
  436. key.setCaretKey('.', function (ev) {
  437. goDoCommand("cmd_scrollRight");
  438. util.getSelectionController().scrollHorizontal(false);
  439. }, '右へスクロール');
  440.  
  441. key.setCaretKey('z', function (ev) {
  442. command.recenter(ev);
  443. }, 'キャレットの位置までスクロール');
  444.  
  445. key.setCaretKey([['C-SPC'], ['C-@']], function (ev) {
  446. command.setMark(ev);
  447. }, 'マークをセット', true);
  448.  
  449. key.setCaretKey(':', function (ev, arg) {
  450. shell.input(null, arg);
  451. }, 'コマンドの実行', true);
  452.  
  453. key.setCaretKey('R', function (ev) {
  454. BrowserReload();
  455. }, '更新', true);
  456.  
  457. key.setCaretKey('B', function (ev) {
  458. BrowserBack();
  459. }, '戻る');
  460.  
  461. key.setCaretKey('F', function (ev) {
  462. BrowserForward();
  463. }, '進む');
  464.  
  465. key.setCaretKey(['C-x', 'h'], function (ev) {
  466. goDoCommand("cmd_selectAll");
  467. }, 'すべて選択', true);
  468.  
  469. key.setCaretKey('f', function (ev) {
  470. command.focusElement(command.elementsRetrieverTextarea, 0);
  471. }, '最初のインプットエリアへフォーカス', true);
  472.  
  473. key.setCaretKey('M-p', function (ev) {
  474. command.walkInputElement(command.elementsRetrieverButton, true, true);
  475. }, '次のボタンへフォーカスを当てる');
  476.  
  477. key.setCaretKey('M-n', function (ev) {
  478. command.walkInputElement(command.elementsRetrieverButton, false, true);
  479. }, '前のボタンへフォーカスを当てる');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement