精通vi编辑器:常用命令详解
需积分: 48 65 浏览量
更新于2024-09-07
收藏 17KB DOCX 举报
"这篇资源是关于`vi`编辑器常用命令的全面介绍,涵盖了进入`vi`、保存和退出文件、光标移动、屏幕翻滚等多个方面,旨在帮助用户熟练掌握`vi`编辑器的基本操作。"
在`Linux`环境中,`vi`(Visual Editor)是一个强大的文本编辑器,它具有丰富的功能和高效的命令行操作方式。通过学习和掌握这些基本命令,用户可以在没有图形界面的情况下高效地编辑文本文件。
**进入vi**
- `vi filename`:打开或创建名为`filename`的文件,并将光标置于第一行首。
- `vi+nfilename`:打开`filename`,并将光标置于第`n`行首。
- `vi+filename`:打开`filename`,光标位于最后一行首。
- `vi+/pattern filename`:打开`filename`,光标定位到第一个匹配`pattern`的字符串处。
- `vi -r filename`:在上次使用`vi`编辑时发生系统崩溃,可以使用此命令恢复`filename`。
**保存退出**
- `w`:保存当前文件但不退出。
- `w /tmp1`:将当前文件另存为`/tmp1`。
- `20,59w /tmp1`:只保存第20行到59行的内容到`/tmp1`。
- `x`或`wq`:保存并退出。
- `q`:退出`vi`,如果文件被修改过,会提示不能退出。
- `q!`:强制退出,不保存任何更改。
- `!command`:执行shell命令`command`。
- `n1, n2w !command`:将文件中n1行至n2行的内容作为`command`的输入并执行。
- `r !command`:将命令`command`的输出替换当前行内容。
- `w !sudo tee %`:如果当前用户无权保存文件,可以使用这个命令获取权限再保存。
**光标移动**
- `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`键。
**删除操作**
- `ndw` 或 `ndW`:从光标处删除`n`个单词。
- `ndd`:删除从光标开始的`n`行。
- `ncwn` 或 `ncW`:修改`n`个单词。
- `nCC`:修改`n`行。
- `s`:从当前光标位置开始,用输入的文本替换字符。
- `S`:删除当前行,并开始输入新内容。
掌握这些基础`vi`命令,用户就可以更高效地在终端中编辑和管理文本文件,尤其在没有图形界面或者网络连接受限的环境下,`vi`的强大功能显得尤为重要。通过不断的练习和实践,可以提高在终端环境中的工作效率。
2017-10-26 上传
2008-09-03 上传
2011-11-18 上传
2019-08-30 上传
2011-11-04 上传
2019-01-05 上传
2011-09-30 上传
qq_28605691
- 粉丝: 0
- 资源: 3
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器