写点什么

PNEdit 文本编辑器

用户头像
Geek_6bf591
关注
发布于: 2 小时前

1、界面概述 PNEdit 界面如下图 1 所示主要分成 Title、Menu、Button、Edit 和 Status 这 5 个区域。Title 区域用来显示当前编辑的文件全路径。Menu 区域有 File、Edit、View、Buffers、Tool 和 Help 这 6 个菜单项,Button 区域有 File、Edit、Search、View、Buffers、Tool 和 Help 这 7 个按钮项,Edit 区域为文本编辑窗口按 Tab 和 Split 的方式多窗口编辑文件内容,Status 区域显示当前编辑的文件属性信息。


图 1 PNEdit 窗口各区域


     Menu区域中的File菜单中有”Open…”、”Open Tab…”、”New”、”Close”、”Split Horizontal…”、”Split Vertical…”、”Save”、”Save As…”、”Save+Exit”和”Exit”这10个项,如下图2所示。其分别对应在当前编辑窗口中打开文件、创建一个新的Tab编辑窗口并在该窗口中打开文件、清空当前编辑窗口中的内容作为新的编辑窗口、关闭当前编辑窗口、在当前编辑窗口横向等比例分裂出一个新的编辑窗口并在该窗口中打开文件、在当前编辑窗口纵向等比例分裂出一个新的编辑窗口并在该窗口中打开文件、保存当前编辑窗口中的内容至打开的文件中、保存当前编辑窗口中的内容至一个新的文件中、保存所有打开的编辑窗口中的内容至各自打开的文件中并退出PNEdit、直接退出PNEdit。
复制代码


图 2 PNEdit 菜单栏 File


     Menu区域中的Edit菜单中有”Undo”、”Redo”、”Cut”、”Copy”、”Paste”、”Input”、”Command”、”Select”、”Advanced Search Replace”和”Advanced Edit”这10个项,如下图3所示。其分别对应当前编辑过程向前回退一个状态、当前编辑过程向后前进一个状态、删除当前选中的内容、复制当前选中的内容、粘贴复制的内容到光标所在的位置、当前编辑窗口设置为输入编辑状态、当前编辑窗口设置为命令行编辑状态、文本内容选择(展开后有”Word” 选择单个字、”Line” 选择一行、”Paragraph” 选择一段、”All” 选择全部)、打开高级搜索替换窗口、打开高级编辑窗口。
复制代码


图 3 PNEdit 菜单栏 Edit


     Menu区域中的View菜单中有”Color”、”Font”、”Parameters”、”Syntax Setting”、”Color Setting”、”Font Setting”和”Highlight Setting”这7个项,如下图4所示。其分别对应编辑窗口的颜色模式设置(展开有”blue”、“darkblue”、“default”、“delek”、“desert”、“elford”、“evening”、“industry”、“koehler”、“morning”、“murphy”、“pablo”、“peachpuff”、“ron”、“shine”、“slate”、“torte”和“zellner”共18种颜色设置模式)、编辑窗口的字体模式设置(展开有”Default”、“Normal”、“Bold”、“Italic”、“Small”、“Medium”和“Large”共7种字体设置模式)、编辑窗口的参数模式设置(展开有”No Number”、“No List”、“No Autoindent”和“No Wrap”共4个参数设置模式)、打开语法设置界面、打开颜色设置界面、打开字体设置界面、打开高亮设置界面。
复制代码


图 4 PNEdit 菜单栏 View


     Menu区域中的Buffers菜单中有”Change Buffer”、”String Buffer”、”File Buffer”和”Tagging”这4个项,如下图5所示。其分别对应打开编辑状态缓冲窗口、字符缓冲窗口、文件缓冲窗口和编辑内容标记设置(展开有”Manual Create”鼠标选中的内容创建标记, “Advanced Create”打开内容标记创建窗口, “Delete Tag”删除光标位置所在的内容标记项, “Delete All Tags”删除所有内容标记项、“Tag List”打开内容标记项列表)。
复制代码


图 5 PNEdit 菜单栏 Buffers


     在PNEdit界面按钮区域中有File、Edit、Search、View、Buffers、Tool和Help这7项如下图6所示。File项中有按钮 、按钮 、按钮 、按钮 和按钮 点击分别对应在当前编辑窗口中打开文件、当前编辑窗口做文件保存、所有编辑窗口做问价保存、设置可编辑状态、设置不可编辑状态。Edit项中的按钮 、按钮 、按钮 、按钮 、按钮 和按钮 分别对应编辑过程回退一步,编辑过程前进一步,选中内容的剪切,选中内容的复制、选中内容的粘贴、打开高级编辑窗口。Search项中的按钮 、按钮 、按钮 、按钮 和按钮 分别对应搜索到的关键字向前跳转、搜索到的关键字向后跳转、打开高级搜索替换窗口、跳转至文件首行、跳转至文件尾行。View项中的按钮 、按钮 、按钮 和按钮 分别对应打开颜色设置窗口、打开语法设置窗口、打开字体设置窗口、打开高亮设置窗口。Buffers项中的按钮 ,按钮 ,按钮 和按钮 分别对应打开编辑过程缓冲、打开编辑字符缓冲、打开编辑文件缓冲、打开编辑标记列表。Tool项中的按钮 、按钮 、按钮 和按钮 分别对应打开查看系统信息(System Information)、打开文件加解密(Encrypt/Decrypt)、打开文件分解和合并(Split/Join)、打开文件列表打印(Directory Print)。Help项中的按钮 对应打开PNFile工具的用户手册, 显示当前工具的版本信息。
复制代码


图 6 PNEdit 文本编辑按钮


     在PNEdit界面文件编辑区域中鼠标右键会弹出菜单如下图7所示,有Undo、Redo、Cut、Copy、Paste、Select Word、Select Line、Select Paragraph、Select All和Copy Full Path这10项。其中Undo、Redo、Cut、Copy和Paste项点击分别对应当前文件编辑窗口中的编辑过程的回退、编辑过程的前进、选中内容的剪切、选中内容的复制、选中内容的粘贴。Select Word、Select Line、Select Paragraph和Select All项点击分别对应当前文件编辑窗口中选中一个字内容,选择一行内容,选中一段内容、选中全部内容。Copy Full Path项点击将当前文件编辑窗口中的文件全路径复制到剪切板中。
复制代码


图 7 PNEdit 文件编辑弹出式菜单


2、编辑窗口设置在 PNEdit 中可以支持同时对多个文件进行文本编辑,在编辑窗口中打开的文本内容其颜色、语法、字体和高亮等属性都可以根据不同需求做相应的设置,用户可以在 PNEdit 工具打开之后在界面中的菜单或按钮打开对应的设置窗口做设置,也可以将需要设置的参数记录在设置文件中。


2.1、编辑窗口文本编辑窗口支持多 Tab 的方式同时打开多个文件进行编辑,Tab 窗口的打开有下面这 4 种方式:File 菜单中的”Open Tab…”项(创建一个新的 Tab 编辑窗口并在该窗口中打开文件)、编辑窗口的 Tab 区域点击鼠标右键弹出菜单(”Close”项对应关闭当前选中的 Tab 窗口、”New Tab”项对应只打开一个空的新 Tab 窗口、”Open Tab”项对应打开一个新 Tab 窗口并打开文件)、编辑窗口打开的文件中有文件路径选中之后使用快捷键”<ctrl>wgf”将该文件在一个新的 Tab 窗口中打开、命令编辑模式时在命令行中输入”:tabnew [file]”将对应的文件在一个新的 Tab 窗口中打开。文件在打开之后会在 Tab 区域中创建各自的 Tab(以当前 Tab 中选中的文件名作为该 Tab 的名字显示),Tab 窗口的关闭可以通过 Tab 区域中的弹出菜单中的”Close”项关闭或者将当前 Tab 窗口中打开的文件编辑窗口都退出编辑也会将该 Tab 窗口关闭。下图 8 所示在编辑窗口中同时打开了文件”test1.tcl”、文件”test2.tcl”、文件”test3.tcl”和文件夹”split_join”这 4 个 Tab 编辑窗口。


图 8 PNEdit 编辑窗口多 Tab


     文本编辑窗口中的每个Tab窗口还支持横向分割和纵向分割的方式同时打开多个文件进行编辑,分割窗口的打开有下面这2种方式:File菜单中的”Split Horizontal…”和”Split Vertical…”项(在当前Tab窗口横向或纵向等比例分裂出一个新的编辑窗口并在该窗口中打开文件)、命令编辑模式时在命令行中输入”:sp[lit] [file]”和”:vs[plit] [file]”将对应的文件在当前Tab窗口中横向或纵向等比例分裂出一个新的编辑窗口并在该窗口中将其打开。分割窗口的关闭可以通过将窗口中打开的文件退出编辑即会将该分割窗口关闭。下图9和图10所示分别同时横向和纵向打开了3个文件,在当前Tab窗口以等比例分割的方式将这些文件在新的窗口中打开。
