VI软件操作手册V2.0
- 格式:pdf
- 大小:2.49 MB
- 文档页数:25
Vi使用与操作在介绍如何使用vi之前,了解vi具有两种基本模式是很重要。
这两种基本模式为输入模式和指令模式。
输入模式为输入命令,文本就会显示在屏幕上;而指令模式为输入命令就执行命令,而不会显示文字。
理解指令模式最简单方式就是想象平时剪切、复制以及粘贴数据时所发生的情况。
在默认状态下,vi以指令模式下启动,因此你输入命令时不会显示文字,除非你输入命令切换至输入模式。
大多数vi命令不会屏幕上显示任何东西,你只需要知道它们的工作过程就足够了。
使用[Esc]键可以在输入模式和指令模式之间切换。
如果你已经处于指令模式中,使用[Esc]将会告诉vi,你已经输入命令并将要执行命令。
如果你没有输入任何命令,在指令模式中按下[Esc]键将中断操作。
现在我已经介绍了vi的基本操作,你可以动手试用一下。
首先,在你的工作站打开一个终端窗口,你只需在$提示中输入vi然后按回车键就可以启动vi编辑器。
接着,你将看到弹出一个页面左下角有一个~符号的空白文件。
这一符号不容易看到,但是你看到的这些~符号正是表示处于文件的底部。
当对文件保存之后,这些符号就不会显示出来。
若要编辑某个文件或者为一空白文件命名,你可输入vi filename。
vi filename可以是一个已经存在的文件名或者是一个给新文件指定的名称。
通用输入模式vi编辑器的使用格式: vi 文件名各个工作模式的互相切换:----从命令模式切换到插入模式按:i键按:s键按:insert键按:a键按:o键----从插入模式切换到命令模式按:esc键----从命令模式切换到命令行模式按:shift+":"----从插入模式切换到命令行模式按:esc ----> shift + :----从命令行模式切换到插入模式按:esc ----> 按插入指定i3.>命令模式下常用命令:x---删除当前光标所在字符dd--删除当前光标所在整行u---恢复删除(按一次u恢复一次) yy--复制整行p---粘贴/放置r---修改光标所在字符R---进入替换状态s---删除光标所在字符,并进入编辑模式S----删除光标所在行,并进入编辑模式4.>命令行模式常用命令::q--不保存退出(如果对文件进行了修改而没有保存,会警告,且无法离开。
一.vi的基本概念文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim(vi的增强版本)和nano。
vi和vim是Linux系统中最常用的编辑器。
vi编辑器是所有Linux系统的标准编辑器,用于编辑任何ASCII文本,对于编辑源程序尤其有用。
它功能非常强大,通过使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制和粘贴等操作。
vi编辑器有3种基本工作模式,分别是命令模式、插入模式和末行模式。
在使用时,一般将末行模式也算入命令行模式。
各模式的功能区分如下。
1.命令行模式控制屏幕光标的移动,字符、字或行的删除,移动、复制某区域及进入插入模式,或者到末行模式。
2.插入模式只有在插入模式下才可以做文本输入,按“ESC”键可回到命令行模式。
3.末行模式将文件保存或退出vi编辑器,也可以设置编辑环境,如寻找字符串、列出行号等。
二.vi的基本操作1.进入vi编辑器在系统shell提示符下输入vi及文件名称后,就进入vi编辑画面。
如果系统内还不存在该文件,就意味着要创建文件;如果系统内存在该文件,就意味着要编辑该文件。
下面就是用vi编辑器创建文件的示例。
#vi filename~进入vi之后,系统处于命令行模式,要切换到插入模式才能够输入文字。
2.切换至插入模式编辑文件在命令行模式下按字母“i”就可以进入插入模式,这时候就可以开始输入文字了。
3.退出vi及保存文件在命令行模式下,按冒号键“:”可以进入末行模式,例如:[:w filename]将文件内容以指定的文件名filename保存。
输入“wq”,存盘并退出vi。
输入“q!”,不存盘强制退出vi。
下面表示vi编辑器的3种模式之间的关系。
三.命令行模式操作1.进入插入模式按“i”:从光标当前位置开始输入文件。
按“a”:从目前光标所在位置的下一个位置开始输入文字。
按“o”:插入新的一行,从行首开始输入文字。
按“I”:在光标所在行的行首插入。
启动 vi 编辑器启动 vi 编辑器在提示符后输入以下命令启动vivi(1)$ vi filename如果名为filename的文件存在屏幕上将显示该文件的第一页如果该文件不存在将进行创建同时出现黑屏对于没有耐心阅读以下 8 页内容的读者学习操作之前要先了解如何退出vi其秘诀在于按下Esc:q!即可退出 vi 并放弃所做的编辑注释系统中存在可选的编辑器如果不想使用vi可以选用免费提供的 Emacs 编辑器Emacs 是一种应用广泛可提供多种功能的公共域编辑器GNU Emacs 及其他相关软件可从以下地址获得Free Software Foundation,Inc.675Massachusetts AvenueCambridge,MA02139-3309USA+1-617-876-3296gnu@ftp:///pub/gnu/GETTING.GNU.SOFTWARE还可从 1992 年出版的GNU Emacs: UNIX Text Editing and Programming作者 Addison-Wesley中获得有关 Emacs 的信息启动 vi 编辑器vi 中的命令模式和文本输入模式vi编辑器有两种处理文本的基本模式•命令模式•文本输入模式进入vi以后将处于命令模式直至输入一个文本输入代码如本部分说明的i或a在文本输入模式中可以删除刚才输入的文本并重新键入按CTRL-H键或Backspace键但是如果要在文本周围移动并执行其他文本处理命令必须按ESC键返回命令模式出错时使用以下步骤更正错误•如果输入文本时出现键入错误请按Backspace键删除错误的文本然后重新键入正确的文本•u撤消命令小写的u撤消对文本所做的最后更改U撤消命令大写的U撤消自开始编辑某一行时对该行所做的全部更改•如果键入时出现多处错误且不能恢复请不要保存文件然后退出vi并重新启动要执行此操作请按ESC键然后键入q! Enter注意随时保存工作编辑文件时请随时保存所做的更改每 5 - 10 分钟一次如果遇到断电等突发事故则定期保存文件可以避免丢失对文件所做的更改请参阅保存工作并退出 vi当然很可能只有当因突然停电而丢失了一天的工作成果时才会发现该建议的重要性进而才会养成每 5 - 10 分钟保存一次工作的习惯输入和删除文本输入和删除文本请按ESC键确保vi处于命令模式然后可以执行以下任何一个命令文本输入命令将vi置于文本模式下而删除命令却无此功能键入输入文本i在光标之前光标后的所有内容都向右移I在一行的第一个字符之前a在当前光标位置之后光标向右移然后插入文本如同使用iA在一行的结尾处o在光标下方另起一行以输入文本小写的oO在光标上方另起一行以输入文本大写的O键入删除x删除用光标突出显示的字符但不会将文档置于文本模式下n x自光标所在处开始的n个字符dw自光标所在处开始到下一个词或第一个标点前的字符dd删除当前行dG删除文件结束前的所有行包括当前行在vi中输入命令时字母形式大写或小写字母是有所区别的例如小写的i和大写的I表示两个不同的命令因此如果光标未正常移动请确定Caps键是否处于锁定状态或向您的系统管理员咨询定位光标定位光标下列各键按如下方式移动光标首先按ESC键进入命令模式操作键入向右移动光标l或右箭头键向左移动光标h或左箭头键向上移动光标k或上箭头键向下移动光标j或下箭头键注释使用行号要移动到指定的行请使用G转至命令例如假定您正在编辑文件并希望转至第 799 行请键入799G这样光标就会移到第 799 行同样要转至文件的第 1 行请键入1G要将光标移动到最后一行请键入G要查找当前行的行号请按CTRL-G键要沿文件左边距显示行号请键入:set number滚动查看文本滚动查看文本要滚动查看文本请按ESC键确定您是否处于命令模式然后按住CTRL键和适当的键滚动方式按住滚动到上一屏CTRL-B向上滚动半屏CTRL-U向上滚动一行CTRL-Y滚动到下一屏CTRL-F向下滚动半屏CTRL-D向下滚动一行CTRL-E查找文本模式查找文本模式要自当前光标位置向上搜索请使用以下命令/pattern Enter其中pattern表示要搜索的特定字符序列要自当前光标位置向下搜索请使用以下命令?pattern Enter按下Enter键后vi将搜索指定的模式并将光标定位在模式序列中的第一个字符处例如要向上搜索place一词请键入/place Enter如果vi找到了place它将把光标定位在p处要搜索place的其他匹配请按n或N•n继续朝同一方向搜索place•N反方向进行搜索如果vi未找到指定的模式光标位置将不变屏幕底部显示以下消息Pattern: 未找到查找文本模式搜索特殊匹配在上面的示例中vi查找到包含模式place的任何序列其中包括displaceplacement和replaced•要查找单个的place请键入该模式并在其前后各加一个空格/place Enter•要查找仅出现在行首的place请在该模式前加一个插字符号 (^)/^place Enter•要查找仅出现在行尾的place请在该模式后加一个货币符号 ($)/place$Enter使用 ^要逐字搜索这种带有插字符号 (^) 或货币符号 ($) 的字符请在字符前加一个反斜线 (\)反斜线指示vi搜索特殊字符使用 $特殊字符是指在vi中具有特殊功能的字符例如^$*/和.例如$通常表示转至行尾但是如果$前紧跟一个\则$只是一个普通的字符使用 \例如/(No \$ money)向上搜索模式(No $ money)紧跟在$之前的转义字符 (\) 指示vi逐字搜索货币符号取代字符取代字符要取代文本中的单个字符请按ESC键进入命令模式将光标定位在您希望取代的字符处并在命令模式下键入r然后键入取代字符r命令仅允许替换一个字符取代了字符以后即返回命令模式替换字符要用一个或多个字符替换单个字符请在命令模式下键入s与r命令不同的是s命令将您置于插入模式下并允许用多个字符替换单个字符键入s命令后该字符处将出现一个货币符号 ($)键入所需的一个或多个字符以后请按ESC键要替换多个原始字符请在s命令前加一个表示字符数目的数字保存工作并退出 vi保存工作并退出 vi无论是否退出vi均可保存所做的工作按ESC键确定vi是否处于命令模式操作键入保存但不退出vi:w保存并退出vi:wq退出vi但不保存更改:q!用其他文件名保存:w filename在现有文件中保存并覆盖该文件:w! filename要打印文件请参阅第 2 章处理文件和目录中的查看和打印文件使用选项更改 vi 环境使用选项更改 vi 环境要定制vi可以任意设置或取消设置某些选项进入vi时选项均设置为特定的缺省值退出vi时所有选项均变为缺省值因此每次进入vi时都需要重新设置选项请参阅下一部分了解如何设置永久性选项要查看所有缺省选项请键入:set all Enter要更改这些选项的值请使用:set命令:set option Enter其中option是要使用的编辑器选项的名称参阅下表关于这些选项的说明要取消设置撤消某个编辑器选项请在选项前键入no:set no option Enter表4-1编辑器选项选项缩写缺省值设置后的效果all~~在屏幕上列出所有编辑器选项autoindent ai noai文本的每个新行均与上一行对齐适用于程序员ignorecase ic noic使vi在搜索过程中忽略大小写number nu nonu对文本各行进行编号readonly~noreadonly对正在编辑的文件启用写保护这样可以避免意外更改或破坏文件内容showmatch sm nosm键入右边的圆括号花括号或方括号时显示左边相应的圆括号花括号或方括号键入数学表达式或编写程序使用的语言中会用到圆括号花括号或方括号时此选项会很有用showmode~noshowmode根据所处的模式屏幕底部显示INPUT MODE或REPLACE MODE消息wrapmargin wm wm=0零更改右边距n等于右边距中的空格数例如如果将 80 列作为终点则:set wm=8将在 72 列处设置右边距使用 vi 编辑器设置永久性环境第4章110设置永久性环境为避免每次进入 vi时都要设置选项或定义缩写或宏请将所有常用的选项和定义放入主目录下的 .exrc文件中每次进入 vi 时vi 都会自动读取此文件定制后的 vi环境将持续使用其内容要创建或更改 .exrc文件请执行以下操作1.在 HP-UX 提示符后键入 cd确定是否处于主目录下然后使用 vi 创建或编辑 .exrc文件$ cd $ vi .exrc2.键入希望设置的永久性选项单词缩写和宏不要在命令前加冒号3.键入 :wq 保存文本并退出 vi创建了 .exrc文件后无论何时需要更改 vi环境均可访问此文件可以将上一部分讨论的编辑器选项放入此文件中使用 vi 编辑器设置永久性环境第4章111更改 .exrc文件的示例使用选项更改 vi环境中举例说明了一些更改 vi 整体行为的选项另外还可以使用 ab定义常用表达式的缩写形式供 vi识别使用如果 .exrc文件中包括以下选项和缩写set wm=8set showmodeab eeg Electrical Engineering则说明您已对 vi 环境进行了更改因此每次进入 vi时您都会发现•右边距自动包含 8 个空格更改了缺省值0回车键将出现在大约 72 个空格后•处于文本插入模式时屏幕右下角将显示INPUT MODE•无论何时输入 eeg 此缩写都会自动扩展成 Electrical Engineering更多信息有关这种多功能编辑器的详细信息请参阅The Ultimate Guide to the vi and exText Editors使用 vi 编辑器本章命令汇总第4章112本章命令汇总操作命令进入 vi 并创建或使用现有的file vi file Enter在光标前插入文本 i在光标后附加文本 a删除一个字符 x返回命令模式 ESC向右移动光标 l 或右箭头键向左移动光标 h 或左箭头键向上移动光标 k 或上箭头键向下移动光标j 或下箭头键退出 vi 但不保存更改 :q! Enter 写入保存当前文件:w 写入当前文件并退出 vi :wq将当前文件写入 filename:w filename 用当前文件覆盖 filename 的内容 :w! filename将当前文件的 x 至 y 行写入 filename :x y wfilenamex y 为特定的行号或位置标记将 filename的内容插入到当前文件中 :r filename 在 vi 中运行 HP-UX 命令:!command 打印当前文件请参阅第 2 章处理文件和目录中的查看和打印文件:!lp %。
vi使用手册1进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令:/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:!command:执行shell命令command:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行。
Vi编辑器的基本使用方法Vi编辑器的基本使用方法 ........................................................................................................................................................................1.vi的基本概念.....................................................................................................................................................................................1.1.命令行模式command mode)..............................................................................................................................................1.2.插入模式(Insert mode) .....................................................................................................................................................1.3.底行模式(last line mode)..................................................................................................................................................2.vi的基本操作.....................................................................................................................................................................................2.1.进入vi ....................................................................................................................................................................................2.2.切换至插入模式(Insert mode)编辑文件..........................................................................................................................2.3.Insert 的切换 .........................................................................................................................................................................2.4.退出vi及保存文件 ...............................................................................................................................................................3.命令行模式(command mode)功能键..........................................................................................................................................3.1.插入模式 ................................................................................................................................................................................3.2.从插入模式切换为命令行模式 ............................................................................................................................................3.3.移动光标 ................................................................................................................................................................................3.4.删除文字 ................................................................................................................................................................................3.5.复制 ........................................................................................................................................................................................3.6.替换 ........................................................................................................................................................................................3.7.回复上一次操作 ....................................................................................................................................................................3.8.更改 ........................................................................................................................................................................................3.9.跳至指定的行 ........................................................................................................................................................................st line mode下命令简介...............................................................................................................................................................4.1.列出行号 ................................................................................................................................................................................4.2.查找字符 ................................................................................................................................................................................4.3.保存文件 ................................................................................................................................................................................4.4.离开vi ....................................................................................................................................................................................5.vi命令列表.........................................................................................................................................................................................5.1.下表列出命令模式下的一些键的功能:.............................................................................................................................5.2.下表列出行命令模式下的一些指令:.................................................................................................................................6.Vi set...................................................................................................................................................................................................6.1.set autoindent..........................................................................................................................................................................6.2.set list......................................................................................................................................................................................6.3.set number...............................................................................................................................................................................6.4.set readonly.............................................................................................................................................................................6.5.set shiftwidth...........................................................................................................................................................................6.6.set showmatch.........................................................................................................................................................................6.7.set tabstop ...............................................................................................................................................................................6.8.set wrapscan............................................................................................................................................................................7.有几点注意要提醒一下:.................................................................................................................................................................7.1.用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。
vi是Linux中功能强大的编辑工具。
vi有3中主要的模式:1.normal mode:当进入vim时,默认的模式就是normal mode。
在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。
2.insert mode:进入vim输入a、i、或o键。
即可进入insert mode,此模式下可以输入文字内容。
mand-line mode:在norma lmode中输入“:”即会进入command-line mode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。
在normal mode下:h:将光标向左移动一格l:将光标向右移动一格j:将光标向下移动一格k:将光标向上移动一格ctrl+b:将页面向前卷动一页ctrl+f:将页面向后卷动一页0:将光标移到该行最前面$:将光标移到该行的最后面G:将光标移到最后一行的开头b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。
ctrl+u:将光标向前移动半页ctrl+d:将光标向右移动半页ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行在command-line mode下:e文件的路径及名称:打开指定文件a:从当前光标所在的位置的下一个字符开始输入i:在光标所在的位置插入新输入的字符o:新增加的一行,并将光标移到下一行的开头w:文件的路径及名称保存文件q:退出vimVim的常用操作命令复制文字yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制yw:可复制光标所在位置到整个单词结束的字符nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制p:可将复制的文字粘贴到当前光标所在的位置。
linuxvi编辑器操作⼿册简介 Linux下的⽂本编辑器有很多种,vi 是最常⽤的,也是各版本Linux的标配。
注意,vi 仅仅是⼀个⽂本编辑器,可以给字符着⾊,可以⾃动补全,但是不像 Windows 下的 word 有排版功能。
vi 是⼗年磨⼀剑的产品,虽然命令繁多,并且⼤多数功能都是依靠键盘输⼊来完成,但是⼀旦你熟悉后,会发现 vi 的功能和效率是其他图形界⾯编辑器⽆法⽐拟的。
Vim 是 Vi improved 的缩写,是 vi 的改进版。
在Linux中,vi 被认为是事实上的标准编辑器,因为:所有版本的 Linux 都带有 vi 编辑器;占⽤资源少;与 ed、ex 等其他编辑器相⽐,vi 对⽤户更加友好。
你可以使⽤ vi 编辑器编辑现有的⽂件,也可以创建⼀个新⽂件,还能以只读模式打开⽂本⽂件。
进⼊ vi 编辑器 可以通过以下⽅式进⼊ vi 编辑器:命令描述vi filename如果filename存在,则打开;否则会创建⼀个新⽂件再打开。
vi -R filename以只读模式(只能查看不能编辑)打开现有⽂件。
view filename以只读模式打开现有⽂件。
例如,使⽤ vi 编辑器创建⼀个新⽂件并打开:$vi testfile|~~~~~~~~~~~~"testfile" [New File] 竖线(|)代表光标的位置;波浪号(~)代表该⾏没有任何内容。
如果没有 ~,也看不到任何内容,那说明这⼀⾏肯定是有空⽩字符(空格、tab 缩进、换⾏符等)或不可见字符。
⼯作模式进⼀步了解 vi 之前先来了解⼀下 vi 的⼯作模式,vi 有三种⼯作模式:1) 普通模式 由Shell进⼊vi编辑器时,⾸先进⼊普通模式。
在普通模式下,从键盘输⼊任何字符都被当作命令来解释。
普通模式下没有任何提⽰符,输⼊命令后⽴即执⾏,不需要回车,⽽且输⼊的字符不会在屏幕上显⽰出来。
普通模式下可以执⾏命令、保存⽂件、移动光标、粘贴复制等。
目录1.1 VI使用 (2)1.1.1 VI用法总汇 (2)1.1.2如何在VI中进行批量替换 (6)1.1.3如何定制vi (6)1.1.4 vi实例 (7)1.1 VI 使用1.1.1 VI 用法总汇vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode ): command 方式任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输 入都引起立即反映insert 方式任何输入的数据都置于编辑寄存器。
在command 方式下输入(I,a,A 等),可进入insert 方 式,insert 方式下按ESC ,可跳回command 方式。
escape 方式以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。
vi 基本用法请参考下表 功能命令含义vi 进入vi 而不读入任何文件 vi filename 进入vi 并读入指定名称的文件(新、旧文件均可) vi +n filename 进入vi 并且由文件的第几行开始vi +filename进入vi 并且由文件的最后一行开始vi + /word filename 进入vi 并且由文件的word 这个字开始vi filename(s)进入vi 并且将各指定文件列入名单内,第一个文件先读入进入vivedit进入vi 并且在输入方式时会在状态行显示“INSERT MODE":args 显示编辑名单中的各个文件名编辑数个文件(利用vifilenames 进入vi 后):n 读入编辑名单中的下一个文件:rew 读入编辑名单中的第一个文件:e# 读入编辑名单内的前一个文件:e file 读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以: w 存档:e! file 强迫读入另一个文件进入vi,原文件不作存档动作:w filename 存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名):wq 或者 :x或者zz 存文件,并且退出vi:q 不作任何修改并退出vi存储及退出:q! 放弃任何修改并退出vi:!command 暂时退出vi并执行shell指令,执行完毕后再回到vi :sh 暂时退出vi到系统下,结束时按Ctrl + d则回到vii 在关标位置开始插入字符,结束时候按ESC键I 在光标所在行的最前面开始加字,结束时按ESC键a 在光标位置后开始加字,结束时按ESC键A 在光标所在行的最后面开始加数据指令加字,结束时按ESC键o 在光标下加一空白行并开始加字,结束时按ESC键O 在光标上加一空白行并开始加字,结束时按ESC键!command 执行shell指令,并把结果加在光标所在行的下一行nx 删除由光标位置起始的n个删除指令字符(含光标位置,按一个x表示删除光标所在的字符)nX 删除由光标位置起始的n个字符(不含光标位置)ndw 删除光标位置其实的n个字符组(word)d0 将行的开始到光标位置的字符全部删除d#或D 将光标位置起始到行尾的字符全部删除ndd 将光标位置起始的n行(整行)删除(dd表示删除光标所在行):start,endd 删除文件的第start到end行0 移到一行的开始$ 移到一行的最后[ 移到文件开始位置] 移到文件结束位置nh 往左移n位nl或者spacebar 往右移n位nk 向上移n行n+ 向上移n行,光标在该行的起始ni 向下移n行n- 向下移n行,光标在该行的起始H 移到屏幕的左上角M 移到屏幕的中间行开头L 移到屏幕的最后一行光标移动G 移到文件的最后一行nG或者:n 移到文件的第n行nw 右移n个字组,标点符号属于字组nW 右移n个字组,标点符号不属于字组nb 左移n个字组,标点符号属于字组nB 左移n个字组,标点符号不属于字组Ctrl + u 屏幕上卷半个菜单Ctrl + d 屏幕下卷半个菜单Ctrl + b 屏幕上卷一个菜单Ctrl + F 屏幕下卷一个菜单r 修改光标文件的字符R 从光标位置开始修改,结束时按ESC键new 更改n组字符,结束时按修改指令ESC键ncc 从光标所在位置开始更改n行,结束时按ESC键i并按Enter 将该行由光标所在处断开,并进入insert 方式重排J 把下一行的数据连接到本行之后/text 从光标位置往下找字串text?text从光标位置往上找字串textn继续找下一个字串(在输入上面的寻找指令之后使用)寻找指令/\<test\>精确定位字符串:getxt1/s/ /text2/options将各行的text1替换为text2option=g 表示文件中所有的text1均被取代,若未输入任何 option,则只有各行中的第一个出现的text1被取代option=go 在屏幕显示各取代的行option=gc 在每个字串取代之前要求确认 寻找并且取代指令Start,endgtext1/s/ / text2/options 或:Start,ends/text1/text2/options 同上,只寻找并取代第start~end 行:first,last co dest将first 到last 行的数据复制到目标行(dest)下面:Start,end m dest 将start 到 end 行的数据移动到目标行(dest )下 :r filename 将指定文件的内容读入光标所在行下nY 将光标所在位置开始的n 行数据暂存p 复制暂存数据在光标的下一行复制及移动文件P复制暂存数据在光标的上一行. 重复前一指令 u取消前一指令 Ctrl + l 刷新屏幕显示其他命令:set number显示文件的行号,但不会存文件:set nonumber 解除行号显示:set ai 设置每行起始位置(以光标当前位置为起始):set noai 取消行起始位置设定:f 或<Ctrl> + g 告诉用户有关现行编辑文件的数据1.1.2 如何在VI中进行批量替换批量替换操作很容量在vi中实现,当vi处在命令状态时输入::s/old/new/g (替换当前行):%s/old/new/g (替换全文):[范围]s/old/new/[cgi],(c-替换时提示,g-全局替换,i-忽略大小写)其中”范围”取值可为:%:当前文件$:文件末尾或某一行中的最后^:文件首行或某一行中的最前.,+5:表示下面5行另外,vi中的搜索字串可以使用正规表达式.支持以下正则表达式:&所有查找时匹配到的东西\[1-9] 1到9号用\(和\)括起来的东西\u 下一个字符将被变成大写.\U 以后的字符都变成大写,直到遇到\e或\E\l 下一个字符将被变成小写.\L 以后的字符都变成大写,直到遇到\e或\E\[Ee] 更改大小写的选择区域的终点vi批量替换操作请参考vi实例.1.1.3 如何定制vivi编辑器利用”.exrc”文件来定制其相关特性,该文件一般位于用户的主目录下.当用户打开vi时,vi在该用户的主目录下寻找是否存在”.exrc”文件,如果存在,则使用该文件中所定义的参数来定制vi.以下是该文件的一个例子:#more /.exrcset nu (显示行号)set ai (自动缩进)set showmode (显示当前所处于的模式,如替换/插入模式)set ts=4 (将tabstop的宽度设为4,默认为8)set sw=4 (将shiftwidth的宽度设为4,默认为8)1.1.4 vi实例z将文件内容反转利用vi,可以将某个文件的内容前后反转,即文件中最后一行变成首行中的内容,第一行的内容则移到文件末尾.在vi的命令模式下输入指定::g/^/m0z对文件的内容进行排序(包括对数字及字符)::%!sort (其中”%”表示全文)z精确查找单词:/\<hello\>上述指令只查找”hello”,不会搜索到”hello_world”的字符串,对批量替换很有用.z上下两行调换在vi命令模式下,键入指令:ddpz批量替换:g/\(foo\)\(bar\)/s/\2/\1baz/g 将foobar替换成foobaz(其中”&”为查找到的内容) :%s/.*/printf(“&is:%d\\n”,&)/:%s/\t/ctrl+v+m/g (其中”ctrl+v+m”同时按下,产生^M,即回车符,将文件中的TAB键转换成回车)z vi应用于代码定位当使用vi编写C代码时,如果有多个函数位于不同的源文件中,这时想查看函数的内容就比较麻烦,通过以下操作将简化操作:step1:利用”ctags”命令对当前目录下的C源程序扫描,生成tags文件.step2:在vi的命令模式下直接定位函数function_name:ta这样,就可以直接打开函数function_name所在的文件,并将光标置于函数的开头.。
vi指令说明(完整版)vi指令说明(完整版)⽂章内容来⾃上书⽹址,因为其使⽤的繁体,看着不是很舒服,简单转换成简体,如果有什么转换不清晰的,可以查看繁体版本。
.vi的操作模式vi提供两种操作模式:输⼊模式(insert mode)和指令模式(command mode)。
当使⽤者进⼊vi后,即处在指令模式下,此刻键⼊的任何字皆被视为指令。
在次模式下可进⾏删除、修改等动作。
若要输⼊⽂本,则需进⼊输⼊模式。
.输⼊模式如何进⼊输⼊模式a(append): 在⿏标之后加⼊⽂本A:在该⾏末尾加⼊⽂本i(insert):在⿏标之前加⼊⽂本I:在该⾏开头加⼊⽂本o(open):新增⼀⾏在该⾏之下供输⼊⽂本之⽤O:新增⼀⾏在该⾏之上供输⼊⽂本之⽤如何离开输⼊模式:esc:结束输⼊模式.指令模式⿏标移动h:向左移动⼀位j:向上移动⼀位k:向下移动⼀位l:向右移动⼀位O:移动⾄该⾏之⾸$:移动⾄该⾏末尾^:移到该⾏的第⼀个字符处H:移动到视窗的第⼀列M:移动到视窗的中间那列L:移动到视窗的最后⼀列G:移动到该⽂件的最后⼀列+:移动到下⼀列的第⼀个字符处-:移动到上⼀列的第⼀个字符处(:移动到该句之⾸):移动到该句末尾{:移动到该段落之⾸}:移动到该段落末尾nG:移动到该⽂件的第 n 列n+:移动到⿏标所在位置之后的第 n 列n-:移动到⿏标所在位置之前的第 n 列会显⽰该⾏的⾏号、⽂件名称、⽂件中最末⾏的⾏号、⿏标所在⾏号占总⾏号的百分⽐注⼀:句⼦在 vi 中指以 ! . ? 结束的⼀串字注⼆:段落在 vi 中指以空⽩⾏隔开的⽂字视窗移动视窗往下翻⼀页。
视窗往上翻⼀页。
视窗往上翻⼀页。
视窗往下翻半页。
视窗往上翻半页。
视窗往上翻半页。
视窗往下翻⼀⾏。
视窗往上翻⼀⾏。
.删除、复制及修改指令介绍(较少使⽤)d(delete)、c(change)和 y(yank)这⼀类的指令在 vi 中的指令格式为:Operator + Scope = command运算符 + 范围 = command运算符:d : 删除指令。
I.Vi编辑器Vi是编辑器中的常青树,其功能强大,使用方便,是Linux下最著名的编辑器。
1.启动vi:在命令行提示符下键入vi就可以打开vi编辑器;2.离开vi:按Esc后,再输入“:q”然后按回车,这里必须先输入“:”,将光标停在屏幕的下方后,才可以进行命令输入,否则系统不接受任何命令;3.vi的操作模式vi的界面分为两个部分:编辑区和命令区,命令区是屏幕最下方的一行,在此处输入命令;其他的区域是编辑区,是实际进行编辑文字和修改的地方。
vi包含三种操作模式,分别为Command Mode、Insert Mode和Last Line Mode。
它们的基本功能是:Command Mode:控制光标的移动、删除字符、段落复制、以及进入Insert Mode和Last Line Mode;Insert Mode:新增文字及修改文字,按Esc来到Command Mode;Last Line Mode:保存文件,离开vi,以及其他的设置,如可以查找字符串。
一般进入vi后,需要告诉系统所要做编辑工作的类型,比如是插入、增加还是修改。
输入有如下三种模式:i键插入(Insert),在当前的光标位置输入文字;a键增加(append),在当前光标的下一个位置输入文字;o键插入新行,加入新行并且由行首开始输入文字。
三种模式的转换关系,如下图1所示。
4.Command Mode命令表2 常用的光标移动命令表3 复制文字常用命令表4 删除文字常用命令表5 位置显示及其他命令5.Last Line Mode命令表6 常用的Last Line Mode命令II.在vi中练习写C程序#include <sys/types.h>#include <sys/wait.h>#include <stdio.h>#include <unistd.h>int main(int argc,char **argv){printf(“Hello!\n”);}编辑及运行过程如下:●# vi 1.c●在vi环境中编辑自己的代码●编码完成后,按Esc键,然后:wq保存该文件●输入cc 1.c,生成可执行文件a.out●# ./a.out,运行该a.out文件,观察程序执行结果。
什么是vi?vi是个可视化的编辑器(vi就意味着可视化--VIsual). 那么,什么是可视化的编辑器呢?(相对于非可视化的编辑器来说)?可视化的编辑器就是可以让你在编辑文本的时候看到它们. 今天,这听起来似乎非常普通,反之,非可视化的编辑器似乎很奇怪. 非可视化的编辑器的例子可以举出不少:如ed, sed。
vi是威廉.侨伊写的,作为BSD UNIX的一部分. 后来AT&T也开始用vi, 于是标准UNIX也开始用vi了.关于vi为什么大家都用它? 更进一步说,为什么我要用它?vi是UNIX下面的缺省编辑器, 因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右). 这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器.为什么不是别的呢? vi是个强大的编辑器.同样,一旦你了解了vi,你就能很快的编辑你的文件,因为它非常能节省你的敲键次数. 由于它在插入和命令两种情况下使用不同的模式,它比大多数的不基于这种模式的编辑器要快. 而且,vi非常小(我机器上面的版本只有200K).还有,vi几乎能做任何事,只要你知道如何使它做你想做的事.命令模式和插入模式有什么区别?vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是vi的优势所在. 理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式;在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域, 剪切, 复制和粘贴文本,还有更多. 插入模式是指用户可以真正插入文本.换句话说,命令模式是用来在文件中移动,而插入模式是用来在文件中键入文本.有些命令,例如: a, i, c, C, O, o和其他一些可以从命令模式切换到插入模式.ESC键可以脱离插入模式而返回到命令模式.你要适应这种差别. 它使得vi区别于其他的编辑器. 它也使你能在你的手不离开标准键盘做很多事情.游标的移动本节所述皆是在 common-mode(c-mode,在 vim 又名 normal-mode)下的移动,原始的 vi 只能在 c-mode 移动,在 insert-mode 只做文字的输入,而不做游标的移动。
vi编辑器是Linux强有力的文本文件编辑工具,利用它可以建立、修改文本文件。
为了进入vi编辑程序,可以用下面的命令:$vi filename其中filename是要编辑器的文件的路径名。
如果文件不存在,它将为你建立一个新文件。
vi编辑程序有三种操作方式,分别称为编辑方式,插入方式和命令方式(见下图),当运行vi时,首先进入编辑方式。
1.1编辑方式vi的编辑方式的主要用途是在被编辑的文件中移动光标的位置。
一旦光标移到到所要的位置,就可以进行剪切和粘贴正文块,删除正文和插入新的正文。
当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到shell提示符,可以发出ZZ命令,连续按两次大写的Z键。
1.1.1光标定位如果键盘上有上、下、左、右箭头键,就由这些键来完成光标的移动。
另外,可以用下面的键完成同样的功能:k 上移;j 下移;h 左移;l 右移。
这4个键将光标位置每次移动一行或一个字符。
vi还提供大范围移动光标的命令:ctrl+f 在文件中前移一页(相当于page down)。
ctrl+b 在文件中后移一页(相当于page up)。
在屏幕中找到需要的一页时,可以用下面的命令快速移动光标:H 将光标移到屏幕上的起始行(或最上行);M 将光标移到屏幕中间;L 将光标移到屏幕最后一行。
同样需要注意字母的大小写。
H和L命令还可以加数字。
如2H表示将光标移到屏幕的第2行,3L表示将光标移到屏幕的倒数第3行。
当将光标移到所要的行是,行中的正确位置可以用下面的命令来实现:w 右移光标到下一个字的开头;e 右移光标到一个字的末尾;b 左移光标到前一个字的开头;0 数字0,左移光标到本行的开始;$ 右移光标,到本行的末尾;^ 移动光标,到本行的第一个非空字符。
1.1.2搜索字符串和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。
要查找文件中指定字或短语出现的位置,可以用 vi 直接进行搜索,而不必以手工方式进行。
Vi简明使用手册~jizhi 2011.9.20命令模式(1)打开vi后默认进入命令模式;(2)在其他模式下按[ Esc ]返回命令模式,可按两次Esc确保已经返回;(3)命令模式下所有命令均不显示在屏幕上。
插入模式(文本模式)在命令模式下按 A a I i O o R r S s 任意一个均进入文本模式,它们的功能如下:(1)光标前后插入:[ i ]光标前插入文字,[ a ]光标后插入文字。
实际使用情况:很多时要在文中插字,因此要移动光标,而移动光标要先进入命令模式。
光标是选中一整个字(字母),如光标在字母E上,命令[ i ]表示在E前插入文字,[ a ]表示在E后插入文字。
(2)行头行尾插入:[ I ](大写i)光标所在的行头插入文字,[ A ]光标所在的行尾插入文字。
(3)插入空行:[ O ]光标所在行的上方插入空行,[ o ]光标所在行的正文插入空行。
以下的是命令模式,但是对文本的操作。
(4)删除单个字:在命令模式下,用[ x ]或[ Delete键]或[ s ]。
对于[ x ]或[ Delete键],效果:删除光标所在的字,然后后面的字补上,因此删一个字后,光标在所删字后面的那个字上。
因此,若要删除连续的几个字,光标应该放在最前的那个字上。
两者分别有注意事项:在命令模式下两者没有任何分别,但在文本模式下两者完全不同。
在文本模式下,[ x ]只是一个字母而非命令,而[ Delete ]还是删除命令。
但在文本模式下按[ Delete ],对于中文,按第一下时没有任何变化,按第二下才删(实际上按第一下时换到命令模式了);但对于英文,在文本模式下按[ Delete ],光标前的英文会有变化——小写变大写、大写变小写,这是我们不想要的结果。
因此,在文本模式下用[ Delete ]删除文字,只能在中文中。
对于[ s ],在命令模式下按[ s ],光标所在的字变成[ $ ]号,之后进入文本模式,所打的字或句在[ $ ]号中插入。
VI软件操作手册
版本:V2.0
修订时间:2015.10
编制:德迈科电气集团
目录
1.文档编制说明 (3)
2.相机设置 (3)
3.相机标定(Calibration) (4)
4.模板制作(Models) (14)
5.通信(Balancing) (21)
6.模板匹配(Matching) (23)
1.文档编制说明
本说明书仅供那些在视觉与自动化方面受过适当培训的专业人士使用。
未经德迈科公司事先书面批准,不可以对手册任何部分以及附加文档进行复制、转载或翻译成另一种语言。
在操作视觉系统之前首先要确认的两件事情,一是机器人X轴的正方向与皮带的运行方向要一致,二是编码器的整定参数(Scaling Factor)要准确,只有保证这两点之后标定的相机才能准确否则一定会存在位置偏差没有意义。
2.相机设置
1)打开VI软件,点击Camera选项卡观察Check Camera按钮后面的功能框中相机是否连
接成功,连接成功后会显示相机的型号。
2)检查Offline功能项是否被勾选如果勾选了则应去掉勾选。
3)点击Camera On按钮打开相机,观察VI软件的屏幕看相机是否打开如果没有反应则要
检查连接相机的网线是否松动以及工控机的IP地址是否是与相机在同一网段上,相机的IP网段是169.254.105.8
255.255.255.0
4)通过调整:1.相机曝光时间Exposure,2.增益Gain和相机的焦距和光圈(在相机上)以
及光源的强度与角度来使相机的拍摄效果达到最佳,即图像比较清晰而且视野范围内的光照比较均匀。
3.相机标定(Calibration)
1)将标定纸中的四个圆编号1、2、3、4,以避免标定过程中出现误操作。
2)将标定纸固定到相机视野中的皮带上,如下图所示,确保标定纸放置平整且大致位于相
机视野的正中间并且使黑色圆圈尽量与视野边缘平行。
3)打开VI软件中的Calibration,点击Calibrate,此时软件会提示你选择位置点0 (Select
ROI containing point 0),用鼠标左键框住1号点的十字架中心,如下图所示。
右击确定选择,此时会弹出对话框提示是否移除干扰区域(Continue removing area),点击No。
接着会提示是否寻找中心点(Continue modify center),点击Yes。
用鼠标左键选择十字架的中心点然后右键进行确认,1号点标定完成。
重复上述步骤标定2、3、4号点,标定好后会在Camera Coordinates中显示出对应点的像素坐标值。
4)点击TwinCAT软件System Manager→NC-Configuration→Axes→Encoder→Functions界面
中的Set将皮带上编码器的当前显示值清零。
5)开启皮带使标定纸移动到机器人的下面,将此时记录编码器走过的距离值L=226.3309。
6)将机器人各个手臂轴松闸并在TCP上装上机器人标定针,将标定依次针移动到标定纸上
的1、2、3、4号点的十字架中心上并记录对应点的X和Y的坐标值。
7)将记录的四个点的X和Y的坐标值依次输入到VI软件下Robot Coordinates下的坐标框
中,其中编码器记录的值L=226.3309填入OffsetX中。
注意,若按照图示标定则1和2,3和4的X值相近,1和3,2和4的Y值相近。
坐标中数值必须保留小数点后两位。
8)点击Transform,可见红色提示“Saved calibration file vic”表示已经标定完成并生成标定
VIC文件。
关闭VI软件,并在弹出对话框中点击Yes,然后重新打开VI软件此时标定
工作已经完成而且标定文件已经生效。
4.模板制作(Models)
1)将想要抓取的产品放置于相机视野中,放置角度要以X轴正方向为准0°或180°放置。
2)在Current Model Index中填写“1”,制作“正料”属性为“1”的产品模板。
3)点击Create Model,将产品框住,使红色十字架大致处于产品的中心点。
4)右击确定,此时会提示是否去除产品模板中的噪点,若有的话点击“Yes”将噪点框选右
键确定。
(此处噪点可理解为所拍摄图片上的杂质)
5)噪点去除完成后右击确定然后选择“No”模板轮廓制作完成。
6)点击Shape Center,使红色框与产品的轮廓相切,右击完成,从而根据产品的几何中心
精确标定产品模板的中心。
7)点击Save Model,保存模板(若模板制作有误,可以点击Discard Model重新制作模板),
针对反料“属性2的产品”模板的制作方法与上述方法相同。
5.通信(Balancing)
1)打开Balancing选项卡,当出现下图情况时,说明相机通讯正常。
2)当出现下图情况,说明相机通讯中断,此时需要将Send勾选,若Send勾选后依然没效
果需要在机器人的控制界面下的“视觉”中将通信触发使能停掉再重新打开即可,另外也可以通过激活硬件配置重新启动控制器的方法来解决。
6.模板匹配(Matching)
1)点击Reset使VI中新制作模板生效。
2)匹配参数(Macthing Parameters)的设置值(此项目推荐如下图参数)。
(1)最小角度(0°)
(2)最大角度(360°)
(3)最小得分(相似度,0.9)
(4)产品数量(10)
(5)重叠度(0.05)
(6)查找方式(Least_squares)
(7)数量级(0)
(8)贪婪度(0.9)
3)点击Start相机开始识别并匹配产品。
4)完成以上操作则视觉系统调试完成。