Linux下的VI编辑器:命令详解
18 浏览量
更新于2024-08-31
收藏 87KB PDF 举报
"这篇资源主要介绍了Linux环境下的vi命令,包括如何进入vi编辑器,光标移动,文本插入,删除操作以及搜索和替换等基本功能。"
在Linux系统中,vi是一个非常重要的全屏幕文本编辑器,其改进版本VIM(Vi IMproved)在功能和用户体验上进行了诸多优化。掌握vi命令对于日常的系统管理和软件开发工作至关重要。
进入vi编辑器有多种方式:
1. `vi filename`:打开或新建名为filename的文件,光标位于第一行首。
2. `vi+n filename`:光标会出现在文件的第n行首。
3. `vi+ filename`:光标直接定位到文件的最后一行。
4. `vi+/pattern filename`:打开文件并把光标放在第一个匹配pattern的字符串处。
5. `vi-r filename`:如果上次使用vi编辑时系统崩溃,可以用这个命令恢复filename。
6. `vi filename1 filename2...`:可以一次性打开多个文件,逐个进行编辑。
在vi中移动光标是非常频繁的操作:
- 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:修改n个字。
- nCC:修改n行。
删除操作包括:
- ndw或ndW:删除从光标开始的n-1个字。
- do:删除到行首。
- d$:删除到行尾。
- ndd:删除当前行及其后的n-1行。
- x或X:删除一个字符,x删除光标后,X删除光标前。
- Ctrl+u:删除输入模式下的所有输入文本。
搜索和替换命令:
- /pattern:从光标位置向文件尾搜索pattern。
- ?pattern:从光标位置向文件首搜索pattern。
- :n1,n2 s/old/new/g:在第n1行到n2行之间,将old替换为new,g表示全局替换。
这些只是vi命令的基础,vi还有更多高级功能,如可视模式、宏定义、撤销重做等,熟练掌握vi能大幅提升在Linux环境下的工作效率。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2013-02-19 上传
2011-11-04 上传
2009-05-26 上传
2021-09-27 上传
2021-06-23 上传
2011-03-31 上传
weixin_38663151
- 粉丝: 3
- 资源: 897
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建