复制代码


图 9 PNEdit 编辑窗口横向分割


图 10 PNEdit 编辑窗口纵向分割


     文本编辑窗口中可以显示该窗口中打开的文件编辑状态的信息,每个编辑窗口都有保存文件和未保存文件这两个编辑状态,分别表示当前窗口中的内容已经保存到打开的文件中和当前窗口中的内容做了修改但未保存到打开的文件中,这两个状态对应会在Tab窗口名的地方和文件状态信息区域中的文件名地方有体现,保存文件状态仅会显示文件名,但未保存文件状态则会在这两个地方显示文件名后面多一个加号。下图11所示,对于正在编辑的文件”test1.tcl”做了修改但是未将修改后的内容保存到文件中,对应在Tab窗口名和文件状态信息区域中的文件名处都显示了”test1.tcl +”,以表示该窗口中的内容未保存文件。
复制代码


图 11 PNEdit 编辑状态信息


     文本编辑窗口下方有一行编辑信息小窗口,在该小窗口中分为三段信息显示,如下图12所示,左边第一段为编辑命令显示区间,第二段为当前光标所在的行列位置,第三段显示当前光标所在位置对应占整个文件浏览内容的百分比。在第一段编辑命令显示区间会有多种类型的显示信息,如下图13、14、15、16、17和18所示,分别对应命令行模式时输入的编辑命令、对窗口中的内容做选中操作时显示选中的类型、编辑命令在执行之后显示的报告信息、用命令打印一些信息、编辑过程状态信息、命令执行报错信息。
复制代码


图 12 PNEdit 编辑信息窗口


图 13 PNEdit 编辑命令输入


图 14 PNEdit 编辑内容选择


图 15 PNEdit 编辑命令执行报告


图 16 PNEdit 编辑文件信息打印


图 17 PNEdit 编辑过程状态


图 18 PNEdit 编辑报错信息


2.2、颜色设置文本编辑窗口中的颜色设置可以通过 View 菜单中的”Color”项选择设置好的颜色模式,也可以通过 View 菜单中的”Color Setting”项或 View 项中的按钮 打开一个颜色设置窗口,该颜色设置值被用来控制文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的颜色显示。如下图 19 所示,在该设置窗口的 Color 项中有”Background”、”Identifier”、”Comment”、”Keyword”、”Directive”、”Systemtask”、”Numeric”、”Operator”和”String”这 9 个颜色设置对象,其分别对应编辑窗口的背景色、语法解析的标识符、语法解析的注释、语法解析的关键字、语法解析的指令、语法解析的系统任务、语法解析的数字、语法解析的操作符、语法解析的字符串。这 9 个颜色设置对象都有一个按钮打开各自的颜色设置小窗口,在该小窗口中可以根据 RGB 颜色三元素值调节需要的颜色或者在颜色名称输入框中直接输入需要的颜色名称。在该设置窗口的 Style 项中有”blue”、“darkblue”、“default”、“delek”、“desert”、“elford”、“evening”、“industry”、“koehler”、“morning”、“murphy”、“pablo”、“peachpuff”、“ron”、“shine”、“slate”、“torte”和“zellner”共 18 种颜色设置模式,也可以在这里选择设置好的颜色模式。在该设置窗口的 Template 项中是一个文本框例子用来显示 Color 项和 Style 项中设置的颜色值显示效果。在该设置窗口中的按钮 Apply 和 OK 用来确认设置的颜色值被应用到文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的颜色显示,按钮 Reset 用来取消设置的颜色值恢复到设置窗口打开时的初始颜色值。


图 19 PNEdit 颜色设置窗口


2.3、语法设置文本编辑窗口中的语法设置可以通过 View 菜单中的”Syntax Setting”项或 View 项中的按钮 打开一个语法设置窗口,该语法设置仅被用来控制文本编辑窗口中当前选中的编辑窗口中打开的文件内容的语法高亮显示。如下图 20 所示,在该设置窗口的 Syntax 项中有”c/c++”、“css”、“html”、“java”、“javascript”、“json”、“perl”、“php”、“python”、“shell”、“sql”、“systemverilog”、“tcl/tk”、“verilog”、“vhdl”和“xml”共 16 种语法设置类型。在该设置窗口的 Template 项中是一个文本框用来显示 Syntax 项中设置的语法类型对应的例子。在该设置窗口中的按钮 Apply 和 OK 用来确认设置的语法类型被应用到文本编辑窗口中当前选中的编辑窗口文件内容的语法,按钮 Reset 用来取消设置的语法类型恢复到设置窗口打开时的初始语法类型。


图 20 PNEdit 语法设置窗口


2.4、字体设置文本编辑窗口中的字体设置可以通过 View 菜单中的”Font”项选择设置好的字体模式,也可以通过 View 菜单中的”Font Setting”项或 View 项中的按钮 打开一个字体设置窗口,该字体设置值被用来控制文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的字体显示。如下图 21 所示,在该设置窗口的 Family 项中有一个字体类型列表其有当前常用的字体类型。在该设置窗口的 Size 项中有一个字体大小列表其有当前常用的字体大小。在该设置窗口的 Weight/Slant 项中分别设置字体的 Weight 其有”Normal”和”Bold”这两个选项,以及 Slant 其有”Roman”和”Italic”这两个选项。在该设置窗口的 Style 项中有”Normal”、“Bold”、“Italic”、“Small”、“Medium”和“Large”共 6 种字体模式,也可以在这里选择设置好的字体模式。在该设置窗口的 Template 项中是一个文本框例子用来显示 Family 项、Size 项、Weight/Slant 项以及 Style 项中设置的字体值显示效果。在该设置窗口中的按钮 Apply 和 OK 用来确认设置的字体值被应用到文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的字体显示,按钮 Reset 用来取消设置的字体值恢复到设置窗口打开时的初始字体值。


图 21 PNEdit 字体设置窗口


2.5、高亮设置文本编辑窗口中的高亮设置可以通过 View 菜单中的”Highlight Setting”项或 View 项中的按钮 打开一个高亮设置窗口,该高亮设置值被用来控制文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的高亮显示。如下图 22 所示,在该设置窗口的 Cursor 项中有”Line”、“Column”和“Flicker”三个勾选项,其分别对应当前光标所在位置的行高亮显示、当前光标所在位置的列高亮显示、当前光标所在位置的字符闪烁显示,在该三个勾选项后都有“BG”和“FG”这两个勾选项分别设置高亮时的背景色和前景色。在该设置窗口的 Select 项中有“BG”和“FG”这两项分别设置做编辑内容选择时的背景色和前景色显示。在该设置窗口的 Insert 项中有“FG”和“Size”这两项分别设置在编辑时插入光标的前景色和光标的大小。在该设置窗口的 Edit 项中有“BG”和“FG”这两项分别设置当前需要编辑内容的背景色和前景色。在该设置窗口的 Search 项中有“BG”和“FG”这两项分别设置做关键字搜索时匹配到的内容的背景色和前景色。在该设置窗口的 List 项中有“BG”和“FG”这两项分别设置编辑内容的行结束符的背景色和前景色。在该设置窗口的 Tag 项中有“BG”和“FG”这两项分别设置标记内容的背景色和前景色。在 Cursor、Select、Insert、Edit、Search、List 和 Tag 这 7 个设置项中的颜色设置对象都有一个按钮打开各自的颜色设置小窗口,在该小窗口中可以根据 RGB 颜色三元素值调节需要的颜色或者在颜色名称输入框中直接输入需要的颜色名称。在该设置窗口的 Template 项中是一个文本框例子用来显示 Cursor、Select、Insert、Edit、Search、List 和 Tag 项中设置的高亮值显示效果。在该设置窗口中的按钮 Apply 和 OK 用来确认设置的高亮值被应用到文本编辑窗口中所有的 Tab 窗口和横向/纵向分割的窗口中打开的文件内容的高亮显示,按钮 Reset 用来取消设置的高亮值恢复到设置窗口打开时的初始高亮值。


图 22 PNEdit 高亮设置窗口


2.6、设置文件对编辑窗口设置的参数记录可以保存在一个文件中,该文件需命名为”.pnrc”,可以放在 PNEdit 工具启动目录、用户的 Home 目录和 PNEdit 工具包安装目录这三个地方(当有多个”.pnrc”文件时,工具读取设别该文件的优先级顺序为:1、PNEdit 工具启动目录;2、用户的 Home 目录;3、PNEdit 工具包安装目录) ,在 PNEdit 工具启动时自动读取该文件中的参数值,并将其作为工具打开时的初始值设置编辑窗口。设置编辑窗口的命令主要有是否语法高亮显示、编辑窗口长宽大小、编辑参数、编辑颜色、编辑字体、编辑高亮、新文件标题、编辑文件路径列表这 9 种类型,具体如下表 1 所示。


