本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接

DMman's Blog

idmer's Blog

DHTML

eYou帮

Java国内站

Java国外站

PHP博客

PHP国内站点

PHP国外站点

Unix C/C++

Unix/Linux

程序设计

大牛blog

实用网站

网络安全

在线手册


Blog信息
blog名称:
日志总数:18
评论数量:37
留言数量:0
访问次数:136769
建立时间:2007年7月19日




[unix/linux]VI命令收集 
其他

jdilt 发表于 2007/7/31 16:16:24

    vi 的工作模式    Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是向下移动光标,相当于向下箭头键。在编辑模式下,用户还可以利用一些特殊按键选定文字,然后 再进行删除、或复制等操作。     当用户在编辑模式下键入 i, a, o 等命令之后,可进入插入模式;键入 : 可进入命名模式。 在插入模式下,用户随后输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中 的字符。按 Esc 之后,从插入模式切换到编辑模式。     在命令模式,Vi 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个 :(冒号)。这时, 用户就可以键入一些命令。这些命令可用来保存文件、读取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。     编辑模式    移动光标    要对正文内容进行修改,首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、右箭头键。除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅速到达指定的行或列,实现定位。例如:  k、j、h、l 功能分别等同于上、下、左、右箭头键  Ctrl+b 在文件中向上移动一页(相当于 PageUp 键)  Ctrl+f 在文件中向下移动一页(相当于 PageDown 键)  H 将光标移到屏幕的最上行(Highest)  nH 将光标移到屏幕的第 n 行  2H 将光标移到屏幕的第 2 行  M 将光标移到屏幕的中间(Middle)  L 将光标移到屏幕的最下行(Lowest)  nL 将光标移到屏幕的倒数第 n 行  3L 将光标移到屏幕的倒数第 3 行  w 在指定行内右移光标,到下一个字的开头  e 在指定行内右移光标,到一个字的末尾  b 在指定行内左移光标,到前一个字的开头  0 数字0,左移光标,到本行的开头  $ 右移光标,到本行的末尾  ^ 移动光标,到本行的第一个非空字符    替换和删除    将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符。例如:  rc 用 c 替换光标所指向的当前字符  nrc 用 c 替换光标所指向的前 n 个字符  5rc 用 c 替换光标所指向的前 5 个字符  x 删除光标所指向的当前字符  nx 删除光标所指向的前 n 个字符  3x 删除光标所指向的前 3 个字符  dw 删除光标右侧的字  ndw 删除光标右侧的 n 个字  3dw 删除光标右侧的 3 个字  db 删除光标左侧的字  ndb 删除光标左侧的 n 个字  5db 删除光标左侧的 5 个字  dd 删除光标所在行,并去除空隙  ndd 删除 n 行内容,并去除空隙  3dd 删除 3 行内容,并去除空隙  dd 删除当前行内容  dn+向下键删除当前行以及往下n行  dn+向上键删除当前行以及往上n行  按下R后,开始根据按键字符依次替换文本内容,直到按下ESC。    粘贴和复制    从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可  将其粘贴到正文中的指定位置。完成这一操作的命令是:  p 小写字母 p,将缓冲区的内容粘贴到光标的后面  P 大写字母 P,将缓冲区的内容粘贴到光标的前面  如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前光标所在行的上一行或下一行。  注意上述两个命令中字母的大小写。vi 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。  有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是剪切)到内存缓冲区。完成这一操作的命令是:  yy 复制当前行到内存缓冲区  nyy 复制 n 行内容到内存缓冲区  5yy 复制 5 行内容到内存缓冲区    搜索字符串    和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以用 vi 直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向搜索(朝文件开头方向)。例如:  /str1 正向搜索字符串 str1  n 继续搜索,找出 str1 字符串下次出现的位置  ?str2 反向搜索字符串 str2  无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。    撤销和重复    在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新的光标位置重复前面执行过的编辑命令,可用重复命令。  u 撤消前一条命令的结果  . 重复最后一条修改正文的命令  Alt + u 撤消前一条命令的结果    6. 文本选中    vi 可进入到一种成为 Visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再 执行其他编辑操作,例如删除、复制等。 v 字符选中命令 V 行选中命令     插入模式    进入插入模式    在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:  i或者insert 在光标左侧输入正文  a 在光标右侧输入正文  o 在光标所在行的下一行增添新行  O 在光标所在行的上一行增添新行  I 在光标所在行的开头输入正文  A 在光标所在行的末尾输入正文  上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段正文,从而实现正文的替换。这些命令包括:  s 用输入的正文替换光标所指向的字符  ns 用输入的正文替换光标右侧 n 个字符  cw 用输入的正文替换光标右侧的字  ncw 用输入的正文替换光标右侧的 n 个字  cb 用输入的正文替换光标左侧的字  ncb 用输入的正文替换光标左侧的 n 个字  cd 用输入的正文替换光标的所在行  ncd 用输入的正文替换光标下面的 n 行  c$ 用输入的正文替换从光标开始到本行末尾的所有字符  c0 用输入的正文替换从本行开头到光标的所有字符    退出插入模式    退出插入模式的方法是,按 ESC 键或组合键Ctrl+[ 。    命令模式    在 vi 的命令模式下,可以使用复杂的命令。在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在 那里显示冒号,此时已进入命令模式。命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后 一行,按回车键,vi 执行命令。     退出命令    在编辑模式下可以用 ZZ 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。如果只需要退出编辑程序,而不打算保存编辑的内容,可用下面的命令:  : q 在未作修改的情况下退出  : q! 放弃所有修改,退出编辑程序  :wq 保存修改退出    2. 行号与文件    编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:  : n 将光标移到第 n 行命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符符“$”表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。例如::345 将光标移到第 345 行:345w file 将第 345 行写入 file 文件:3,5w file 将第 3 行至第 5 行写入 file 文件:1,.w file 将第 1 行至当前行写入 file 文件:.,$w file 将当前行至最后一行写入 file 文件:.,.+5w file 从当前行开始将 6 行内容写入 file 文件:1,$w file 将所有内容写入 file 文件,相当于 :w file 命令  在命令模式下,允许从文件中读取正文,或将正文写入文件。例如::w 将编辑的内容写入原始文件,用来保存编辑的中间结果:wq 将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ 命令):w file 将编辑的内容写入 file 文件,保持原有文件的内容不变:a,bw file 将第 a 行至第 b 行的内容写入 file 文件:r file 读取 file 文件的内容,插入当前光标所在行的后面:e file 编辑新文件 file 代替原有内容:f file 将当前文件重命名为 file:f 打印当前文件名称和状态,如文件的行数、光标所在的行号等    字符串搜索    给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。例如::/str/ 正向搜索,将光标移到下一个包含字符串 str 的行:?str? 反向搜索,将光标移到上一个包含字符串 str 的行:/str/w file 正向搜索,并将第一个包含字符串 str 的行写入 file 文件:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件


阅读全文(1687) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144775952 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号