### VI命令大全详解 #### 一、引言 在计算机领域中,文本编辑器是必不可少的工具之一。在UNIX系统中,vi编辑器是最为广泛使用的编辑器之一。熟悉vi编辑器的操作对于学习和掌握UNIX系统至关重要。vi是visual editor的缩写,它功能强大且高度灵活,适用于各种文本编辑任务。 #### 二、启动vi编辑器 - **vifilename**:此命令用于打开或创建一个名为`filename`的文件,并将光标放置在文件的第一行。 - **vi+nfilename**:此命令用于打开`filename`文件并将光标放置在第n行的开始位置。 - **vi+filename**:此命令用于打开文件并将光标放置在文件的最后一行。 - **vi+/patternfilename**:此命令用于打开文件,并将光标放置在文件中第一个与`pattern`相匹配的字符串的位置。 - **vi-rfilename**:如果上次编辑`filename`文件时遇到系统崩溃,可以使用此命令恢复文件。 - **vifilename.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**:从光标位置开始向文件头部搜索`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`。 #### 八、选项设置 - **all**:列出所有选项的设置情况。 - **term**:设置终端类型。 - **ignorance**:在搜索中忽略大小写。 - **list**:显示制表符(Ctrl+I)和行尾标志($). - **number**:显示行号。 - **report**:显示由面向行的命令修改过的行数。 - **terse**:显示简短的警告信息。 - **warn**:在转向另一个文件时如果没有保存当前文件则显示NOwrite信息。 - **nomagic**:允许在搜索模式中使用前面不带`^`或`$`的特殊字符。 - **nowrapscan**:禁止vi在搜索到达文件两端时又从另一端开始。 - **mesg**:允许vi显示其他用户用write命令写到自己终端上的信息。 #### 九、保存与退出命令 - **:n1,n2con3**:将n1行到n2行之间的内容复制到第n3行下方。 - **:n1,n2mn3**:将n1行到n2行之间的内容移动到第n3行下方。 - **:n1,n2d**:删除n1行到n2行之间的内容。 - **:w**:保存当前文件。 - **:efilename**:打开并编辑文件`filename`。 - **:x**:保存当前文件并退出。 - **:q**:退出vi。 - **:q!**:不保存文件并退出vi。 - **:!command**:执行shell命令`command`。 - **:n1,n2w!command**:将文件中n1行到n2行的内容作为`command`的输入并执行之。 - **:r!command**:将命令`command`的输出结果放到当前行。 #### 十、寄存器操作 - **"?nyy**:将当前行及其下的n行内容保存到寄存器?中,其中?为一个字母,n为一个数字。 - **"?nyw**:将当前行及其下的n个单词保存到寄存器?中,其中?为一个字母,n为一个数字。 - **"?nyl**:将当前行及其下的n个字符保存到寄存器?中,其中?为一个字母,n为一个数字。 - **"?p**:取出寄存器?中的内容并将其放置在光标位置,这里?可以是一个字母,也可以是一个数字。 以上就是vi编辑器的一些基本命令和操作。熟练掌握这些命令能够大大提高文本编辑效率。由于vi编辑器的强大功能和灵活性,还有很多高级技巧等待用户去探索。希望本文对您有所帮助。
剩余13页未读,继续阅读
- 粉丝: 3
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0