命令格式 设置功能 set syntax <on|off> 默认是启用工具以自动检测语言高亮/着色文本。语言检测是基于文件的扩展名。该工具支持一些当前最流行的语言。


Default is on to enable tool to highlight/colorize text in auto-detected language. The language detecting is based on file's extension. The tool supports limited but most popular languages.set window <default|<width>x<height>> 设置工具窗口的大小。默认值是根据显示屏幕大小自动计算出一个合适的工具窗口大小值。


Set the size for the tool windows. The default is auto calculated on screen size.set number <on|off> 设置行号显示。和编辑命令”set number on”、”set number off”一致,默认是打开。


Same as command ':set number' (on), ':set nonumber' (off). default is on.set list <on|off> 设置不可见内容显示。和编辑命令”set list on”、”set list off”一致,默认是关闭的。


Same as command ':set list' (on), ':set nolist' (off).default is off.set wrap <on|off> 设置行宽换行显示。和编辑命令”set wrap on”、”set wrap off”一致,默认是打开。


Same as command ':set wrap' (on), ':set nowrap' (off). default is on.set autoindent <on|off> 设置行缩进。和编辑命令”set autoindent on”、”set autoindent off”一致,默认是打开。


Same as command ':set autoindent' (on), ':set noautoindent' (off). default is on.set colorstyle <mode name> 设置颜色模式。有多种预设模式可供选择,如”default”、”desert”、”evening”等。


Set color mode. there are multiple preset modes to choose from, such as default, desert, evening, ect..set fontstyle <mode name> 设置字体模式,有”Normal”、”Bold”、”Italic”、”Small”、”Medium”、”Large”等模式,默认是”Medium”模式。


Set font modes, like Normal, Bold, Italic, Small, Medium or Large. default is Medium.set font_family <font name> 设置字符的字体,默认是” Monospace”。


Set the font of charactors. default is Monospace.set font_size <int> 设置字符的大小,默认是 10。


Set the size of charactors. default is 10.set font_weight <normal|bold> 设置字符的 weight 是”normal”或”bold”。


Set normal or bold for charactors.set font_slant <roman|italic> 设置字符的 slant 是”roman”或”italic”。


Set Roman or Italic for charactors.set cursorline <on|off> 将光标所在位置的行高亮,这对光标的识别很有用,默认是关闭的。


Highlight the text line of the cursor with CursorLine, useful to easily spot the cursor. default is off.set cursorline_bgcolor <color name> 在” cursorline”设置为打开时,设置光标行高亮显示的背景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of cursor line when cursor line is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set cursorline_fgcolor <color name> 在” cursorline”设置为打开时,设置光标行高亮显示的前景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of cursor line when cursor line is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set cursorcolumn <on|off> 将光标所在位置的列高亮,这对光标的识别很有用,默认是关闭的。


Highlight the screen column of the cursor with CursorColumn, useful to align text. default is off.set cursorcolumn_bgcolor <color name> 在” cursorcolumn”设置为打开时,设置光标列高亮显示的背景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of cursor column when cursor column is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set cursorcolumn_fgcolor <color name> 在” cursorcolumn”设置为打开时,设置光标列高亮显示的前景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of cursor column when cursor column is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set cursorflicker <on|off> 在光标所在位置闪烁显示,默认是关闭的。


Make the flicker visable. default is on.set cursorflicker_bgcolor <color name> 在” cursorflicker”设置为打开时,设置光标闪烁显示的背景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of flicker when flicker is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set cursorflicker_fgcolor <color name> 在” cursorflicker”设置为打开时,设置光标闪烁显示的前景色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of flicker when flicker is set to on. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set select_bgcolor <color name> 设置内容选择的背景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of selection. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set select_fgcolor <color name> 设置内容选择的前景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of selection. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set insert_color <color name> 设置插入光标的颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set color of insertion. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set insert_width <width> 设置插入光标的宽度,默认宽度是 3。


Set the insert cursor width, default is 3.set edit_bgcolor <color name> 设置编辑的背景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of edit. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set edit_fgcolor <color name> 设置编辑的前景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of edit. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set search_bgcolor <color name> 设置搜索匹配内容的背景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。Set background color of match when searching. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set search_fgcolor <color name> 设置搜索匹配内容的前景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of match when searching. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set list_bgcolor <color name> 设置行尾标识符的背景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of list. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set list_fgcolor <color name> 设置行尾标识符的前景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of list. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set tag_bgcolor <color name> 设置编辑标记的背景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set background color of tag. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set tag_fgcolor <color name> 设置编辑标记的前景颜色。颜色可以是名称或十六进制代码。如果设置的颜色名称或代码不合法时,将应用设置颜色模式中的默认颜色。


Set foreground color of tag. The color can be name or code in HEX. If the color name or code is not set correctly, default one in the set colormode will be applied.set title <strings> 为所有创建的新文件添加预设标题。


Add the preset title for all created new files.set path <path1>[,<path2>,...] 设置搜索路径列表,当前路径引用的是 $path 环境变量。


Set search path list, reference to the current path is $path 表 1 PNEdit 编辑参数设置命令


3、文本编辑方式 PNEdit 是一种支持多模式的文本编辑器,在不同编辑模式下操作行为有所不同,在对编辑的文本内容的选择会有多种选择方式,在做具体编辑操作时主要靠大量的快捷键命令操作来实现快速高效的文本编辑功能。


3.1、编辑模式 PNEdit 文本编辑器主要支持命令模式、输入模式和替换模式这 3 种不同的文本编辑方式。命令模式,在该模式下文本编辑窗口的可输入编辑状态是关闭的,对文本内容进行编辑时可以通过鼠标键、单个快捷键、多个快捷键组合和命令行输入编辑命令这 4 种方式进行快捷的文件内容编辑操作。下图 23 所示是在命令模式下实现的编辑操作,对正在编辑的内容从当前光标所在位置复制当前行以下的三行文本内容至剪切板中,该快捷命令执行的报告被打印在命令行窗口中。


图 23 PNEdit 命令编辑模式


     输入模式,在该模式下文本编辑窗口的可输入编辑状态是打开的,对文本内容进行编辑时可以通过字符直接输入、鼠标键、单个快捷键、多个快捷键组合和命令行输入编辑命令这5种方式进行快捷的文件内容编辑操作。下图24所示是在输入模式下实现的编辑操作,对正在编辑的内容从当前光标所在位置直接输入需要编辑的文本内容,在进入输入模式时命令窗口会打印”INSERT”。
复制代码


图 24 PNEdit 输入编辑模式


     替换模式,在该模式下文本编辑窗口的可输入编辑状态是关闭的,对文本内容进行编辑时可以通过快捷键”r”和快捷键”R”这2种编辑内容替换操作方式,分别对应替换光标所在字符和替换光标至行尾所有字符(碰到<Esc>键则退出替换模式)。下图25所示是在替换模式下实现的编辑操作,对正在编辑的内容从当前光标所在位置至行尾做替换编辑操作,在进入替换模式时命令窗口会打印”REPLACE”。
复制代码


图 25 PNEdit 替换编辑模式


3.2、文本选择 PNEdit 文本编辑器主要支持光标选择、字选择、行选择、段选择、全部选择和列选择这 6 种不同的文本内容选择模式。光标选择模式,在对文本内容进行选择时先通过鼠标左键点击一个位置(即为选择内容的起始点),然后鼠标左键按住不动移动至下一个位置(即为选择内容的结束点),释放鼠标左键则会高亮从起始点到结束点的文本内容,表示该部分内容已被选中。下图 26 所示是一个光标选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL”。


图 26 PNEdit 光标选择模式


     字选择模式,在对文本内容进行选择时用鼠标左键双击一个位置,释放鼠标左键则会高亮落在该位置上的字内容,表示该字内容已被选中(Edit菜单中的”Select”项下的”Word”子项和文本编辑窗口中的弹出式菜单中的”Select Word”项对应同样的功能)。下图27所示是一个字选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL”。
复制代码


图 27 PNEdit 字选择模式


     行选择模式,在对文本内容进行选择时用鼠标左键三击一个位置,释放鼠标左键则会高亮落在该位置上的行内容,表示该行内容已被选中(Edit菜单中的”Select”项下的”Line”子项和文本编辑窗口中的弹出式菜单中的”Select Line”项对应同样的功能)。下图27所示是一个行选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL LINE”。
复制代码


图 28 PNEdit 行选择模式


     段选择模式,点击Edit菜单中的”Select”项下的”Paragraph”子项或文本编辑窗口中的弹出式菜单中的”Select Paragraph”项,则会高亮落在当前光标所在位置上的段内容,表示该段内容已被选中。下图29所示是一个段选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL LINE”。
