📄 csmacromgr.cpp
字号:
// $Id: CSMacroMgr.cpp,v 1.37 2005/04/22 21:42:46 genta Exp $
/*! @file
@brief マクロ
@author Norio Nakatani
@author genta
@date Sep. 29, 2001
@date 20011229 aroka バグ修正、コメント追加
$Revision: 1.37 $
*/
/*
Copyright (C) 1998-2001, Norio Nakatani
Copyright (C) 2001, genta, aroka
Copyright (C) 2002, MIK
Copyright (C) 2003, MIK
This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
*/
#include "CSMacroMgr.h"
#include "CEditView.h"
#include "CPPAMacroMgr.h"
#include "CWSHManager.h"
#include "CMacroFactory.h"
#include <stdio.h>
#include <assert.h> // 試験用
#include "debug.h"
#include "CRunningTimer.h"
MacroFuncInfo CSMacroMgr::m_MacroFuncInfoNotCommandArr[] =
{
{F_GETFILENAME, "GetFilename", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL}, //ファイル名を返す
// Oct. 19, 2002 genta
{F_GETSELECTED, "GetSelectedString", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL}, //選択部分
{F_EXPANDPARAMETER, "ExpandParameter", {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL}, //特殊文字の展開
{F_GETLINESTR, "GetLineStr", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL }, // 指定論理行の取得 2003.06.01 Moca
{F_GETLINECOUNT, "GetLineCount", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 全論理行数の取得 2003.06.01 Moca
// 終端
// Jun. 27, 2002 genta
// 終端としては決して現れないものを使うべきなので,
// FuncIDを-1に変更.(0は使われる)
{-1, NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}
};
MacroFuncInfo CSMacroMgr::m_MacroFuncInfoArr[] =
{
// 機能番号 関数名 引数 作業用バッファ
/* ファイル操作系 */
{F_FILENEW, "FileNew", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //新規作成
{F_FILEOPEN, "FileOpen", {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //開く
{F_FILESAVE, "FileSave", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //上書き保存
{F_FILESAVEALL, "FileSaveAll", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //上書き保存
{F_FILESAVEAS, "FileSaveAs", {VT_BSTR, VT_I4, VT_I4, VT_EMPTY}, VT_EMPTY, NULL}, //名前を付けて保存
{F_FILECLOSE, "FileClose", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //閉じて(無題) //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
{F_FILECLOSE_OPEN, "FileCloseOpen", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //閉じて開く
{F_FILE_REOPEN, "FileReopen", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //SJISで開き直す //Dec. 4, 2002 genta
{F_FILE_REOPEN_SJIS, "FileReopenSJIS", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //SJISで開き直す
{F_FILE_REOPEN_JIS, "FileReopenJIS", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //JISで開き直す
{F_FILE_REOPEN_EUC, "FileReopenEUC", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //EUCで開き直す
{F_FILE_REOPEN_UNICODE, "FileReopenUNICODE", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //Unicodeで開き直す
{F_FILE_REOPEN_UNICODEBE, "FileReopenUNICODEBE", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //UnicodeBEで開き直す
{F_FILE_REOPEN_UTF8, "FileReopenUTF8", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //UTF-8で開き直す
{F_FILE_REOPEN_UTF7, "FileReopenUTF7", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //UTF-7で開き直す
{F_PRINT, "Print", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //印刷
// {F_PRINT_DIALOG, "PrintDialog", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //印刷ダイアログ
{F_PRINT_PREVIEW, "PrintPreview", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //印刷プレビュー
{F_PRINT_PAGESETUP, "PrintPageSetup", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //印刷ページ設定 //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
{F_OPEN_HfromtoC, "OpenHfromtoC", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //同名のC/C++ヘッダ(ソース)を開く //Feb. 7, 2001 JEPRO 追加
{F_OPEN_HHPP, "OpenHHpp", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //同名のC/C++ヘッダファイルを開く //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
{F_OPEN_CCPP, "OpenCCpp", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //同名のC/C++ソースファイルを開く //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
{F_ACTIVATE_SQLPLUS, "ActivateSQLPLUS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* Oracle SQL*Plusをアクティブ表示 */
{F_PLSQL_COMPILE_ON_SQLPLUS, "ExecSQLPLUS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* Oracle SQL*Plusで実行 */
{F_BROWSE, "Browse", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //ブラウズ
{F_READONLY, "ReadOnly", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //読み取り専用
{F_PROPERTY_FILE, "PropertyFile", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //ファイルのプロパティ
{F_EXITALL, "ExitAll", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //サクラエディタの全終了 //Dec. 27, 2000 JEPRO 追加
/* 編集系 */
{F_CHAR, "Char", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //文字入力
{F_IME_CHAR, "CharIme", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //全角文字入力
{F_UNDO, "Undo", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //元に戻す(Undo)
{F_REDO, "Redo", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //やり直し(Redo)
{F_DELETE, "Delete", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //削除
{F_DELETE_BACK, "DeleteBack", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル前を削除
{F_WordDeleteToStart, "WordDeleteToStart", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語の左端まで削除
{F_WordDeleteToEnd, "WordDeleteToEnd", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語の右端まで削除
{F_WordCut, "WordCut", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語切り取り
{F_WordDelete, "WordDelete", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語削除
{F_LineCutToStart, "LineCutToStart", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行頭まで切り取り(改行単位)
{F_LineCutToEnd, "LineCutToEnd", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行末まで切り取り(改行単位)
{F_LineDeleteToStart, "LineDeleteToStart", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行頭まで削除(改行単位)
{F_LineDeleteToEnd, "LineDeleteToEnd", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行末まで削除(改行単位)
{F_CUT_LINE, "CutLine", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行切り取り(折り返し単位)
{F_DELETE_LINE, "DeleteLine", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行削除(折り返し単位)
{F_DUPLICATELINE, "DuplicateLine", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行の二重化(折り返し単位)
{F_INDENT_TAB, "IndentTab", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //TABインデント
{F_UNINDENT_TAB, "UnindentTab", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //逆TABインデント
{F_INDENT_SPACE, "IndentSpace", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //SPACEインデント
{F_UNINDENT_SPACE, "UnindentSpace", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //逆SPACEインデント
// {F_WORDSREFERENCE, "WordReference", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語リファレンス
{F_LTRIM, "LTrim", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //左(先頭)の空白を削除 2001.12.03 hor
{F_RTRIM, "RTrim", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //右(末尾)の空白を削除 2001.12.03 hor
{F_SORT_ASC, "SortAsc", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択行の昇順ソート 2001.12.06 hor
{F_SORT_DESC, "SortDesc", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択行の降順ソート 2001.12.06 hor
{F_MERGE, "Merge", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択行のマージ 2001.12.06 hor
/* カーソル移動系 */
{F_UP, "Up", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル上移動
{F_DOWN, "Down", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル下移動
{F_LEFT, "Left", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル左移動
{F_RIGHT, "Right", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル右移動
{F_UP2, "Up2", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル上移動(2行ごと)
{F_DOWN2, "Down2", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル下移動(2行ごと)
{F_WORDLEFT, "WordLeft", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語の左端に移動
{F_WORDRIGHT, "WordRight", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //単語の右端に移動
{F_GOLINETOP, "GoLineTop", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行頭に移動(折り返し単位)
{F_GOLINEEND, "GoLineEnd", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //行末に移動(折り返し単位)
{F_HalfPageUp, "HalfPageUp", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
{F_HalfPageDown, "HalfPageDown", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
{F_1PageUp, "1PageUp", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //1ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し1ページアップを追加
{F_1PageDown, "1PageDown", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //1ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し1ページダウンを追加
{F_GOFILETOP, "GoFileTop", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //ファイルの先頭に移動
{F_GOFILEEND, "GoFileEnd", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //ファイルの最後に移動
{F_CURLINECENTER, "CurLineCenter", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //カーソル行をウィンドウ中央へ
{F_JUMPHIST_PREV, "MoveHistPrev", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //移動履歴: 前へ
{F_JUMPHIST_NEXT, "MoveHistNext", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //移動履歴: 次へ
{F_JUMPHIST_SET, "MoveHistSet", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //現在位置を移動履歴に登録
{F_WndScrollDown, "F_WndScrollDown", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //テキストを1行下へスクロール // 2001/06/20 asa-o
{F_WndScrollUp, "F_WndScrollUp", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //テキストを1行上へスクロール // 2001/06/20 asa-o
{F_GONEXTPARAGRAPH, "GoNextParagraph", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //次の段落へ移動
{F_GOPREVPARAGRAPH, "GoPrevParagraph", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //前の段落へ移動
/* 選択系 */ //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので「選択系」として独立化(サブメニュー化は構造上できないので)
{F_SELECTWORD, "SelectWord", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //現在位置の単語選択
{F_SELECTALL, "SelectAll", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //すべて選択
{F_BEGIN_SEL, "BeginSelect", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //範囲選択開始 Mar. 5, 2001 genta 名称修正
{F_UP_SEL, "Up_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル上移動
{F_DOWN_SEL, "Down_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル下移動
{F_LEFT_SEL, "Left_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル左移動
{F_RIGHT_SEL, "Right_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル右移動
{F_UP2_SEL, "Up2_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル上移動(2行ごと)
{F_DOWN2_SEL, "Down2_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)カーソル下移動(2行ごと)
{F_WORDLEFT_SEL, "WordLeft_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)単語の左端に移動
{F_WORDRIGHT_SEL, "WordRight_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)単語の右端に移動
{F_GOLINETOP_SEL, "GoLineTop_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)行頭に移動(折り返し単位)
{F_GOLINEEND_SEL, "GoLineEnd_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)行末に移動(折り返し単位)
{F_HalfPageUp_Sel, "HalfPageUp_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
{F_HalfPageDown_Sel, "HalfPageDown_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
{F_1PageUp_Sel, "1PageUp_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)1ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し1ページアップを追加
{F_1PageDown_Sel, "1PageDown_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)1ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し1ページダウンを追加
{F_GOFILETOP_SEL, "GoFileTop_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)ファイルの先頭に移動
{F_GOFILEEND_SEL, "GoFileEnd_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //(範囲選択)ファイルの最後に移動
{F_GONEXTPARAGRAPH_SEL, "GoNextParagraph_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //次の段落へ移動
{F_GOPREVPARAGRAPH_SEL, "GoPrevParagraph_Sel", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //前の段落へ移動
/* 矩形選択系 */ //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
{F_BEGIN_BOX, "BeginBoxSelect", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //矩形範囲選択開始
/* クリップボード系 */
{F_CUT, "Cut", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //切り取り(選択範囲をクリップボードにコピーして削除)
{F_COPY, "Copy", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //コピー(選択範囲をクリップボードにコピー)
{F_PASTE, "Paste", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //貼り付け(クリップボードから貼り付け)
{F_COPY_ADDCRLF, "CopyAddCRLF", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //折り返し位置に改行をつけてコピー
{F_COPY_CRLF, "CopyCRLF", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //CRLF改行でコピー(選択範囲を改行コード=CRLFでコピー)
{F_PASTEBOX, "PasteBox", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //矩形貼り付け(クリップボードから矩形貼り付け)
{F_INSTEXT, "InsText", {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, // テキストを貼り付け
{F_ADDTAIL, "AddTail", {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, // 最後にテキストを追加
{F_COPYLINES, "CopyLines", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択範囲内全行コピー
{F_COPYLINESASPASSAGE, "CopyLinesAsPassage", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択範囲内全行引用符付きコピー
{F_COPYLINESWITHLINENUMBER, "CopyLinesWithLineNumber", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //選択範囲内全行行番号付きコピー
{F_COPYPATH, "CopyPath", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //このファイルのパス名をクリップボードにコピー
{F_COPYFNAME, "CopyFilename", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //このファイル名をクリップボードにコピー // 2002/2/3 aroka
{F_COPYTAG, "CopyTag", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //このファイルのパス名とカーソル位置をコピー //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
{F_CREATEKEYBINDLIST, "CopyKeyBindList", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 追加 //Dec. 25, 2000 復活
/* 挿入系 */
{F_INS_DATE, "InsertDate", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, // 日付挿入
{F_INS_TIME, "InsertTime", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, // 時刻挿入
{F_CTRL_CODE_DIALOG, "CtrlCodeDialog", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //コントロールコードの入力(ダイアログ) //@@@ 2002.06.02 MIK
/* 変換系 */
{F_TOLOWER, "ToLower", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //英大文字→英小文字
{F_TOUPPER, "ToUpper", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //英小文字→英大文字
{F_TOHANKAKU, "ToHankaku", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 全角→半角 */
{F_TOHANKATA, "ToHankata", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 全角カタカナ→半角カタカナ */ //Aug. 29, 2002 ai
{F_TOZENEI, "ToZenEi", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 半角英数→全角英数 */ //July. 30, 2001 Misaka
{F_TOHANEI, "ToHanEi", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 全角英数→半角英数 */
{F_TOZENKAKUKATA, "ToZenKata", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 半角+全ひら→全角?カタカナ */ //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
{F_TOZENKAKUHIRA, "ToZenHira", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 半角+全カタ→全角?ひらがな */ //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
{F_HANKATATOZENKAKUKATA, "HanKataToZenKata", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 半角カタカナ→全角カタカナ */
{F_HANKATATOZENKAKUHIRA, "HanKataToZenHira", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 半角カタカナ→全角ひらがな */
{F_TABTOSPACE, "TABToSPACE", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* TAB→空白 */
{F_SPACETOTAB, "SPACEToTAB", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 空白→TAB */ //#### Stonee, 2001/05/27
{F_CODECNV_AUTO2SJIS, "AutoToSJIS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, /* 自動判別→SJISコード変換 */
{F_CODECNV_EMAIL, "JIStoSJIS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //E-Mail(JIS→SJIS)コード変換
{F_CODECNV_EUC2SJIS, "EUCtoSJIS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY, NULL}, //EUC→SJISコード変換
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -