findText 命令

使用 findText 命令来定位以及(可选)替换文档中的文本。

findText 命令的参数分为两组:

语法

findText [ up
         | checkStart
         | replace
         | all
         | quiet
         | noBeep
         ] [...]
         [ [ mark
           | columns col1 col2
           | block
           | wholeWord
           | noWrap
           | asis
           | noEmphasis
           | regularExpression
           | replaceWith replaceText
           ] [...]
           text
         ] 

参数

up 使用可选的 up 参数来指示搜索应该从当前位置开始向后继续。
checkStart 使用可选的 checkStart 参数来指示在继续执行搜索之前应检查当前光标位置。
replace 使用可选的 replace 参数来指示应使用 findText.replaceText 参数指示的文本来替换找到的文本。
all 使用可选的 all 参数来指示应定位所寻找的文本的所有出现。搜索将忽略当前光标位置,但它遵守 blockcolumns 限制。
quiet 使用可选的 quiet 参数来指示不应发出消息或音频反馈。
noBeep 使用可选的 noBeep 参数来指示不应发出音频反馈。
mark 使用可选的 mark 参数来指示应选择找到的文本。
columns col1 col2 使用可选的 columns 参数来将搜索范围限制为指定的开始和结束列。col1col2 必须是正整数。
block 使用可选的 block 参数来将搜索范围限制为当前块选择。
wholeWord 使用可选的 wholeWord 参数来将搜索限制为仅搜索整词。词由字母、数字和下划线组成。
noWrap 使用可选的 noWrap 参数来指示当搜索到达文档底部时将停止。或者,如果是向后搜索文档,则 noWrap 参数指示当搜索到达文档顶部时将停止。
asis 使用可选的 asis 参数来指示搜索应该是区分大小写的搜索。
noEmphasis 使用可选的 noEmphasis 参数来指示不使用文档视图的强调样式来对找到的文本进行强调。
regularExpression 使用可选的 regularExpression 参数来指示应将搜索字符串视为正则表达式模式。
replaceWith replaceText 使用可选的 replaceWith 参数来指示应使用 replaceText 来替换找到的文本。如果 replaceText 包含空格,则必须在它前面加上引号(")作为前缀。如果 replaceText 包含引号,则必须在引号前面加上反斜杠(\")。如果 replaceText 包含反斜杠,则必须在反斜杠前面加上反斜杠(\\)。
text 使用 text 参数来指示您希望搜索的文本。如果搜索的是其中一个 findText 关键字,则可能需要将字符串用引号引起来。

状态

将把 status 参数设置为下列其中一项:
null 指示 findText 命令成功找到指定的文本,而没有任何特殊情况。
findText.onlyOccurrence 指示 findText 命令搜索了整个文档,回绕并在原始光标位置找到指定的文本。
findText.wrapped 指示 findText 命令成功找到指定的文本,但在搜索期间必须回绕至文档的开头。或者,如果是向后搜索,则在搜索期间必须回绕至文档的末尾。
findText.notFound 指示找不到指定的文本。
findText.invalidPattern 指示所指定的文本不是有效的正则表达式模式。仅当您已指示所指定的文本是正则表达式模式时,才可能会设置此状态。

描述

findText 命令使用下列参数:

除非指定了 all 参数,否则 findText 命令只影响可视元素。

正则表达式允许您查找与您指定的模式相匹配的文本。编辑器中的正则表达式支持是由 Java 语言提供的。但是,请注意,findText 命令将逐行地进行操作。

以下是几个常用的正则表达式模式:

c 如果 c 不是特殊字符,则与该字符的单个实例匹配。
\c 与字符 c 的单个实例匹配,否则该字符将被解释为特殊字符。例如,表达式 \\ 与单个反斜杠匹配,而表达式 \[ 与左方括号匹配。
\t 跳进字符('\u0009')。
\xhh 具有十六进制值 0xhh 的字符。每个 h 都表示一个十六进制位。
\uhhhh 具有十六进制值 0xhhhh 的字符。每个 h 都表示一个十六进制位。
. 与任何单个字符匹配。
[abc] abc 中包括的任何单个字符匹配。
[^abc] 与除了 abc 中包括的字符以外的任何单个字符匹配。
[a-z] 与范围 az 中的任何单个字符匹配。
[^a-z] 与除了范围 az 中包括的字符以外的任何单个字符匹配。
[a-zA-Z] 与范围 azAZ 中的任何单个字符匹配。
\d 一个数字。这等同于 [0-9]
\D 一个非数字。这等同于 [^0-9]
\s 一个空格字符。这等同于 [ \t\x0A\x0B\x0C\x0D]
\S 一个非空格字符。这等同于 [^\s]
\w 一个单字字符(字母数字)。这等同于 [a-zA-Z0-9_]
\W 一个非单字字符。这等同于 [^\w]
^ 在一行的开头进行匹配。^ 必须是表达式中的第一个字符。
$ 在一行的末尾进行匹配。$ 必须是表达式中的最后一个字符。
\b 与字边界匹配。
\B 与非字边界匹配。
X? 与表达式 X 的零次或一次出现匹配。将找到可能的最长匹配(贪婪匹配)。
X* 与表达式 X 的零次或多次连续出现匹配。将找到可能的最长匹配(贪婪匹配)。
X+ 与表达式 X 的一次或多次连续出现匹配。将找到可能的最长匹配(贪婪匹配)。
X{n} 与表达式 X 的刚好 n 次连续出现匹配。将找到可能的最长匹配(贪婪匹配)。
X{n,} 与表达式 X 的至少 n 次连续出现匹配。将找到可能的最长匹配(贪婪匹配)。
X{n,m} 与表达式 X 的至少 n 次但不超过 m 次连续出现匹配。将找到可能的最长匹配(贪婪匹配)。
X?? 与表达式 X 的零次或一次出现匹配。将找到最短匹配(非贪婪匹配)。
X*? 与表达式 X 的零次或多次连续出现匹配。将找到最短匹配(非贪婪匹配)。
X+? 与表达式 X 的一次或多次连续出现匹配。将找到最短匹配(非贪婪匹配)。
X{n}? 与表达式 X 的刚好 n 次连续出现匹配。将找到最短匹配(非贪婪匹配)。
X{n,}? 与表达式 X 的至少 n 次连续出现匹配。将找到最短匹配(非贪婪匹配)。
X{n,m}? 与表达式 X 的至少 n 次但不超过 m 次连续出现匹配。将找到最短匹配(非贪婪匹配)。
XY 与后面跟有表达式 Y 的表达式 X 匹配。
X|Y 与表达式 X 或表达式 Y 匹配。

示例

findText "text"
findText replaceWith "new text" "text"
findText up
findText regularExpression "this|that" 

相关概念
编辑器命令、操作和参数

相关参考
emphasisLength 参数
expandHide 参数
expanded 参数
findText.asis 参数
findText.block 参数
findText.columns 参数
findText.emphasis 参数
findText.endColumn 参数
findText.findText 参数
findText.mark 参数
findText.regularExpression 参数
findText.replaceText 参数
findText.startColumn 参数
findText.wholeWord 参数
findText.wrap 参数
topExpanded 参数
visible 参数
filterSelection 操作
find 操作
findAndReplace 操作
findAndReplaceNext 操作
findAndReplaceUp 操作
findNext 操作
findSelection 操作
findUp 操作
缺省编辑器命令
Java 正则表达式模式