复制代码


图 29 PNEdit 段选择模式


     全部选择模式,点击Edit菜单中的”Select”项下的”All”子项或文本编辑窗口中的弹出式菜单中的”Select All”项,则会高亮当前打开文件编辑窗口中的全部内容,表示该文本内容已被选中。下图30所示是一个全部选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL LINE”。
复制代码


图 30 PNEdit 全部选择模式


     列选择模式,在进入列模式之后移动光标位置,在移动过程中即会实时高亮列选择的内容。列模式下选中的是一个块内容,块的起始和结束都有行和列两个坐标,分别对应进入列模式时光标所在位置的行列值和光标移动之后光标所在位置的行列值,落在这两个点内的块内容即为被选中的内容。下图31所示是一个列选择模式下选择编辑内容的操作,这部分文本内容在选中之后也会被复制至剪切板中,在该模式选择操作结束时命令窗口会打印”VISUAL BLOCK”。
复制代码


图 31 PNEdit 列选择模式


3.3、快捷命令 PNEdit 文本编辑快捷命令有编辑选择、编辑输入、编辑更换、剪切复制粘贴、编辑参数、文件操作、光标移动、文本替换和列模式编辑这 9 种类型的快捷键命令。在文本编辑时可以使用快捷键对文本内容做选择,具体如下表 2 所示。


命令格式 功能 ggVG 选择全部文本内容。


Select all.<double-mouse-left-click> 选择一个字的内容。当点击的位置在”[]”、”()”、”<>”、”{}”这些匹配对中时则会选择该匹配对包含的全部内容。那些由下划线连接的字母和数字字符被视为属于同一个字,可以通过双击鼠标左键进行选择,这里连续重复的非字母和非空白字符也将被选择,以及连续重复的空白字符也将被选择。


Select word. when click on <>{}, select contents inside matched pairs. Alphabetic and numeric characters joined by underlines are considered as one word and can be selected by double-clicking mouse left button. Continuously duplicated non-alphabetic and non-whitespace characters will be selected too. Continuously duplicated whitespace characters will be selected as well.<triple-mouse-left-click> 选择一行内容。


Select one line.表 2 PNEdit 编辑选择命令


    在文本编辑时可以使用快捷键将编辑窗口的可输入状态打开,将文本编辑窗口切换到输入模式。在输入模式下,键入的任何字符都被视为文本并添加到文件中。按Esc键退出输入模式。通过这些插入/替换命令可以撤消。当'autoindent'打开时,表示当前行的缩进将自动复制并应用于新行,具体如下表3所示。
复制代码


命令格式 功能 a 在当前光标位置的后一个字符处设置编辑窗口的可附加文本内容状态。


Append text after the cursor.A 在当前光标位置的行尾处设置编辑窗口的可附加文本内容状态。


Append text at the end of the line.i 在当前光标位置的前一个字符处设置编辑窗口的可插入文本内容状态。


Insert text before the cursor.I 在当前光标位置的行第一个非空白字符处设置编辑窗口的可插入文本内容状态。


Insert text before the first non-blank in the line.o 在当前光标位置下方新起一行设置编辑窗口的可插入文本内容状态。


Begin a new line below the cursor and insert text.O 在当前光标位置上方新起一行设置编辑窗口的可插入文本内容状态。


Begin a new line above the cursor and insert text.表 3 PNEdit 编辑输入命令


    在文本编辑时可以使用快捷键对文本内容做出更换,通过这些命令插入/替换可以撤消。当'autoindent'打开时,当前行的缩进将被复制和应用自动转到新行,具体如下表4所示。
复制代码


命令格式 功能 s 删除一个字符并设置编辑窗口的可插入文本内容状态。


Delete char and insert.S 与命令“cc”相同。如果'autoindent'是打开的,保持缩进。


Same as command 'cc'. If 'autoindent' is on, preserve the indent.r 替换一个字符,替换后保持命令模式。


Replace one character. Keep in command mode after replacing.R 进入替换模式,对光标所在位置直至行尾内容做逐个字符输入替换,直至使用快捷键[Esc]返回命令模式。


Enter replace mode. [Esc] to get back to command mode.cw 更换(替换)光标位置直至所在的字尾内容。


Change (replace) to the end of the word.ciw 更换(替换)光标位置所在的整个字内容。


Change (replace) entire word.cc 更换(替换)整行内容。如果'autoindent'是打开的,保持缩进。


Change (replace) entire line. If 'autoindent' is on, preserve the indent.c$ 更换(替换)光标所在位置直至行尾内容。


Change (replace) to the end of the line.C 更换(替换)光标所在位置直至行尾内容。(和 c$功能相同)


Change (replace) to the end of the line. (same as c$).<ctrl>h 在输入模式下光标退后并删除一个字符。


Used in input mode, back one character.<ctrl>w 在输入模式下光标退后并删除一个字。


Used in input mode, back one word.<ctrl>u 在输入模式下光标退后并删除至该行第一个非空白字符。


Used in input mode, back to the beginning of non-blank character.[count] J 将当前行至第[count]行以空格间隔行合并成一行内容。如果没有[count]设置,则合并两行内容,在合并过程中行缩进会被删除,并在合并时将行内容之间插入一个空格。


Join [count] lines below to the current one with one space in between. with no [count] set, a minimum of two lines will be joined. Remove the indent and insert one space when joining.[count] gJ 和[count] J 功能类似,只是在行合并时不会在行内容之间插入空格,也不会将行缩进删除。


Similar to [count] J, but don't insert any spaces or remove any indent.u 撤销上次编辑过程。


Undo the last edit.<ctrl>r 重做已撤消的更改。


Redo changes which were undone.:changeb[uffer] 打开编辑过程缓冲窗口。


Open the change buffer window (GUI).:change <change number in change buffer> 跳转至编辑过程缓冲中[change number]指向的列表编辑过程状态。


Go to a change listed in the change buffer.<mouse-middle-click> 将剪贴板中存储的内容粘贴到当前光标处。该操作不会改变当前的命令/输入模式。


Paste from buffer *(clipboard). This does not change the command/input mode.表 4 PNEdit 编辑更换命令


    在文本编辑时可以使用快捷键对文本内容做剪切、复制和粘贴等操作,具体如下表5所示。
复制代码


命令格式 功能 x 删除一个字符并复制至通用缓冲区中。


Delete (Cut) a character to general buffer.nx 删除 n 个字符并复制至通用缓冲区中。


Delete (Cut) n characters to general buffer.X 向后删除一个字符并复制至通用缓冲区中。


Back (Cut) a character to general buffer.nX 向后删除 n 个字符并复制至通用缓冲区中。


Back (Cut) n characters to general buffer.dd 删除一行并复制至通用缓冲区中。


Delete (Cut) a whole line to general buffer.ndd 删除 n 行并复制至通用缓冲区中。


Delete (Cut) n lines to general buffer.dw 删除一个字(从当前光标起至该字尾处)并复制至通用缓冲区中。


Delete (Cut) word (counting from cursor) to general buffer.dnw 删除 n 个字(第一个字为从当前光标起至该字尾处)并复制至通用缓冲区中。


Delete (Cut) n words (counting from cursor) to general buffer.d) 删除当前光标位置至该段结束。


Delete (Cut) to the end of sentence.db 删除前一个字(从当前光标起至该字首处)并复制至通用缓冲区中。


Delete (Cut) previous word to general buffer.dnb 删除前 n 个字(第一个字为从当前光标起至该字首处)并复制至通用缓冲区中。


Delete (Cut) previous n words to general buffer.D 删除当前光标至行尾内容并复制至通用缓冲区中。


Delete (Cut) to the end of the line to general buffer.d$ 删除当前光标至行尾内容并复制至通用缓冲区中。


Delete (Cut) to the end of the line to general buffer."ndd 删除 n 行内容并复制至 缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。


Delete (cut) n lines to buffer *. Buffer * is the special buffer for storing the selection."[a-z]ndd 删除 n 行内容并存储至[a-z]有名缓冲区中。


Delete (cut) n lines to buffer [a-z]."[A-Z]ndd 删除 n 行内容并附加至[a-z]有名缓冲区中。


Delete (cut) n lines and append to buffer [a-z].y 复制光标选择的内容存储至通用缓冲区中。


Yank (copy) the selected chars to general buffer.yy 复制一行内容存储至通用缓冲区中。


Yank (copy) a line to general buffer.Y 复制一行内容存储至通用缓冲区中。


Yank (copy) a line to general buffer.nyy 复制 n 行内容存储至通用缓冲区中。


Yank (copy) n lines to general buffer.nY 复制 n 行内容存储至通用缓冲区中。


