linux vi 命令大全

preview
需积分: 0 3 下载量 55 浏览量 更新于2010-07-15 收藏 29KB DOC 举报
Linux中的vi(Visual Editor)是一款强大的文本编辑器,它的全称是VIsual mode editor,最初出现在早期的UNIX系统中,现在已经成为Linux和类UNIX系统的标准编辑器之一。vi不仅适用于简单的文本编辑,还能处理复杂的编程任务。以下是对标题、描述和标签中提到的vi命令的详细解释: 1. **进入vi的命令**: - `vi filename`:打开或新建文件,并将光标置于第一行首。 - `vi +n filename`:打开文件并将光标置于第n行首。 - `vi + filename`:打开文件并将光标置于最后一行首。 - `vi +/pattern filename`:打开文件并将光标置于第一个与pattern匹配的字符串处。 - `vi -r filename`:在上次使用vi编辑时系统崩溃,用于恢复filename。 2. **移动光标类命令**: - `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`:光标移至当前行首。 - `$`:光标移至当前行尾。 3. **屏幕翻滚类命令**: - `Ctrl+u`:向文件首翻半屏。 - `Ctrl+d`:向文件尾翻半屏。 - `Ctrl+f`:向文件尾翻一屏。 - `Ctrl+b`:向文件首翻一屏。 - `nz`:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 4. **插入文本类命令**: - `i`:在光标前插入文本。 - `I`:在当前行首插入文本。 - `a`:在光标后插入文本。 - `A`:在当前行尾插入文本。 - `o`:在当前行之下新开一行插入文本。 - `O`:在当前行之上新开一行插入文本。 - `r`:替换当前字符。 - `R`:替换当前字符及其后的字符,直到按下ESC键。 - `s`:删除光标位置开始的指定数目字符并插入文本。 - `S`:删除指定数目的行并插入文本。 - `ncw` 或 `nCW`:修改指定数目的单词。 - `nCC`:修改指定数目的行。 5. **删除命令**: - `ndw` 或 `ndW`:删除光标处开始及其后的n-1个单词。 - `do`:删除至行首。 - `d$`:删除至行尾。 - `ndd`:删除当前行及其后的n-1行。 - `x` 或 `X`:删除一个字符,x删除光标后的,X删除光标前的。 - `Ctrl+u`:删除输入模式下所输入的文本。 6. **搜索及替换命令**: - `/pattern`:从光标开始处向文件尾搜索pattern。 - `?pattern`:从光标开始处向文件首搜索pattern。 - `n`:在同一方向重复上一次搜索命令。 - `N`:在反方向上重复上一次搜索命令。 - `:s/p1/p2/g`:将当前行中所有p1替换为p2。 - `:n1,n2s/p1/p2/g`:将第n1至n2行中所有p1替换为p2。 - `:g/p1/s//p2/g`:将文件中所有p1替换为p2。 7. **选项设置**: - `all`:列出所有选项设置情况。 - `term`:设置终端类型。 - `ignorance`:在搜索中忽略大小写。 - `list`:显示制表位(Ctrl+I)和行尾标志($)。 - `number`:显示行号。 - `report`:显示由面向行的命令修改过的数目。 - `terse`:显示简短的警告信息。 - `warn`:在转到别的文件时若没保存当前文件则显示NO write信息。 - `nomagic`:允许在搜索模式中,使用前面不带“\”的特殊字符。 - `nowrapscan`:禁止vi在搜索到达文件两端时,又从另一端开始。 - `mesg`:允许vi显示其他用户用write写到自己终端上的信息。 8. **最后行方式命令**: - `: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的输入并执行之。 - `:r!command`:将命令command的输出结果放到当前行。 9. **寄存器操作**: - `"?nyy`:将当前行及其下n行的内容保存到寄存器?中。 - `"?nyw`:将当前行及其下n个单词保存到寄存器?中。 - `"?nyl`:将当前行及其下n个字符保存到寄存器?中。 - `"?p`:取出寄存器?中的内容并放到光标位置处。 以上是vi编辑器的基本操作,掌握这些命令可以让你在Linux环境中更高效地编辑文本文件。随着熟练度的提高,你可以通过组合使用这些命令来完成更复杂的文本处理任务。vi还支持许多高级功能,如宏定义、块操作等,对于高级用户来说,vi是一个非常强大的工具。