上传者: 38517892
|
上传时间: 2025-12-20 13:10:41
|
文件大小: 29KB
|
文件类型: DOC
Linux VI 命令使用技巧集锦
本文将为您详细介绍 Linux 系统中 VI 编辑器的使用技巧,包括进入 VI 的命令、移动光标类命令、屏幕翻滚类命令、插入文本类命令、删除命令、搜索及替换命令、选项设置命令和最后行方式命令等。
进入 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`:光标右移一个字 j 至字尾
* `)`:光标移至句尾
* `(`:光标移至句首
* `}`:光标移至段落开头
* `{`:光标移至段落结尾
* `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`:在转到别的文件时若没保存当前文件则显示 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 的输出结果放到当前行