Yank (copy) n lines to general buffer.yw 复制一个字内容存储至通用缓冲区中。


Yank (copy) a word to general buffer.ynw 复制 n 个字内容存储至通用缓冲区中。


Yank (copy) n words to general buffer."nyy 复制 n 行内容存储至缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。


Yank (copy) n lines to buffer *. Buffer * is the special buffer for storing the selection."[a-z]nyy 复制 n 行内容存储至[a-z]有名缓冲区中。


Yank (copy) n lines to buffer [a-z]."[A-Z]nyy 复制 n 行内容附加至[a-z]有名缓冲区中。


Yank (copy) n lines and append to buffer [a-z]."[a-z]nY 复制 n 行内容存储至[a-z]有名缓冲区中。


Yank (copy) n lines to buffer [a-z]."[A-Z]nY 复制 n 行内容附加至[a-z]有名缓冲区中。


Yank (copy) n lines and append to buffer [a-z]."nY 复制 n 行内容存储至缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。


Yank (copy) n lines to buffer *. Buffer * is the special buffer for storing the selection.p 将通用缓冲区中的内容粘贴至光标之后。


Put (paste) general buffer after cursor."p 将缓冲区中的内容粘贴至光标之后,该缓冲是用于存储选择内容的特殊缓冲区。


Put (paste) text from buffer * after cursor. Buffer * is the special buffer for storing the selection."[a-z]p 将[a-z]有名缓冲区中的内容粘贴至光标之后。


Put (paste) text from buffer [a-z] after cursor.P 将通用缓冲区中的内容粘贴至光标之前。


Put (paste) general buffer before cursor."P 将缓冲区中的内容粘贴至光标之前,该缓冲是用于存储选择内容的特殊缓冲区。


Put (paste) text from buffer * before cursor. Buffer * is the special buffer for storing the selection."[a-z]P 将[a-z]有名缓冲区中的内容粘贴至光标之前。


Put (paste) text from buffer [a-z] before cursor.np 将通用缓冲区中的内容重复 n 次粘贴至光标之后。


Put (paste) general buffer after cursor by n times."np 将缓冲区中的内容重复 n 次粘贴至光标之后,该缓冲是用于存储选择内容的特殊缓冲区。


Put (paste) text from buffer * after cursor by n times. Buffer * is the special buffer for storing the selection."[a-z]np 将[a-z]有名缓冲区中的内容重复 n 次粘贴至光标之后。


Put (paste) text from buffer [a-z] after cursor by n times.nP 将通用缓冲区中的内容重复 n 次粘贴至光标之前。


Put (paste) general buffer before cursor by n times."nP 将缓冲区中的内容重复 n 次粘贴至光标之前,该缓冲是用于存储选择内容的特殊缓冲区。


Put (paste) text from buffer * before cursor by n times. Buffer * is the special buffer for storing the selection."[a-z]nP 将[a-z]有名缓冲区中的内容重复 n 次粘贴至光标之前。


Put (paste) text from buffer [a-z] before cursor by n times.:stringb[uffer] 打开字符缓冲窗口,在该窗口中可以现实和修改包括剪贴板在内的所有字符缓冲中的内容。


Open the string buffer window (GUI) to display the contents of all string buffers, clipboard included.表 5 PNEdit 剪切复制粘贴命令


    在文本编辑时可以使用命令设置文本内容编辑时的一些常用参数,具体如下表6所示。
复制代码


命令格式 功能:se[t] number 在每行文字前显示行号。


Display a line number in front of every line.:se[t] nonumber 在每行文字前不显示行号。


Switch off ':set number', not display line number any more.:se[t] list 显示不可见字符。


Show invisible characters.:se[t] nolist 不显示不可见字符。


Not show invisible characters.:se[t] autoindent 新起行的缩进功能,即将当前行首作为新行的起始输入光标位置。


Automatically copy indent from current line when starting a new line.:se[t] noautoindent 关闭新起行的缩进功能。


Turn off auto indent.:se[t] wrap 超过窗口宽度的行将换行,并在下一行继续显示。


Lines longer than the width of the window will wrap and displaying continues on the next line.:se[t] nowrap 超过窗口宽度的行不换行,只显示窗口宽度的行内容,未显示的部分需要用窗口中的宽度滚动条查看。


Lines will not wrap and only part of long lines will be displayed.表 6 PNEdit 编辑参数命令


    在文本编辑时可以使用输入命令在文本编辑窗口中直接打开文件,以及在编辑的内容中选择文件打开,这里可以设置相对路径搜索文件,具体如下表7所示。
复制代码


命令格式 功能:se[t] path=<path1>[,<path2>,...] 设置搜索路径列表。搜索路径是在文件相关命令中使用相对路径时将搜索的目录列表。多条路径之间用逗号分隔,路径在列表中的顺序决定了搜索优先级。默认搜索路径是 pnfile 树的主路径。当前路径的引用是 $path。


Set search path list. Search path is a list of directories which will be searched when using relative paths in the file related commands. Multiple paths should be separated by comma, the order of the paths in the list determines the search priority. Default search path is the home path of the pnfile tree. The reference to the current path is $path.:se[t] path+=<path1>[,<path2>,...] 附加路径至搜索路径列表。


Append paths to the search path list.:se[t] path-=<path1>[,<path2>,...] 从搜索路径列表中移除路径。


Remove paths from the search path list.:path[list] 打印列表中的所有搜索路径。


List the search paths.:homepath 打印 pnfile 树的主路径。


Print the home path of the pnfile tree.:r[ead] [file] 将[file] (默认:当前文件)文件内容插入至当前光标之后,该操作可撤销。


Insert the [file] (default: current file) below the cursor. can be undone.gf 找到光标所在的文件名在当前窗口打开并开始编辑,或者找到光标所在的目录在当前窗口打开并浏览该目录。如果编辑器拒绝放弃当前文件,则此命令失败。


Find the file name the cursor is on and edit it, or find the directory the cursor is on and browse it. This command fails if the Editor refuses to abandon the current file.<ctrl>wgf 和 gf 功能类似,但是在新的 tab 窗口中打开。


Similar to gf, but open in a new tab.<ctrl>6 在最新打开的两个文件之间快速来回跳转。


Quickly jump back and forth between the latest opened two files.:E[xplore] [directory] 找到目录并浏览它,:E 不带参数打开当前文件所在的目录。如果当前文件已编辑但未保存,则此操作将失败。


Find the directory and browse it, :E with no argument opens the directory where the current file locates. This fails if the current file is edited but not saved.:E[xplore]! [directory] 和:E[xplore] [directory]功能类似,但放弃任何更改。


Same as :E[xplore] [directory], but discard any changes.:e[dit] [file/directory] 找到文件并编辑它,或者找到目录并浏览它。如果当前文件已编辑但未保存,则此操作将失败。


Find the file and edit it, or find the directory and browse it. this fails if the current file is edited but not saved.:e[dit]! [file/directory] 和:e[dit] [file/directory] 功能类似,但放弃任何更改。


Same as :e[dit] [file/directory], but discard any changes.:ene[w] 编辑一个新的未命名缓冲区。当对当前缓冲区进行了更改但未保存时,此操作将失败。


Edit a new, unnamed buffer. This fails when changes have been made to the current buffer but not saved.:ene[w]! 编辑一个新的未命名缓冲区。丢弃对当前缓冲区的任何更改。


Edit a new, unnamed buffer. Discard any changes to the current buffer.:tabnew [file] 在一个新的 tab 窗口中打开[file]文件内容。当[file]中没有参数时,则仅打开一个新的空白 tab 窗口。


Open [file] in new tab. When with no argument, open a new blank tab.:sp[lit] [file] 将当前窗口横向等比例分割,并在分割窗口中打开(默认当前文件)文件。


Split current window in two. open (default current file) file in the split window.<ctrl>ws 将当前窗口横向等比例分割,并在分割窗口中打开当前文件。


Split current window in two.:vs[plit] [file] 和:sp[lit] [file]功能类似,只是纵向等比例分割编辑窗口。


Like ':split', but split vertically.<ctrl>wv 将当前窗口纵向等比例分割,并在分割窗口中打开当前文件。


Vertically split current window in two.:sav[eas] <file> 将当前编辑窗口中的内容存储至一个新的文件中。


Save the file under a new name.:q[uit] 退出当前窗口。当该窗口中内容有更改但未保存文件时,此操作将失败。


Quit the current window. This fails when changes have been made but not saved.:q[uit]! 退出当前窗口。放弃更改的内容并退出。


Discard any changes and quit.:w[rite] [file] 保存至当前文件,或保存至新文件名中。当文件为只读或指定的[file]存在时写入失败。


Save the file in-place, or under a new name. Writing fails when the file is read-only or when the specified [file] exists.:w[rite]! [file] 保存至当前文件,或保存至新文件名中。


