Word中的代码怎样语法高亮
在平常我们粘贴代码到Word中的时候,经常会遇到代码粘贴到Word中后没有语法高亮,看着很乱很不友好,Word自带的样式---语法使用着也不尽人意,
网上有很多做法可以使得在插入在Word中的代码能够高亮显示,有使用notepad++先编辑再复制到Word中的,
也有使用网上的代码复制到转换网站,然后再复制到Word实现代码高亮,也有使用Word插件的,
但是这些方法个人认为多次转换复制太过麻烦,Word插件用着自己又觉得不太放心,故,这里介绍使用Word宏来实现语法高亮。
此宏的代码一部分来自互联网,原作者不是太清楚,在这里感谢提供基础源码的作者,这里附上链接https://www.xuebuyuan.com/1843358.html
建议把这个宏做成模板,需要使用的时候引入模板即可,此处我做好的模板可以在这里下载 template
Linux 下可用命令的高亮支持这里只做了一部分的命令,如果要支持所有的Linux可用命令,请自行添加。
如果要添加关键字支持Linux下所有命令的高亮显示,请注意:
1、添加命令的关键字在VB集合中时要注意,定义在单个函数中用 :Add "keyword" 添加的关键字不宜过多,否则在执行宏时会报“执行过程过长”的错误
2、解决的办法是用多个函数来定义关键字集合,然后再在高亮显示的执行函数中做处理即可。
为了让代码看起来更加整洁,这里我们将代码写在1 X 1 的表格中,原始效果如图:
接下来使用宏来进行语法着色,效果如下:
以下贴出源代码,供大家参考,此代码一部分来自互联网,原作者不是太清楚,在这里感谢提供基础源码的作者,这里附上链接 https://www.xuebuyuan.com/1843358.html
以下是我个人二次开发的源代码,还有一些不足的地方,甚至一些小BUG(个人对VB不是很了解),只能实现上述一些基本功能,希望大家能够继续改进,讨论交流和评论
有兴趣的也可以进行二次开发,实现自己需要的功能。
- 1 '宏在2019 年 8 月 2 日创建
- 2 ' 作者:ZhongYuanMei
- 3
- 4 '设置行号
- 5 Private Sub SetLIneNumber()
- 6
- 7 Dim lines As Integer
- 8
- 9 lines = Selection.Paragraphs.Count
- 10
- 11 Selection.StartOf wdParagraph
- 12
- 13 For l = 1 To lines
- 14
- 15 lIneNum = l & " "
- 16
- 17 If l < 10 Then
- 18
- 19 lIneNum = lIneNum & " "
- 20
- 21 End If
- 22
- 23 Selection.Text = lIneNum
- 24
- 25 Selection.Font.Bold = False
- 26
- 27 Selection.Font.Color = wdColorAutomatic
- 28
- 29 p = Selection.MoveDown(wdLine, 1, wdMove)
- 30
- 31 Selection.StartOf wdLine
- 32
- 33 Next
- 34
- 35 End Sub
- 36 ' 处理集合
- 37 Private Function isSpecial(ByVal w As String, ByRef col As Collection) As Boolean
- 38
- 39 For Each i In col
- 40
- 41 If w = i Then
- 42
- 43 isSpecial = True
- 44
- 45 Exit Function
- 46
- 47 End If
- 48
- 49 Next
- 50
- 51 isspeical = False
- 52
- 53 End Function
- 54 '其它符号
- 55 Private Function isOthers(ByVal w As String) As Boolean
- 56
- 57 Dim others As New Collection
- 58
- 59 With others
- 60
- 61 .Add "--": .Add "error": .Add "$": .Add """": .Add "{": .Add "}": .Add "[": .Add "]": .Add "root": .Add "@": .Add "(": .Add ")": .Add "()"
- 62
- 63
- 64 End With
- 65
- 66 isOthers = isSpecial(w, others)
- 67
- 68 End Function
- 69 '常见的操作运算符
- 70 Private Function isOperator(w) As Boolean
- 71
- 72 Dim ops As New Collection
- 73
- 74 With ops
- 75
- 76 .Add "+": .Add "-": .Add "*": .Add "/": .Add "&": .Add "^": .Add ";"
- 77
- 78 .Add "%": .Add "!": .Add ":": .Add ",": .Add "."
- 79
- 80 .Add "||": .Add "&&": .Add "|": .Add "=": .Add "++": .Add "--"
- 81
- 82 .Add "'": .Add """": .Add "===": .Add "==": .Add "**": .Add "+=": .Add "-=": .Add "*=": .Add "/=": .Add "%="
- 83
- 84
- 85 End With
- 86
- 87 isOperator = isSpecial(w, ops)
- 88
- 89 End Function
- 90
- 91 'C语言关键字
- 92 Private Function isCLANGKeyword(w) As Boolean
- 93
- 94 Dim keys As New Collection
- 95
- 96 With keys
- 97
- 98 .Add "if": .Add "else": .Add "elseif": .Add "case": .Add "switch": .Add "break"
- 99
- 100 .Add "for": .Add "continue": .Add "do": .Add "while": .Add "foreach": .Add "echo"
- 101
- 102 .Add "define": .Add "array": .Add "NULL": .Add "function": .Add "include": .Add "return"
- 103
- 104 .Add "global": .Add "as": .Add "die": .Add "header": .Add "this": .Add "empty"
- 105
- 106 .Add "isset": .Add "mysql_fetch_assoc": .Add "class": .Add "style"
- 107
- 108 .Add "name": .Add "value": .Add "type": .Add "width": .Add "_POST": .Add "_GET"
- 109
- 110 End With
- 111
- 112 isCLANGKeyword = isSpecial(w, keys)
- 113
- 114 End Function
- 115 'MySQL关键字
- 116 Private Function isMySQLKeyword(w) As Boolean
- 117
- 118 Dim keys As New Collection
- 119
- 120 With keys
- 121 .Add "ADD": .Add "ALL": .Add "ALTER": .Add "ANALYZE": .Add "AND": .Add "AS": .Add "ASC": .Add "ASENSITIVE": .Add "BEFORE": .Add "BETWEEN"
- 122 .Add "BIGINT": .Add "BINARY": .Add "BLOB": .Add "BOTH": .Add "BY": .Add "CALL": .Add "CASCADE": .Add "CASE": .Add "CHANGE"
- 123 .Add "CHAR": .Add "CHARACTER": .Add "CHECK": .Add "COLLATE": .Add "COLUMN": .Add "CONDITION": .Add "CONNECTION"
- 124 .Add "CONSTRAINT": .Add "CONTINUE": .Add "CONVERT": .Add "CREATE": .Add "CROSS": .Add "CURRENT_DATE": .Add "CURRENT_TIME"
- 125 .Add "CURRENT_TIMESTAMP": .Add "CURRENT_USER": .Add "CURSOR": .Add "DATABASE": .Add "DATABASES": .Add "DAY_HOUR"
- 126 .Add "DAY_MICROSECOND": .Add "DAY_MINUTE": .Add "DAY_SECOND": .Add "DEC": .Add "DECIMAL": .Add "DECLARE": .Add "DEFAULT"
- 127 .Add "DELAYED": .Add "DELETE": .Add "DESC": .Add "DESCRIBE": .Add "DETERMINISTIC": .Add "DISTINCT": .Add "DISTINCTROW"
- 128 .Add "DIV": .Add "DOUBLE": .Add "DROP": .Add "DUAL": .Add "EACH": .Add "ELSE": .Add "ELSEIF": .Add "ENCLOSED": .Add "ESCAPED"
- 129 .Add "EXISTS": .Add "EXIT": .Add "EXPLAIN": .Add "FALSE": .Add "FETCH": .Add "FLOAT": .Add "FLOAT4": .Add "FLOAT8": .Add "FOR"
- 130 .Add "FORCE": .Add "FOREIGN": .Add "FROM": .Add "FULLTEXT": .Add "GOTO": .Add "GRANT": .Add "GROUP": .Add "HAVING"
- 131 .Add "HIGH_PRIORITY": .Add "HOUR_MICROSECOND": .Add "HOUR_MINUTE": .Add "HOUR_SECOND": .Add "IF": .Add "IGNORE"
- 132 .Add "IN": .Add "INDEX": .Add "INFILE": .Add "INNER": .Add "INOUT": .Add "INSENSITIVE": .Add "INSERT": .Add "INT": .Add "INT1"
- 133 .Add "INT2": .Add "INT3": .Add "INT4": .Add "INT8": .Add "INTEGER": .Add "INTERVAL": .Add "INTO""": .Add "IS": .Add "ITERATE"
- 134 .Add "JOIN": .Add "KEY": .Add "KEYS": .Add "KILL": .Add "LABEL": .Add "LEADING": .Add "LEAVE": .Add "LEFT": .Add "LIKE"
- 135 .Add "LIMIT": .Add "LINEAR": .Add "LINES": .Add "LOAD": .Add "LOCALTIME": .Add "LOCALTIMESTAMP": .Add "LOCK": .Add "LONG"
- 136 .Add "LONGBLOB": .Add "LONGTEXT": .Add "LOOP": .Add "LOW_PRIORITY": .Add "MATCH": .Add "MEDIUMBLOB": .Add "MEDIUMINT"
- 137 .Add "MEDIUMTEXT": .Add "MIDDLEINT": .Add "MINUTE_MICROSECOND": .Add "MINUTE_SECOND": .Add "MOD": .Add "MODIFIES"
- 138 .Add "NATURAL": .Add "NOT": .Add "NO_WRITE_TO_BINLOG": .Add "NULL": .Add "NUMERIC": .Add "ON": .Add "OPTIMIZE"
- 139 .Add "OPTION": .Add "OPTIONALLY": .Add "OR": .Add "ORDER": .Add "OUT": .Add "OUTER": .Add "OUTFILE": .Add "PRECISION"
- 140 .Add "PRIMARY": .Add "PROCEDURE": .Add "PURGE": .Add "RAID0": .Add "RANGE": .Add "READ": .Add "READS": .Add "REAL"
- 141 .Add "REFERENCES": .Add "REGEXP": .Add "RELEASE": .Add "RENAME": .Add "REPEAT": .Add "REPLACE": .Add "REQUIRE"
- 142 .Add "RESTRICT": .Add "RETURN": .Add "REVOKE": .Add "RIGHT": .Add "RLIKE": .Add "SCHEMA": .Add "SCHEMAS"
- 143 .Add "SECOND_MICROSECOND": .Add "SELECT": .Add "SENSITIVE": .Add "SEPARATOR": .Add "SET": .Add "SHOW": .Add "SMALLINT"
- 144 .Add "SPATIAL": .Add "SPECIFIC": .Add "SQL": .Add "SQLEXCEPTION": .Add "SQLSTATE": .Add "SQLWARNING": .Add "SQL_BIG_RESULT"
- 145 .Add "SQL_CALC_FOUND_ROWS": .Add "SQL_SMALL_RESULT": .Add "SSL": .Add "STARTING": .Add "STRAIGHT_JOIN": .Add "TABLE"
- 146 .Add "TERMINATED": .Add "THEN": .Add "TINYBLOB": .Add "TINYINT": .Add "TINYTEXT": .Add "TO": .Add "TRAILING": .Add "TRIGGER"
- 147 .Add "TRUE": .Add "UNDO": .Add "UNION": .Add "UNIQUE": .Add "UNLOCK": .Add "UNSIGNED": .Add "UPDATE": .Add "USAGE": .Add "USE"
- 148 .Add "USING": .Add "UTC_DATE": .Add "UTC_TIME": .Add "UTC_TIMESTAMP": .Add "VALUES": .Add "VARBINARY": .Add "VARCHAR"
- 149 .Add "VARCHARACTER": .Add "VARYING": .Add "WHEN": .Add "WHERE": .Add "WHILE": .Add "WITH": .Add "WRITE": .Add "X509"
- 150 .Add "XOR": .Add "YEAR_MONTH": .Add "add": .Add "all": .Add "alter": .Add "analyze": .Add "and": .Add "as": .Add "asc"
- 151 .Add "asensitive": .Add "before": .Add "between": .Add "bigint": .Add "binary": .Add "blob": .Add "both": .Add "by"
- 152 .Add "call": .Add "cascade": .Add "case": .Add "change": .Add "char": .Add "character": .Add "check": .Add "collate"
- 153 .Add "column": .Add "condition": .Add "connection": .Add "constraint": .Add "continue": .Add "convert": .Add "create"
- 154 .Add "cross": .Add "current_date": .Add "current_time": .Add "current_timestamp": .Add "current_user": .Add "cursor"
- 155 .Add "database": .Add "databases": .Add "day_hour": .Add "day_microsecond": .Add "day_minute": .Add "day_second"
- 156 .Add "dec": .Add "decimal": .Add "declare": .Add "default": .Add "delayed": .Add "delete": .Add "desc": .Add "describe"
- 157 .Add "deterministic": .Add "distinct": .Add "distinctrow": .Add "div": .Add "double": .Add "drop": .Add "dual": .Add "each"
- 158 .Add "else": .Add "elseif": .Add "enclosed": .Add "escaped": .Add "exists": .Add "exit": .Add "explain": .Add "false"
- 159 .Add "fetch": .Add "float": .Add "float4": .Add "float8": .Add "for": .Add "force": .Add "foreign": .Add "from"
- 160 .Add "fulltext": .Add "goto": .Add "grant": .Add "group": .Add "having": .Add "high_priority": .Add "hour_microsecond"
- 161 .Add "hour_minute": .Add "hour_second": .Add "if": .Add "ignore": .Add "in": .Add "index": .Add "infile": .Add "inner"
- 162 .Add "inout": .Add "insensitive": .Add "insert": .Add "int": .Add "int1": .Add "int2": .Add "int3": .Add "int4": .Add "int8"
- 163 .Add "integer": .Add "interval": .Add "into""": .Add "is": .Add "iterate": .Add "join": .Add "key": .Add "keys": .Add "kill"
- 164 .Add "label": .Add "leading": .Add "leave": .Add "left": .Add "like": .Add "limit": .Add "linear": .Add "lines": .Add "load"
- 165 .Add "localtime": .Add "localtimestamp": .Add "lock": .Add "long": .Add "longblob": .Add "longtext": .Add "loop"
- 166 .Add "low_priority": .Add "match": .Add "mediumblob": .Add "mediumint": .Add "mediumtext": .Add "middleint"
- 167 .Add "minute_microsecond": .Add "minute_second": .Add "mod": .Add "modifies": .Add "natural": .Add "not"
- 168 .Add "no_write_to_binlog": .Add "null": .Add "numeric": .Add "on": .Add "optimize": .Add "option": .Add "optionally"
- 169 .Add "or": .Add "order": .Add "out": .Add "outer": .Add "outfile": .Add "precision": .Add "primary": .Add "procedure"
- 170 .Add "purge": .Add "raid0": .Add "range": .Add "read": .Add "reads": .Add "real": .Add "references": .Add "regexp"
- 171 .Add "release": .Add "rename": .Add "repeat": .Add "replace": .Add "require": .Add "restrict": .Add "return"
- 172 .Add "revoke": .Add "right": .Add "rlike": .Add "schema": .Add "schemas": .Add "second_microsecond": .Add "select"
- 173 .Add "sensitive": .Add "separator": .Add "set": .Add "show": .Add "smallint": .Add "spatial": .Add "specific": .Add "sql"
- 174 .Add "sqlexception": .Add "sqlstate": .Add "sqlwarning": .Add "sql_big_result": .Add "sql_calc_found_rows"
- 175 .Add "sql_small_result": .Add "ssl": .Add "starting": .Add "straight_join": .Add "table": .Add "terminated"
- 176 .Add "then": .Add "tinyblob": .Add "tinyint": .Add "tinytext": .Add "to": .Add "trailing": .Add "trigger": .Add "true"
- 177 .Add "undo": .Add "union": .Add "unique": .Add "unlock": .Add "unsigned": .Add "update": .Add "usage": .Add "use"
- 178 .Add "using": .Add "utc_date": .Add "utc_time": .Add "utc_timestamp": .Add "values": .Add "varbinary": .Add "varchar"
- 179 .Add "varcharacter": .Add "varying": .Add "when": .Add "where": .Add "while": .Add "with": .Add "write": .Add "x509"
- 180 .Add "xor": .Add "year_month"
- 181 End With
- 182
- 183 isMySQLKeyword = isSpecial(w, keys)
- 184
- 185 End Function
- 186
- 187 'Python语言的关键字
- 188 Private Function isPythonLANGKeyword(w) As Boolean
- 189
- 190 Dim keys As New Collection
- 191
- 192 With keys
- 193 .Add "False": .Add "def": .Add "if": .Add "raise": .Add "None": .Add "del": .Add "import": .Add "return": .Add "True": .Add "elif": .Add "in"
- 194 .Add "try": .Add "and": .Add "else": .Add "is": .Add "while": .Add "as": .Add "except": .Add "lambda": .Add "with": .Add "assert": .Add "finally"
- 195 .Add "nonlocal": .Add "yield": .Add "break": .Add "for": .Add "not": .Add "class": .Add "from": .Add "or": .Add "continue": .Add "global": .Add "pass": .Add "self"
- 196
- 197 End With
- 198
- 199 isPythonLANGKeyword = isSpecial(w, keys)
- 200
- 201 End Function
- 202
- 203 'Java语言关键字
- 204 Private Function isJavaLANGKeyword(w) As Boolean
- 205
- 206 Dim keys As New Collection
- 207
- 208 With keys
- 209 .Add "abstract": .Add "asm": .Add "auto": .Add "bool": .Add "boolean": .Add "break": .Add "byte": .Add "case": .Add "cast": .Add "catch": .Add "char"
- 210 .Add "class": .Add "const": .Add "continue": .Add "default": .Add "delete": .Add "do": .Add "double": .Add "dynamic_case": .Add "else": .Add "enum": .Add "explicit": .Add "export": .Add "extern": .Add "extends": .Add "false": .Add "final"
- 211 .Add "finally": .Add "friend": .Add "float": .Add "for": .Add "goto": .Add "if": .Add "inline": .Add "implements": .Add "import": .Add "instanceof": .Add "inner": .Add "int"
- 212 .Add "interface": .Add "long": .Add "native": .Add "new": .Add "null": .Add "operator": .Add "package": .Add "private": .Add "protected": .Add "public": .Add "return"
- 213 .Add "short": .Add "sigend": .Add "static": .Add "static_cast": .Add "struct": .Add "super": .Add "switch": .Add "synchronized": .Add "template": .Add "this": .Add "throw": .Add "throws": .Add "transient": .Add "true"
- 214 .Add "try": .Add "typedef": .Add "unsigned": .Add "union": .Add "using": .Add "virtual": .Add "void": .Add "volatile": .Add "while": .Add "include": .Add "std"
- 215 End With
- 216
- 217 isJavaLANGKeyword = isSpecial(w, keys)
- 218
- 219 End Function
- 220 'Java语言系统相关的关键字
- 221 Private Function isJavaSystemLANGKeyword(w) As Boolean
- 222
- 223 Dim keys As New Collection
- 224
- 225 With keys
- 226
- 227 .Add "System": .Add "String": .Add "StringBuffer": .Add "Runnable": .Add "Thread": .Add "Exception": .Add "IOException": .Add "cout": .Add "cin": .Add "std": .Add "endl": .Add "vector"
- 228
- 229 End With
- 230
- 231 isJavaSystemLANGKeyword = isSpecial(w, keys)
- 232
- 233 End Function
- 234
- 235 'RHEL系列的系统常用命令
- 236 Private Function isRHELLANGKeyword(w) As Boolean
- 237
- 238 Dim keys As New Collection
- 239
- 240 With keys
- 241 .Add "cat": .Add "chattr": .Add "chgrp": .Add "chmod": .Add "chown": .Add "cksum": .Add "cmp": .Add "diff": .Add "diffstat"
- 242 .Add "file": .Add "find": .Add "git": .Add "gitview": .Add "indent": .Add "cut": .Add "ln": .Add "less": .Add "locate"
- 243 .Add "lsattr": .Add "mattrib": .Add "mc": .Add "mdel": .Add "mdir": .Add "mktemp": .Add "more": .Add "mmove": .Add "mread"
- 244 .Add "mren": .Add "mtools": .Add "mtoolstest": .Add "mv": .Add "od": .Add "paste": .Add "patch": .Add "rcp": .Add "rm": .Add "slocate"
- 245 .Add "split": .Add "tee": .Add "tmpwatch": .Add "touch": .Add "umask": .Add "which": .Add "cp": .Add "whereis": .Add "mcopy"
- 246 .Add "mshowfat": .Add "rhmask": .Add "scp ": .Add "awk": .Add "read": .Add "updatedb": .Add "col": .Add "colrm": .Add "comm"
- 247 .Add "csplit": .Add "ed": .Add "egrep": .Add "ex": .Add "fgrep": .Add "fmt": .Add "fold": .Add "grep": .Add "ispell": .Add "jed"
- 248 .Add "joe": .Add "join": .Add "look": .Add "mtype": .Add "pico": .Add "rgrep": .Add "sed": .Add "sort": .Add "spell": .Add "tr"
- 249 .Add "expr": .Add "uniq": .Add "wc": .Add "let": .Add " ": .Add "lprm": .Add "lpr": .Add "lpq": .Add "lpd": .Add "bye": .Add "ftp"
- 250 .Add "uuto": .Add "uupick": .Add "uucp": .Add "uucico": .Add "tftp": .Add "ncftp": .Add "ftpshut": .Add "ftpwho": .Add "ftpcount"
- 251 .Add "cd": .Add "df": .Add "dirs": .Add "du": .Add "edquota": .Add "eject": .Add "mcd": .Add "mdeltree": .Add "mdu": .Add "mkdir"
- 252 .Add "mlabel": .Add "mmd": .Add "mrd": .Add "mzip": .Add "pwd": .Add "quota": .Add "mount": .Add "mmount": .Add "rmdir": .Add "rmt"
- 253 .Add "stat": .Add "tree": .Add "umount": .Add "ls": .Add "quotacheck": .Add "quotaoff": .Add "lndir": .Add "repquota"
- 254 .Add "quotaon": .Add "badblocks": .Add "cfdisk": .Add "dd": .Add "e2fsck": .Add "ext2ed": .Add "fsck": .Add "fsck.minix"
- 255 .Add "fsconf": .Add "fdformat": .Add "hdparm": .Add "mformat": .Add "mkbootdisk": .Add "mkdosfs": .Add "mke2fs": .Add "mkfs.ext2"
- 256 .Add "mkfs.msdos": .Add "mkinitrd": .Add "mkisofs": .Add "mkswap": .Add "mpartition": .Add "swapon": .Add "symlinks": .Add "sync"
- 257 .Add "mbadblocks": .Add "mkfs.minix": .Add "fsck.ext2": .Add "fdisk": .Add "losetup": .Add "mkfs": .Add "sfdisk": .Add "swapoff"
- 258 .Add "apachectl": .Add "arpwatch": .Add "dip": .Add "getty": .Add "mingetty": .Add "uux": .Add "telnet": .Add "uulog": .Add "uustat"
- 259 .Add "ppp-off": .Add "netconfig": .Add "nc": .Add "httpd": .Add "ifconfig": .Add "minicom": .Add "mesg": .Add "dnsconf": .Add "wall"
- 260 .Add "netstat": .Add "ping": .Add "pppstats": .Add "samba": .Add "setserial": .Add "talk": .Add "traceroute": .Add "tty"
- 261 .Add "newaliases": .Add "uuname": .Add "netconf": .Add "write": .Add "statserial": .Add "efax": .Add "pppsetup": .Add "tcpdump"
- 262 .Add "ytalk": .Add "cu": .Add "smbd": .Add "testparm": .Add "smbclient": .Add "shapecfg": .Add "adduser": .Add "chfn": .Add "useradd"
- 263 .Add "date": .Add "exit": .Add "finger": .Add "fwhios": .Add "sleep": .Add "suspend": .Add "groupdel": .Add "groupmod": .Add "halt"
- 264 .Add "kill": .Add "last": .Add "lastb": .Add "login": .Add "logname": .Add "logout": .Add "ps": .Add "nice": .Add "procinfo"
- 265 .Add "top": .Add "pstree": .Add "reboot": .Add "rlogin": .Add "rsh": .Add "sliplogin": .Add "screen": .Add "shutdown": .Add "rwho"
- 266 .Add "sudo": .Add "gitps": .Add "swatch": .Add "tload": .Add "logrotate": .Add "uname": .Add "chsh": .Add "userconf": .Add "userdel"
- 267 .Add "usermod": .Add "vlock": .Add "who": .Add "whoami": .Add "whois": .Add "newgrp": .Add "renice": .Add "su": .Add "skill": .Add "w"
- 268 .Add "id": .Add "free": .Add "reset": .Add "clear": .Add "alias": .Add "dircolors": .Add "aumix": .Add "bind": .Add "chroot"
- 269 .Add "clock": .Add "crontab": .Add "declare": .Add "depmod": .Add "dmesg": .Add "enable": .Add "eval": .Add "export"
- 270 .Add "pwunconv": .Add "grpconv": .Add "rpm": .Add "insmod": .Add "kbdconfig": .Add "lilo": .Add "liloconfig": .Add "lsmod"
- 271 .Add "minfo": .Add "set": .Add "modprobe": .Add "ntsysv": .Add "mouseconfig": .Add "passwd": .Add "pwconv": .Add "rdate"
- 272 .Add "resize": .Add "rmmod": .Add "grpunconv": .Add "modinfo": .Add "time": .Add "setup": .Add "sndconfig": .Add "setenv"
- 273 .Add "setconsole": .Add "timeconfig": .Add "ulimit": .Add "unset": .Add "chkconfig": .Add "apmd": .Add "hwclock"
- 274 .Add "mkkickstart": .Add "fbset": .Add "unalias": .Add "SVGATextMode": .Add "ar": .Add "bunzip2": .Add "bzip2": .Add "yum"
- 275 .Add "bzip2recover": .Add "gunzip": .Add "unarj": .Add "compress": .Add "cpio": .Add "dump": .Add "uuencode": .Add "gzexe"
- 276 .Add "gzip": .Add "lha": .Add "restore": .Add "tar": .Add "uudecode": .Add "unzip": .Add "zip": .Add "zipinfo": .Add "setleds": .Add "echo"
- 277 .Add "loadkeys": .Add "rdev": .Add "dumpkeys"
- 278 End With
- 279
- 280 isRHELLANGKeyword = isSpecial(w, keys)
- 281
- 282 End Function
- 283
- 284 'RHEL syntax hight light
- 285 Sub RHELForSyntaxHighlight()
- 286
- 287 Dim wordCount As Integer
- 288
- 289 Dim d As Integer
- 290
- 291 ' set the style of selection
- 292
- 293 ' Selection.Style = "ccode"
- 294
- 295 d = 0
- 296
- 297 wordCount = Selection.Words.Count
- 298
- 299 Selection.StartOf wdWord
- 300
- 301 While d < wordCount
- 302
- 303 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 304
- 305 w = Selection.Text
- 306 If isRHELLANGKeyword(Trim(w)) = True Then
- 307
- 308 Selection.Font.Color = wdColorBlue
- 309
- 310 Selection.Font.Bold = True
- 311
- 312 End If
- 313
- 314 If isRHELLANGKeyword(Trim(w)) = True Then
- 315
- 316 Selection.Font.Color = wdColorBlue
- 317
- 318 Selection.Font.Bold = True
- 319
- 320
- 321 ElseIf isOperator(Trim(w)) = True Then
- 322 Selection.Font.Bold = True
- 323
- 324 Selection.Font.Color = wdColorBrown
- 325
- 326
- 327 ElseIf isOthers(Trim(w)) = True Then
- 328
- 329 Selection.Font.Color = wdColorBrown
- 330
- 331 Selection.Font.Bold = True
- 332
- 333 Else
- 334
- 335 Selection.Font.Bold = True
- 336 End If
- 337
- 338 'move the start of selection to next word
- 339
- 340 Selection.MoveStart wdWord
- 341
- 342 Wend
- 343
- 344 ' prepare For set lIne number
- 345
- 346 'Selection.MoveLeft wdWord, wordCount, wdExtend
- 347
- 348 'SetLIneNumber
- 349
- 350 End Sub
- 351 ' java syntax hight light
- 352 Sub JavaLANGSyntaxHighlight()
- 353
- 354 Dim wordCount As Integer
- 355
- 356 Dim d As Integer
- 357
- 358 ' set the style of selection
- 359
- 360 ' Selection.Style = "ccode"
- 361
- 362 d = 0
- 363
- 364 wordCount = Selection.Words.Count
- 365
- 366 Selection.StartOf wdWord
- 367
- 368 While d < wordCount
- 369
- 370 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 371
- 372 w = Selection.Text
- 373 If isJavaLANGKeyword(Trim(w)) = True Then
- 374
- 375 Selection.Font.Color = wdColorRed
- 376
- 377 Selection.Font.Bold = True
- 378
- 379 ElseIf isJavaSystemLANGKeyword(Trim(w)) = True Then
- 380
- 381 Selection.Font.Color = wdColorRed
- 382
- 383 Selection.Font.Bold = True
- 384
- 385
- 386 ElseIf isOperator(Trim(w)) = True Then
- 387
- 388 Selection.Font.Color = wdColorBrown
- 389
- 390 Selection.Font.Bold = True
- 391
- 392 ElseIf isOthers(Trim(w)) = True Then
- 393
- 394 Selection.Font.Color = wdColorBrown
- 395
- 396 Selection.Font.Bold = True
- 397
- 398
- 399 ElseIf Trim(w) = "//" Then
- 400
- 401 'lIne comment
- 402
- 403 Selection.MoveEnd wdLine, 1
- 404
- 405 commentWords = Selection.Words.Count
- 406
- 407 d = d + commentWords
- 408
- 409 Selection.Font.Color = wdColorBlack
- 410
- 411 Selection.MoveStart wdWord, commentWords
- 412
- 413 ElseIf Trim(w) = "/*" Then
- 414
- 415 'block comment
- 416
- 417 While Selection.Characters.Last <> "/"
- 418
- 419 Selection.MoveLeft wdCharacter, 1, wdExtend
- 420
- 421 Selection.MoveEndUntil ("*")
- 422
- 423 Selection.MoveRight wdCharacter, 2, wdExtend
- 424
- 425 Wend
- 426
- 427 commentWords = Selection.Words.Count
- 428
- 429 d = d + commentWords
- 430
- 431 Selection.Font.Color = wdColorBlack
- 432
- 433 Selection.MoveStart wdWord, commentWords
- 434
- 435 Selection.Font.Bold = True
- 436 Else
- 437
- 438 Selection.Font.Bold = True
- 439
- 440 End If
- 441
- 442 'move the start of selection to next word
- 443
- 444 Selection.MoveStart wdWord
- 445
- 446 Wend
- 447
- 448 ' prepare For set lIne number
- 449
- 450 Selection.MoveLeft wdWord, wordCount, wdExtend
- 451
- 452 SetLIneNumber
- 453
- 454 End Sub
- 455 ' python syntax high light
- 456 Sub PythonLANGSyntaxHighlight()
- 457
- 458 Dim wordCount As Integer
- 459
- 460 Dim d As Integer
- 461
- 462 ' set the style of selection
- 463
- 464 ' Selection.Style = "ccode"
- 465
- 466 d = 0
- 467
- 468 wordCount = Selection.Words.Count
- 469
- 470 Selection.StartOf wdWord
- 471
- 472 While d < wordCount
- 473
- 474 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 475
- 476 w = Selection.Text
- 477 If isPythonLANGKeyword(Trim(w)) = True Then
- 478
- 479 Selection.Font.Color = wdColorViolet
- 480
- 481 Selection.Font.Bold = True
- 482
- 483 ElseIf isOperator(Trim(w)) = True Then
- 484
- 485 Selection.Font.Color = wdColorBrown
- 486
- 487 Selection.Font.Bold = True
- 488
- 489 ElseIf isOthers(Trim(w)) = True Then
- 490
- 491 Selection.Font.Color = wdColorBrown
- 492
- 493 Selection.Font.Bold = True
- 494
- 495 Else
- 496
- 497 Selection.Font.Bold = True
- 498 End If
- 499
- 500 'move the start of selection to next word
- 501
- 502 Selection.MoveStart wdWord
- 503
- 504 Wend
- 505
- 506 ' prepare For set lIne number
- 507
- 508 Selection.MoveLeft wdWord, wordCount, wdExtend
- 509
- 510 SetLIneNumber
- 511
- 512 End Sub
- 513 'C syntax hight light
- 514 Sub CLANGSyntaxHighlight()
- 515
- 516 Dim wordCount As Integer
- 517
- 518 Dim d As Integer
- 519
- 520 ' set the style of selection
- 521
- 522 ' Selection.Style = "ccode"
- 523
- 524 d = 0
- 525
- 526 wordCount = Selection.Words.Count
- 527
- 528 Selection.StartOf wdWord
- 529
- 530 While d < wordCount
- 531
- 532 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 533
- 534 w = Selection.Text
- 535 If isCLANGKeyword(Trim(w)) = True Then
- 536
- 537 Selection.Font.Color = wdColorBlue
- 538
- 539 Selection.Font.Bold = True
- 540
- 541
- 542 ElseIf isOperator(Trim(w)) = True Then
- 543
- 544 Selection.Font.Bold = True
- 545
- 546 Selection.Font.Color = wdColorBrown
- 547
- 548
- 549 ElseIf isOthers(Trim(w)) = True Then
- 550
- 551 Selection.Font.Color = wdColorBrown
- 552
- 553 Selection.Font.Bold = True
- 554
- 555
- 556 ElseIf Trim(w) = "//" Then
- 557
- 558 'lIne comment
- 559
- 560 Selection.MoveEnd wdLine, 1
- 561
- 562 commentWords = Selection.Words.Count
- 563
- 564 d = d + commentWords
- 565
- 566 Selection.Font.Color = wdColorBlack
- 567
- 568 Selection.MoveStart wdWord, commentWords
- 569
- 570 ElseIf Trim(w) = "/*" Then
- 571
- 572 'block comment
- 573
- 574 While Selection.Characters.Last <> "/"
- 575
- 576 Selection.MoveLeft wdCharacter, 1, wdExtend
- 577
- 578 Selection.MoveEndUntil ("*")
- 579
- 580 Selection.MoveRight wdCharacter, 2, wdExtend
- 581
- 582 Wend
- 583
- 584 commentWords = Selection.Words.Count
- 585
- 586 d = d + commentWords
- 587
- 588 Selection.Font.Color = wdColorBlack
- 589
- 590 Selection.MoveStart wdWord, commentWords
- 591
- 592 Else
- 593
- 594 Selection.Font.Bold = True
- 595 End If
- 596
- 597 'move the start of selection to next word
- 598
- 599 Selection.MoveStart wdWord
- 600
- 601 Wend
- 602
- 603 ' prepare For set lIne number
- 604
- 605 Selection.MoveLeft wdWord, wordCount, wdExtend
- 606
- 607 SetLIneNumber
- 608
- 609 End Sub
- 610
- 611 ' MySQL syntax hight light
- 612 Sub MySQLForSyntaxHighlight()
- 613
- 614 Dim wordCount As Integer
- 615
- 616 Dim d As Integer
- 617
- 618 ' set the style of selection
- 619
- 620 ' Selection.Style = "ccode"
- 621
- 622 d = 0
- 623
- 624 wordCount = Selection.Words.Count
- 625
- 626 Selection.StartOf wdWord
- 627
- 628 While d < wordCount
- 629
- 630 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 631
- 632 w = Selection.Text
- 633
- 634 If isMySQLKeyword(Trim(w)) = True Then
- 635
- 636 Selection.Font.Color = wdColorRed
- 637
- 638 Selection.Font.Bold = True
- 639
- 640 ElseIf isOperator(Trim(w)) = True Then
- 641
- 642 Selection.Font.Bold = True
- 643
- 644 Selection.Font.Color = wdColorBrown
- 645
- 646
- 647 ElseIf isOthers(Trim(w)) = True Then
- 648
- 649 Selection.Font.Color = wdColorBrown
- 650
- 651 Selection.Font.Bold = True
- 652
- 653
- 654 ElseIf Trim(w) = "#" Then
- 655
- 656 'lIne comment
- 657
- 658 Selection.MoveEnd wdLine, 1
- 659
- 660 commentWords = Selection.Words.Count
- 661
- 662 d = d + commentWords
- 663
- 664 Selection.Font.Color = wdColorBlack
- 665
- 666 Selection.MoveStart wdWord, commentWords
- 667
- 668 Else
- 669
- 670 Selection.Font.Bold = True
- 671 End If
- 672
- 673 'move the start of selection to next word
- 674
- 675 Selection.MoveStart wdWord
- 676
- 677 Wend
- 678
- 679 ' prepare For set lIne number
- 680
- 681 ' Selection.MoveLeft wdWord, wordCount, wdExtend
- 682
- 683 ' SetLIneNumber
- 684
- 685 End Sub
以下是来自互联网的源代码,原作者不是太清楚,这里附上链接 https://www.xuebuyuan.com/1843358.html
此处再次感谢提供基础源码的作者。
- 1 'script to high light code In document
- 2
- 3 Private Function isKeyword(w) As Boolean
- 4
- 5 Dim keys As New Collection
- 6
- 7 With keys
- 8
- 9 .Add "if": .Add "else": .Add "elseif": .Add "case": .Add "switch": .Add "break"
- 10
- 11 .Add "for": .Add "continue": .Add "do": .Add "while": .Add "foreach": .Add "echo"
- 12
- 13 .Add "define": .Add "array": .Add "NULL": .Add "function": .Add "include": .Add "return"
- 14
- 15 .Add "global": .Add "as": .Add "die": .Add "header": .Add "this": .Add "empty"
- 16
- 17 .Add "isset": .Add "mysql_fetch_assoc": .Add "class": .Add "style"
- 18
- 19 .Add "name": .Add "value": .Add "type": .Add "width": .Add "_POST": .Add "_GET"
- 20
- 21 End With
- 22
- 23 isKeyword = isSpecial(w, keys)
- 24
- 25 End Function
- 26
- 27 Private Function isSpecial(ByVal w As String, ByRef col As Collection) As Boolean
- 28
- 29 For Each i In col
- 30
- 31 If w = i Then
- 32
- 33 isSpecial = True
- 34
- 35 Exit Function
- 36
- 37 End If
- 38
- 39 Next
- 40
- 41 isspeical = False
- 42
- 43 End Function
- 44
- 45 Private Function isOperator(w) As Boolean
- 46
- 47 Dim ops As New Collection
- 48
- 49 With ops
- 50
- 51 .Add "+": .Add "-": .Add "*": .Add "/": .Add "&": .Add "^": .Add ";"
- 52
- 53 .Add "%": .Add "#": .Add "!": .Add ":": .Add ",": .Add "."
- 54
- 55 .Add "||": .Add "&&": .Add "|": .Add "=": .Add "++": .Add "--"
- 56
- 57 .Add "'": .Add """"
- 58
- 59 End With
- 60
- 61 isOperator = isSpecial(w, ops)
- 62
- 63 End Function
- 64
- 65 Private Function isType(ByVal w As String) As Boolean
- 66
- 67 Dim types As New Collection
- 68
- 69 With types
- 70
- 71 .Add "SELECT": .Add "FROM": .Add "WHERE": .Add "INSERT": .Add "INTO": .Add "VALUES": .Add "ORDER"
- 72
- 73 .Add "BY": .Add "LIMIT": .Add "ASC": .Add "DESC": .Add "UPDATE": .Add "DELETE": .Add "COUNT"
- 74
- 75 .Add "html": .Add "head": .Add "title": .Add "body": .Add "p": .Add "h1": .Add " h2"
- 76
- 77 .Add "h3": .Add "center": .Add "ul": .Add "ol": .Add "li": .Add "a"
- 78
- 79 .Add "input": .Add "form": .Add "b"
- 80
- 81 End With
- 82
- 83 isType = isSpecial(w, types)
- 84
- 85 End Function
- 86
- 87 Sub SyntaxHighlight()
- 88
- 89 Dim wordCount As Integer
- 90
- 91 Dim d As Integer
- 92
- 93 ' set the style of selection
- 94
- 95 Selection.Style = "ccode"
- 96
- 97 d = 0
- 98
- 99 wordCount = Selection.Words.Count
- 100
- 101 Selection.StartOf wdWord
- 102
- 103 While d < wordCount
- 104
- 105 d = d + Selection.MoveRight(wdWord, 1, wdExtend)
- 106
- 107 w = Selection.Text
- 108
- 109 If isKeyword(Trim(w)) = True Then
- 110
- 111 Selection.Font.Color = wdColorBlue
- 112
- 113 ElseIf isType(Trim(w)) = True Then
- 114
- 115 Selection.Font.Color = wdColorDarkRed
- 116
- 117 Selection.Font.Bold = True
- 118
- 119 ElseIf isOperator(Trim(w)) = True Then
- 120
- 121 Selection.Font.Color = wdColorBrown
- 122
- 123 ElseIf Trim(w) = "//" Then
- 124
- 125 'lIne comment
- 126
- 127 Selection.MoveEnd wdLine, 1
- 128
- 129 commentWords = Selection.Words.Count
- 130
- 131 d = d + commentWords
- 132
- 133 Selection.Font.Color = wdColorGreen
- 134
- 135 Selection.MoveStart wdWord, commentWords
- 136
- 137 ElseIf Trim(w) = "/*" Then
- 138
- 139 'block comment
- 140
- 141 While Selection.Characters.Last <> "/"
- 142
- 143 Selection.MoveLeft wdCharacter, 1, wdExtend
- 144
- 145 Selection.MoveEndUntil ("*")
- 146
- 147 Selection.MoveRight wdCharacter, 2, wdExtend
- 148
- 149 Wend
- 150
- 151 commentWords = Selection.Words.Count
- 152
- 153 d = d + commentWords
- 154
- 155 Selection.Font.Color = wdColorGreen
- 156
- 157 Selection.MoveStart wdWord, commentWords
- 158
- 159 End If
- 160
- 161 'move the start of selection to next word
- 162
- 163 Selection.MoveStart wdWord
- 164
- 165 Wend
- 166
- 167 ' prepare For set lIne number
- 168
- 169 Selection.MoveLeft wdWord, wordCount, wdExtend
- 170
- 171 SetLIneNumber
- 172
- 173 End Sub
- 174
- 175 Private Sub SetLIneNumber()
- 176
- 177 Dim lines As Integer
- 178
- 179 lines = Selection.Paragraphs.Count
- 180
- 181 Selection.StartOf wdParagraph
- 182
- 183 For l = 1 To lines
- 184
- 185 lIneNum = l & " "
- 186
- 187 If l < 10 Then
- 188
- 189 lIneNum = lIneNum & " "
- 190
- 191 End If
- 192
- 193 Selection.Text = lIneNum
- 194
- 195 Selection.Font.Bold = False
- 196
- 197 Selection.Font.Color = wdColorAutomatic
- 198
- 199 p = Selection.MoveDown(wdLine, 1, wdMove)
- 200
- 201 Selection.StartOf wdLine
- 202
- 203 Next
- 204
- 205 End Sub
Word中的代码怎样语法高亮的更多相关文章
- LaTeX中Python代码的语法高亮
LaTeX中Python代码的语法高亮 本文中,"{}"中的字母为LaTeX或Python的包名,只有"Pygments"是Python的包,其他都是LaTeX ...
- 用 highlight.js 为文章中的代码添加语法高亮
来源:http://www.ghostchina.com/adding-syntax-highlighting-to-ghost-using-highlight-js/ --------------- ...
- 在 Microsoft Word 文档 中粘贴代码实现语法高亮的方法
1.下载notepad++. 2.将代码粘贴进notepad++,或者直接用notepad++打开. 3.点击顶栏 ===> 插件 ===> NppExport ===> cope ...
- 在word中使用notepad++实现代码的语法高亮
转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...
- 在word中使用notepad++实现代码的语法高亮 分类: C_OHTERS 2013-09-22 10:38 2273人阅读 评论(0) 收藏
转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...
- Word中使用代码高亮插件
Word中使用代码高亮插件 1.下载并安装:SyntaxHighlighter4Word.zip 解压,然后双击bin\word2010\Kong.SyntaxHighlighter.Word2010 ...
- (转)如何优雅的在 Microsoft word中插入代码
背景:最近项目需要自己编写文档,在文档中需要插入部分代码,记录下这个方法. 一.工具 方法1.打开这个网页PlanetB; 方法2.或者谷歌搜索syntax highlight code in wor ...
- 如何在 Microsoft word中插入代码
一.工具 方法1.打开这个网页PlanetB; 方法2.或者谷歌搜索syntax highlight code in word documents,检索结果的第一个.如下图: PS. 方法1和2打开的 ...
- 怎样在Word中插入代码并保持代码原始样式不变
怎样在Word中插入代码并保持样式不变 我们有时候需要在word中添加一段我们写的代码,但是把代码粘贴到word文档中之后就发现所有的代码的样子都变了,我们可以采用下边的方法来实现保持代码原来的样式和 ...
随机推荐
- Redis系列(三):Bitmaps和HyperLogLog
本篇介绍Bitmaps和HyperLogLog. 一.Bitmaps 计算机中最小的单位是bit(位),很多计算机语言也提供了位操作符,比如Java中就有&.|.>>.>&g ...
- 如何提升springboot服务吞吐量
生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议. 方案 1.undertow替换tomcat 电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web ...
- Python变量小秘密
变量全都是引用 跟其他编程语言不同,Python的变量不是盒子,不会存储数据,它们只是引用,就像标签一样,贴在对象上面. 比如: >>> a = [1, 2, 3] >> ...
- 入门Kubernetes - YAML文件
前言 前篇文章中简单了解到如何把.Net Core 程序部署到k8s中,过程中使用了多个*.yaml文件,那么这些文件的格式及含义.语法是如何的呢? 接下来,进一步了解学习 一.YAML介绍: 1.简 ...
- 4.2 万 Star!开发 Web 和移动端应用的全栈平台
[导语]:Meteor 是一个用 JS 开发现代 Web 应用程序的平台.它是开源的,在 GitHub 上有 4.2 万 Star. Meteor 是什么? 官方文档是这样描述 Meteor 的:Me ...
- SAI常用快捷键大全
一.默认常用工具快捷键如下: N 铅笔 B 喷枪 V 笔 X 前/背景色切换 - 前景色与透明色切换 C 水彩笔 A 选区笔 S 选区擦 D 清空当前图层 F 向下转写 (当前图层内容合并至下层,该层 ...
- python使用venv
venv模块支持使用自己的站点目录创建轻量级"虚拟环境",可选择与系统站点目录隔离.每个虚拟环境都有自己的Python二进制文件(与用于创建此环境的二进制文件的版本相匹配),并且可 ...
- 创建Cloudflare CDN
背景说明: XX全球版项目CDN, 原有改之前:主CDN为Akamai,备CDN为Cloudflare. 计划改之后:主CDN为Cloudflare,备CDN为Akamai. 原因:Akamai CD ...
- 14.6、mysql半同步插件的使用
1.半同步介绍: (1)从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念: 1)异步复制(Asynchronous replicatio ...
- flex中Button事件中的e.target
关于flex中的Button事件中的e.target. 今天想在事件中调用模块中的对象通过e.target获取单击的这个Button对象,但是可能是使用var btn:Button = e.targe ...