Save the file in-place, or under a new name.:wq [file] 保存至当前文件,或保存至新文件名中,然后退出。当文件是只读时写入失败。当进行了更改但未保存时,退出将失败。


Save the file in-place, or under a new name, and then exit. Writing fails when the file is read-only. Exiting fails when changes have been made but not saved.:wq! [file] 保存至当前文件,或保存至新文件名中,然后退出。


Save the file in-place, or under a new name, and then quit.:qa[ll] 退出所有 tab 窗口。当进行了更改但未保存时,此操作将失败。


Quit all tabs. This fails when changes have been made but not saved.:qa[ll]! 退出所有 tab 窗口。放弃更改的内容并退出。


Discard any changes and quit all tabs.:wqa[ll] 写入(保存)和退出所有 tab 窗口。当文件是只读时写入失败。当进行了更改但未保存时,退出将失败。


Write (save) and quit on all tabs. Writing fails when the file is read-only. Exiting fails when changes have been made but not saved.:wqa[ll]! 写入(保存)和退出所有 tab 窗口。


Write (save) and quit on all tabs.:wa[ll] 写入(保存)所有 tab 窗口。当文件是只读时写入失败。


Write (save) on all tabs. Writing fails when the file is read-only.:wa[ll]! 写入(保存)所有 tab 窗口。


Write (save) on all tabs.ZZ 和:wq 功能相同。


Same as ':wq'.ZQ 和:q 功能相同。


Same as ':q!'.:f[ile] 显示当前文件信息。


Display current file information.<ctrl>g 显示当前文件信息。


Display current file information.g<ctrl>g 显示当前光标信息。


Display current cursor information.:fileb[uffer] 打开文件缓冲窗口。


Open the file buffer window (GUI).:h[elp] 打开编辑命令查询窗口。


Finding the help documents.表 7 PNEdit 文件操作命令


    在文本编辑时可以使用快捷键在打开的文本内容中做光标和窗口的跳转,具体如下表8所示。
复制代码


命令格式 功能 H 光标移至当前编辑窗口屏的的起始行首位置。


Move to upper left corner of current screen.M 光标移至当前编辑窗口屏的的中间行首位置。


Move to middle left of current screen.L 光标移至当前编辑窗口屏的的结尾行首位置。


Move to last left of current screen.w 光标移前进移动一个字并将光标落在字首位置。


Move forward one word.b 光标移后退移动一个字并将光标落在字首位置。


Move backward to the start of the previous one word.e 光标移前进移动一个字并将光标落在字尾位置。


Move to the next end of one word.ge 光标移后退移动一个字并将光标落在字尾位置。


Move to the previous end of one word.k 光标向上移动一行位置。


Move one line up.j 光标向下移动一行位置。


Move one line down.h 光标向左移动一个字符位置。


Move one char left.l 光标向右移动一个字符位置。


Move one char right.gg 光标移至文件起始行首的位置。


Go to the start of a file.G 光标移至文件结尾行首的位置。


Positions you at the end of the file.nG 光标跳转至第 n 行的行首位置。


Go to the start of the line n.:[lineno] 光标跳转至第[lineno]行的行首位置。


Go to the start of line [lineno].$ 光标移至当前行的行尾位置。


Move to the end of a line.<End> 光标移至当前行的行尾位置。


Does the same thing as '$' command.^ 光标移至当前行的第一个非空白字符位置。


Move to the first non-blank character of the line.0 光标移至当前行的行首位置。


Move to the very first character of the line.<Home> 光标移至当前行的行首位置。


Move to the very first character of the line.% 光标在[], {}, <>, ()这些符号前后匹配之间跳转。


Go to the nesxt matched [], {}, <>, ().f[char] 光标移至当前光标位置之后当前行中第一个匹配[char]的位置。如果当前光标位置正好匹配上[char]则光标不移动。


Move to the next [char] of current line. If the cursor is on the [char], will not move.; 重复上一次” f[char]”操作,光标依次跳转至当前行中下一个匹配[char]的位置。


Repeat the last 'f[char]', but move forward if the cursor is on the current [char].<ctrl>u 光标向上移动半个屏的内容。


Scroll down half a screen of text.<ctrl>d 光标向下移动半个屏的内容。


Move the viewing window down half a screen in the file, thus scrolls the text up half a screen.<ctrl>f 光标向下移动一个屏的内容。


Scroll forward by a whole screen.<ctrl>b 光标向上移动一个屏的内容。


Scroll backward by a whole screen.<ctrl>l 当前屏内容重新刷新显示。


Redraw current screen.z<CR> 将当前行置于屏首并将光标移至该行的第一个非空白符的位置。


Make the current line the top of the window and move the cursor to the first non-blank charactor.z. 将当前行置于屏中并将光标移至该行的第一个非空白符的位置。


Make the current line the middle of the window and move the cursor to the first non-blank charactor.z- 将当前行置于屏尾并将光标移至该行的第一个非空白符的位置。


Make the current line the bottom of the window and move the cursor to the first non-blank charactor./{pattern}/[flags] 向前搜索关键字并将光标移至当前屏自上而下第一个匹配的位置,在该命令行尾可加关键字搜索规则标志”i”、”m”、”s”、”r”。这里”i”表示不区分大小写、”m”表示支持跨行匹配、”s”表示用”.”这个字符做通配符、”r”表示全字符匹配。


Search forward and move to next occurrence of {pattern}, flags can be combination of 'i', 'm', 's', 'r'. 'i':(ignore case), 'm':(multi-line), 's':(dot matches all), 'r':(raw data matching).?{pattern}?[flags] 向后搜索关键字并将光标移至当前屏自下而上第一个匹配的位置,在该命令行尾可加关键字搜索规则标志”i”、”m”、”s”、”r”。这里”i”表示不区分大小写、”m”表示支持跨行匹配、”s”表示用”.”这个字符做通配符、”r”表示全字符匹配。


Search backward and move to next occurrence of {pattern}, flags can be combination of 'i', 'm', 's', 'r'. 'i':(ignore case), 'm':(multi-line), 's':(dot matches all), 'r':(raw data matching).<shft><mouse-left-click> 将当前光标所在位置对应的字作为关键字向前搜索并将光标移至匹配到的下一个字的字首位置。


Search forward and move to next occurrence of the word where the cursor is on.

将当前光标所在位置对应的字作为关键字向后搜索并将光标移至匹配到的下一个字的字首位置。

Search backward and move to next occurrence of the word where the cursor is on.


  • 将当前光标所在位置对应的字作为关键字向前搜索并将光标移至匹配到的下一个字的字首位置。


Search forward and move to next occurrence of the word where the cursor is on.n 重复上一次的搜索操作。


Repeat the last search.N 反向重复上一次的搜索操作。


Repeat the last search reversely.表 8 PNEdit 光标移动命令


    在文本编辑时可以使用快捷键对文本内容做替换,搜索并替换整个文件或部分文件,[range]在这里可以是以下几种方式:1)、.:  当前行;2)、n: 第n行;3)、 .+n: 当前行加n行;4)、 $: 最后一行;5)、 m,n: 从第m行到第n行;6)、'<,'>: 选中的文本;在列模式下,搜索和替换只应用于所选的列内容。没有使用[range]的其替换仅在当前行和.'一样。具体如下表9所示。
复制代码


命令格式 功能:%s/[regex_old]/[regex_new]/[flags] 在整个文件中做关键字的替换。在该命令行尾可加关键字搜索替换规则标志”i”、”m”、”s”、”r”。这里”i”表示不区分大小写、”m”表示支持跨行匹配、”s”表示用”.”这个字符做通配符、”r”表示全字符匹配。


Replace old with new throughout file. flags can be combination of 'i', 'm', 's', 'r'. 'i':(ignore case), 'm':(multi-line), 's':(dot matches all), 'r':(raw data matching).:[range]s/[regex_old]/[regex_new]/[flags] 在文件的一个范围内做关键字的替换。在该命令行尾可加关键字搜索替换规则标志”i”、”m”、”s”、”r”。这里”i”表示不区分大小写、”m”表示支持跨行匹配、”s”表示用”.”这个字符做通配符、”r”表示全字符匹配。


Replace old with new in line [range]. flags can be combination of 'i', 'm', 's', 'r'. 'i':(ignore case), 'm':(multi-line), 's':(dot matches all), 'r':(raw data matching).表 9 PNEdit 文本替换命令


    在文本编辑时可以使用快捷键对文本列的内容做编辑操作,其操作方式是垂直执行的,执行的命令也是可以撤消的,具体如下表10所示。
复制代码


命令格式 功能<ctrl>v 开始进入列模式。


Start column mode.k 在列模式中控制选择的块内容向上移动一行。


In column mode, move one line up to select block.j 在列模式中控制选择的块内容向下移动一行。


In column mode, move one line down to select block.h 在列模式中控制选择的块内容向左移动一个字符。


In column mode, move one char left to select block.l 在列模式中控制选择的快内容向下移动一行。


In column mode, move one char right to select block.I 在列模式中进入列字符插入模式。


In column mode, insert characters.s 在列模式中删除块选择的内容将其存入通用缓冲区中并同时进入列字符插入模式。


In column mode, cut to general buffer and insert.d 在列模式中删除块选择的内容将其存入通用缓冲区中。


In column mode, delete (cut) to the general buffer.x 在列模式中删除块选择的内容将其存入通用缓冲区中。


In column mode, delete (cut) to the general buffer.y 在列模式中复制块选择的内容将其存入通用缓冲区中。


In column mode, yank (copy) to the general buffer.p 在列模式中将通用缓冲区中的内容插入在当前光标之后。


In column mode, put general buffer after cursor.P 在列模式中将通用缓冲区中的内容插入在当前光标之前。


In column mode, put general buffer before cursor.np 在列模式中将通用缓冲区中的内容在当前光标之后插入 n 次。


In column mode, put general buffer after cursor by n times.nP 在列模式中将通用缓冲区中的内容在当前光标之前插入 n 次。


In column mode, put general buffer before cursor by n times.J 在列模式中将块选中的行内容合并。在做合并时其每个合并行之间中加一个空格间隔开。


In column mode, join all involved lines together. Remove the indent and insert one space when joining.gJ 在列模式中将块选中的行内容合并。在做合并时其每个合并行之间中无空格做间隔。


In column mode, similar to J, but don't insert any spaces or remove any indent.表 10 PNEdit 列模式编辑命令


4、编辑应用工具 PNEdit 平台中集成了目录浏览界面、高级编辑工具、高级搜索工具、编辑状态缓冲、编辑字符缓冲、编辑文件缓冲和编辑内容标记这 7 个应用工具。其中目录浏览界面是在文本编辑窗口中打开一个文件夹即会打开该界面,其余 6 个应用工具可以通过菜单栏 Edit 中的”Advanced Edit”和”Advanced Search Replace”以及菜单栏 Buffers 中的”Change Buffer”、”String Buffer”、”File Buffer”和”Tagging”,按钮项 Edit 中的 、按钮项 Search 中的 、按钮项 Buffers 中的 、 、 和 分别打开对应的应用工具。


4.1、目录浏览界面下图 32 所示是一个打开的目录浏览界面,该窗口中的第 1 行至 6 行为目录浏览界面固定显示的头部分,第 3 行显示当前打开的目录路径为”/home/test/test_case/script/split_join”,第 4 行显示打开的目录结构按大小排序,第 5 行列出了快捷操作目录浏览界面的方式(快捷键<F1>或输入编辑命令”:help”对应打开编辑命令帮助窗口、快捷键”-”对应回退到上一层目录、快捷键”D”对应删除目录、快捷键”R”对应重命名目录、快捷键”s”对应变换不同排序方式(按文件大小、文件名和文件更新时间依次切换))。第 7 行至目录列表结尾是目录浏览界面的正文部分,其每一行都可以用上下键逐行跳转或用鼠标左键点击直接跳转,第 7 行可回车键会退上一层目录,第 8 行至 13 行可回车键进入对应文件夹下一层目录,第 14 行至目录列表结尾可回车键打开对应的文件内容。


图 32 PNEdit 目录浏览界面


4.2、高级编辑工具下图 33 所示为高级编辑工具界面,其中 Position 栏用于显示当前选择编辑的内容,Operation 栏用于控制对于选择部分内容的编辑操作。在 Position 栏中有行模式”Line Mode”和列模式”Column Mode”这两种编辑选择模式,”From”和”To”后的输入框对应输入选择的起始和结束点坐标位置,全部选择”All”、选择当前行”Current Line”和选择文本窗口选择的内容”Smart”这三种常用的选择方式,按钮”Highlight”点击高亮输入的选择的内容。在 Operation 栏中的按钮”Cut”、”Copy”、”Join”和”Paste”分别对应将选择编辑部分的内容做剪切、复制、合并、粘贴(在粘贴按钮后的输入框对应输入粘贴的坐标位置)操作,Column Mode Only 栏为仅支持列模式的操作,在该栏中的按钮”Insert”和”Change”分别对应在列模式下的插入和更换操作,在按钮后的输入框对应输入需要插入和更换的内容。


图 33 PNEdit 高级编辑工具


4.3、高级搜索工具下图 34 所示为高级搜索工具界面,其中 Position 栏用于显示当前选择搜索的内容,Expression 栏用于选择搜索的匹配模式以及搜索和替换操作的关键字内容。在 Position 栏中有行模式”Line Mode”和列模式”Column Mode”这两种搜索选择模式,”From”和”To”后的输入框对应输入选择的起始和结束点坐标位置,全部选择”All”、选择当前行”Current Line”和选择文本窗口选择的内容”Smart”这三种常用的选择方式。在 Expression 栏中有”Normal”和”Regex” 这两种模式,在”Normal”模式中有”Ignore Case”和”Whole Word”这两个勾选项分别对应不区分大小写和完整字匹配,在”Regex”模式中有”I”、“M”、”S”和”R”这 4 个勾选项分别对应不区分大小写、跨行匹配、点字符通配、字符区分,”Search”和”Replace”后的输入框分别对应输入搜索和替换操作的关键字内容。按钮”Search”、”Prev”和”Next”分别对应根据设置的搜索条件开始搜索操作、跳转前一个搜索匹配项、跳转后一个搜索匹配项,按钮”Replace All”、”Replace Next”分别对应根据设置的搜索和替换条件开始全部替换操作、逐个替换操作。


图 34 PNEdit 高级搜索工具


4.4、编辑过程缓冲下图 35 所示为编辑过程缓冲界面,在该缓冲窗口中显示了当前文本窗口的编辑过程状态列表,该列表中有”Number”、”Saved”、”Update Time”、”Position”和”Information”这 5 列分别对应编辑过程编号、编辑过程存文件状态、编辑过程更新时间、编辑过程坐标位置、编辑过程文本信息,在该列表中鼠标靠近某项时会有一个浮动窗口显示该项的编辑过程状态的详细信息,鼠标左键单击某项时会高亮当前项,鼠标左键双击某项时会在文本窗口中跳转至该项对应的编辑过程。按钮”Undo”、”Redo”分别对应回退上一个编辑过程状态、前进下一个编辑过程状态,按钮”Goto”、”Clear”分别对应跳转至列表中选中项的编辑过程状态、清除当前编辑过程状态记录的整个缓冲项。


图 35 PNEdit 编辑过程缓冲


4.5、编辑字符缓冲编辑字符缓冲用于存储编辑过程中所需要的字符,一个完整的字符缓冲区有三种类型,分别为一个通用缓冲区,10 个剪贴板缓冲区和 26 个有名缓冲区。存储在每个编辑缓冲区中的所有字符都可以在编辑字符缓冲窗口中查看和编辑。PNEdit 工具打开之后都有一个专用的字符缓冲区集,在该 PNEdit 窗口下所有的文本编辑窗口共享相同的字符缓冲区。下图 36 所示为编辑字符缓冲中对应的通用缓冲区,图中文本框中显示了当前存储在该缓冲区中的字符内容,存储在缓冲区中内容大多是由编辑更换命令操作的字符。下面列出了更新通用缓冲区的命令,在执行这些命令时删除或复制的字符串将会更新该缓冲区中的内容。s: 删除一个字符并设置编辑窗口的可插入文本内容状态。S: 与命令“cc”相同。如果'autoindent'是打开的,保持缩进。cw: 更换(替换)光标位置直至所在的字尾内容。ciw: 更换(替换)光标位置所在的整个字内容。cc: 更换(替换)整行内容。如果'autoindent'是打开的,保持缩进。c功能相同)x: 删除一个字符并复制至通用缓冲区中。nx: 删除 n 个字符并复制至通用缓冲区中。X: 向后删除一个字符并复制至通用缓冲区中。nX: 向后删除 n 个字符并复制至通用缓冲区中。dd: 删除一行并复制至通用缓冲区中。ndd: 删除 n 行并复制至通用缓冲区中。dw: 删除一个字(从当前光标起至该字尾处)并复制至通用缓冲区中。dnw: 删除 n 个字(第一个字为从当前光标起至该字尾处)并复制至通用缓冲区中。d): 删除当前光标位置至该段结束。db: 删除前一个字(从当前光标起至该字首处)并复制至通用缓冲区中。dnb: 删除前 n 个字(第一个字为从当前光标起至该字首处)并复制至通用缓冲区中。D: 删除当前光标至行尾内容并复制至通用缓冲区中。d$: 删除当前光标至行尾内容并复制至通用缓冲区中。y: 复制光标选择的内容存储至通用缓冲区中。yy: 复制一行内容存储至通用缓冲区中。Y: 复制一行内容存储至通用缓冲区中。nyy: 复制 n 行内容存储至通用缓冲区中。nY: 复制 n 行内容存储至通用缓冲区中。yw: 复制一个字内容存储至通用缓冲区中。ynw: 复制 n 个字内容存储至通用缓冲区中。s: 在列模式中删除块选择的内容将其存入通用缓冲区中并同时进入列字符插入模式。d: 在列模式中删除块选择的内容将其存入通用缓冲区中。x: 在列模式中删除块选择的内容将其存入通用缓冲区中。y: 在列模式中复制块选择的内容将其存入通用缓冲区中。


图 36 PNEdit 编辑字符通用缓冲区


     下图37所示为编辑字符缓冲中对应的剪切板缓冲区,这里最多有十个剪贴板缓冲区可用,由一个下拉列表记录最近的十个选择历史。在PNEdit工具中的文本编辑窗口中,用户可以通过点击鼠标中键粘贴最新(顶部)剪切板缓冲区的内容,类似地,用户也可以将其粘贴到另一个应用程序中。在剪贴板缓冲区列表后有一个Top按钮,它可以更改列表的顺序并使任何可用的剪切板缓冲区位于顶部,这里按钮Top的操作只有在点击按钮Save之后才会生效。最新的(顶部)剪切板缓冲区也可以通过特殊的寄存器”*”来访问,例如,在命令模式下,命令"*y复制一行,创建一个新的剪切板板缓冲区作为最新的一行,并将复制的一行存储到最新的剪切板缓冲区,类似地,”*p”命令粘贴最新剪切板缓冲区的内容。图中文本框中显示了当前存储在最新的9号剪切板缓冲区的字符内容,下面列出了操作剪切板缓冲区的相关命令。
复制代码


"ndd: 删除 n 行内容并复制至 缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。"nyy: 复制 n 行内容存储至缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。"nY: 复制 n 行内容存储至缓冲区中,该缓冲是用于存储选择内容的特殊缓冲区。"p: 将缓冲区中的内容粘贴至光标之后,该缓冲是用于存储选择内容的特殊缓冲区。"P: 将缓冲区中的内容粘贴至光标之前,该缓冲是用于存储选择内容的特殊缓冲区。"np: 将缓冲区中的内容重复 n 次粘贴至光标之后,该缓冲是用于存储选择内容的特殊缓冲区。"nP: 将缓冲区中的内容重复 n 次粘贴至光标之前,该缓冲是用于存储选择内容的特殊缓冲区。


图 37 PNEdit 编辑字符剪切板缓冲区


     下图38所示为编辑字符缓冲中对应的有名缓冲区,这里有26个名称为a - z的有名缓冲区可供使用,这些缓冲区中的内容可以通过命令中引用”a”到”z”相关的任何复制、删除、剪切、附加或粘贴命令来访问,例如,在命令模式下,命令"ay表示复制一行并存储到A有名缓冲区中,命令"Ay表示复制一行并附加到A有名缓冲区中,类似地,命令"bp表示在光标前粘贴B有名缓冲区中的内容。     在PNEdit工具打开时是没有为任何有名缓冲区的预留空间的,用户通过删除或复制命令将一些内容存储到任何有名缓冲区中,这个特定的有名缓冲区的空间才会被开启并在已使用的下拉列表中记录该有名缓冲区,在该列表后的按钮Delete点击可以将列表中选中的有名缓冲区删除,同时,也可以通过按钮New创建一个新的未被占用的有名缓冲区,该按钮后的下拉列表中记录了当前未被使用的有名缓冲区,这里按钮Delete和按钮New的操作只有在点击按钮Save之后才会生效。图中文本框中显示了当前存储在A有名缓冲区的字符内容,下面列出了访问有名缓冲区的命令。
复制代码


" [a-z]ndd: 删除 n 行内容并存储至[a-z]有名缓冲区中。" [A-Z]ndd: 删除 n 行内容并附加至[a-z]有名缓冲区中。" [a-z]nyy: 复制 n 行内容存储至[a-z]有名缓冲区中。" [A-Z]nyy: 复制 n 行内容附加至[a-z]有名缓冲区中。" [a-z]nY: 复制 n 行内容存储至[a-z]有名缓冲区中。" [A-Z]nY: 复制 n 行内容附加至[a-z]有名缓冲区中。" [a-z]p: 将[a-z]有名缓冲区中的内容粘贴至光标之后。" [a-z]P: 将[a-z]有名缓冲区中的内容粘贴至光标之前。" [a-z]np: 将[a-z]有名缓冲区中的内容重复 n 次粘贴至光标之后。" [a-z]nP: 将[a-z]有名缓冲区中的内容重复 n 次粘贴至光标之前。


图 38 PNEdit 编辑字符有名缓冲区


     下图39所示为对编辑字符缓冲中的三种类型缓冲区可以分别做编辑、保存和读取操作,可以通过点击窗口中的按钮Edit来修改所选缓冲区中的内容,在点击按钮Save保存之后即可通过编辑命令中的读取命令来获取更新之后的内容。除了可以修改缓冲区中的内容之外,编辑的插入模式也可以在该编辑字符缓冲窗口中修改,通用和剪切板缓冲区支持光标模式、行模式和列模式这3种插入模式,对于有名缓冲区仅支持前两种插入模式。在光标模式下插入的内容会被放在当前文本窗口中当前光标所在位置之后,在行模式下将会从当前光标所在行的以下行中插入内容。在列模式插入时会将选定的有名缓冲区中的内容视为按列模式插入并将垂直插入光标所在位置的文本中。在该窗口右下角的按钮Reset点击将取消当前的修改并恢复至在编辑字符缓冲窗口打开之前的所有缓冲区的内容和插入模式。
复制代码


图 39 PNEdit 编辑字符缓冲内容编辑


4.6、编辑文件缓冲下图 40 所示为编辑文件缓冲界面,在该缓冲窗口中显示了当前所有文本窗口中打开过的文件列表,该列表中有”File Name”、”File Size”、”Update Time”和”File Path”这 4 列分别对应打开过的文件名、文件的大小、文件的更新时间、文件所在的文件夹全路径,在该列表中鼠标靠近某项时会有一个浮动窗口显示该项的编辑文件的详细信息,鼠标左键单击某项时会高亮当前项,鼠标左键双击某项时会在当前文本窗口中新打开该项对应存储在缓冲区中的文件内容。按钮”Refresh”、”Delete”分别更新该缓冲区中的文件列表、从缓冲区中删除列表中选中项对应的文件,按钮”Open”、”Open Tab”分别对应在当前文本窗口中新打开列表选中项对应存储在缓冲区中的文件内容、新打开一个 tab 窗口并打开列表选中项对应存储在缓冲区中的文件内容。


图 40 PNEdit 编辑文件缓冲


4.7、编辑内容标记下图 41 所示为编辑编辑内容标记界面,被选择标记的内容在文本窗口中被高亮显示。高亮显示的部分会被记录在标记列表中,在列表窗口中显示了当前文本窗口中所有做了标记的列表,该列表中有”Line”、”Content”这两列分别标记内容的起始和结束行号、标记内容的起始和结束行内容,在该列表中鼠标靠近某项时会有一个浮动窗口显示该项标记的详细信息,鼠标左键单击某项时会高亮当前项,鼠标左键双击某项时光标会跳转至当前文本窗口中标记的内容,该列表左下方显示当前标记项的个数,按钮”Goto”、”Delete”分别对应跳转至当前列表选中项所在文本窗口中标记的内容、将当前列表选中项的标记删除。创建标记有”Manual Create”、”Advanced Create”这两种方式分别对应将文本窗口中选中的内容部分创建标记、打开标记创建窗口。下图 42 所示为打开的”Tag Advanced Create”窗口,在该窗口中有”Line Range”、”Line Extend”选项分别对应行范围模式(“Start”项后的输入框输入起始行号,”End”项后的输入框输入结束行号)、行扩展模式(“Start”项后的输入框输入起始行号,”Extend”项后的输入框输入从起始行起需要扩展的行数),点击按钮 Apply 和 OK 可以将当前设置的行内容在文本窗口中创建标记。删除标记有”Delete Tag”、”Delete All Tags”这两种方式分别对应删除当前光标位置所在的标记项(若光标位置无标记项则不删除任何标记项)、删除当前文本窗口中所有标记项。


图 41 PNEdit 编辑内容标记列表


图 42 PNEdit 编辑内容标记创建

用户头像

Geek_6bf591

关注

还未添加个人签名 2021.07.19 加入

还未添加个人简介

评论

发布
暂无评论
PNEdit文本编辑器