vi有输入和命令两种工作模式。命令模式是用来运行一些编排文件、存档以及离开vi等操作命令。
当执行vi后,首先进入命令模式,此时输入的人数字符都被视为命令。
在命令模式下,可以使用如下两个键进入文本输入模式
"A键":在当前的光标后面添加文本 a代表append
"I键":在当前的光标前面添加文本 i代表insert
在输入模式下如果用户希望回到命令模式的时候,
只能在输入模式下使用Esc键切换到命令模式,之后会在屏幕底部出现光标等待输入命令
使用vi新建一个文档
--在Linux的终端命令主提示符下输入vi。
--按下"a"键,进入输入模式,使用Backspace键删除前面的文字
--文本输入完成以后,按下"Esc"键切换到命令模式。
--为了保存输入的内容,在命令模式下输入"w <filename>",将文本区输入的内容写文件。注意不加文件名也可以保存
--在命令行模式下输入":q"并按Enter键,退出vi,回到命令提示符。
--在文件修改后,无法直接用":q"命令退出,必须使用":q!"命令不保存文件强制退出
--":wq" 表示保存并且退出vi
使用vi编辑现有文档
--在vi命令后面跟上文件名,然后按Enter键即可
--由于没有指定路径,vi程序会在默认路径(即当前目录)中查找filename,
用户也可以为其指定路径。如果文件不存在,此时会新建一个文件
--例如:vi /home/bird/a.txt
vi撤销功能
--和很多基于图形的编辑器一样vi也提供撤销功能,对于一个编辑器来说,提供撤销功能是必要的。
用户可以在命令模式下输入":u"后按Enter键,就可以撤销上一次操作。
--在vi中,撤销功能每一次撤销的是自上次存盘到现在输入的内容,因此撤销能够恢复到最原始的状态,
但是此时用户不能使用":q"命令退出vi,因为此时用户已经修改了缓冲区的内容。
如果确实需要退出vi程序,可以在命令模式下使用":q!"。
vi删除功能
--在vi输入模式下,用户可以使用Backspace(退格键)来删除光标前面的内容,
还可以使用delete键来删除当前的字符。此外,在vi的命令模式下还提供了几个按键用来删除一个字符或进行整行删除
"x键":删除当前光标所在的字符。
"d键 双击":删除光标所在的行
"r键":修改光标所在的字符
.bash_profile文件
Linux系统在执行可执行程序的时候,默认不在当前目录下寻找可执行文件,所以执行a.out必须指定路径和文件 --"./a.out",
如果需要修改Linux这个默认设定,需要在当前属主目录下找到隐藏文件.bash_profile,用vi编辑器修改该文件下PATH属性,
修改为PATH=$PATH:$HOME/bin:.(在原有字符串后面追加":."),执行"wq"保存命令,此时配置文件没有生效,需要再执行一次
执行命令是". .bash_profile",此时配置文件生效。
PATH属性的意思是查找文件的路径,在Linux中,查找文件的路径之间用":"来分割,例如"$PATH:$HOME/bin"表示系统会先在"$PATH"路径下查找
可执行文件,然后再在"$HOME/bin"查找可执行文件。我们追加":."表示让系统再多个查找路径,"."表示当前目录下
.bash_profile每个用户都有一个,各个用户间互相不影响。
显示行号
--:set nu

Linux 实用工具vi的更多相关文章

  1. [Linux实用工具]munin-node插件配置和插件编写

    前面介绍了2篇munin使用的相关文章: [Linux实用工具]Linux监控工具munin的安装和配置 [Linux实用工具]Linux监控工具munin的展示(Nginx)   这次介绍一下mun ...

  2. [Linux实用工具]Linux监控工具munin的展示(Nginx)

    Munin的安装和配置可以参考第一篇文章: [Linux实用工具]Linux监控工具munin的安装和配置 http://www.cnblogs.com/rond/p/3757804.html Mun ...

  3. [Linux实用工具]Linux监控工具munin的安装和配置

    〇.摘要 munin是用于Linux系统(也可以监控windows系统)的监控软件.munin除了可以监控系统的各项数值之外,最大的好处是可以自己编写插件自定义监控需要的数值.整个系统的架构简单明了, ...

  4. Linux学习总结(3)——Linux实用工具

    1. Windows下同步Linux文件(Linux安装Samba和配置) 场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果wind ...

  5. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

    场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...

  6. [Linux实用工具]Ubuntu环境下SSH的安装及使用

    SSH分为客户端和服务端. 服务端是一个守护进程,一般是sshd进程,在后台运行并响应来自客户端的请求.提供了对远程请求的处理,一般包括公共密钥认证.密钥交换.对称密钥加密和非安全连接. 客户端一般是 ...

  7. Linux系统监控实用工具Glances

    Linux系统监控实用工具Glances Glances安装 Glances安装要求:python >= 2.6 和 psutil >= 0.4.1 1.第一步,安装了python-> ...

  8. 自学Linux Shell18.3-sed实用工具

    点击返回 自学Linux命令行与Shell脚本之路 18.3-sed实用工具 1. 加倍行间距 命令格式: .......

  9. Linux/Windows 实用工具简记

    以下只是开发中可能用的比较多的工具,另外还有其他很多未曾提及的实用工具.Linux篇: 1.链接过程的调试:主要用于查看构建过程:如链接时加载的动态库以及运行时加载动态库过程的调试 支持LD_DEBU ...

随机推荐

  1. GetAdaptersInfo & GetAdaptersAddresses

    I use GetAdaptersInfo to get MAC addresses of interfaces.   GetAdaptersInfo exist on old and new ver ...

  2. Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误

    出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误,这种错误一般是同名函数出现在两个不同的头文件中了. 笔者的这个错误是由于 #include "mat.h" ...

  3. Mysql 的表级锁和行级锁

    表级锁 MySQL表级锁分为读锁和写锁. 读锁 用法:LOCK TABLE table_name [ AS alias_name ] READ 释放锁使用UNLOCK tables.可以为表使用别名, ...

  4. javascript快速入门24--XML基础

    XML简介 XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言).XML 被设计用来传输和存储数据.XML ...

  5. javascript快速入门17--事件

    事件(上) JavaScript事件列表 事件 解说 一般事件 onclick 鼠标点击时触发此事件 ondblclick 鼠标双击时触发此事件 onmousedown 按下鼠标时触发此事件 onmo ...

  6. 前端传递参数,由于控制器层类实现了struts2的ModelDriven而产生的一个异常

    产生的异常如下: ognl.MethodFailedException: Method "setId" failed for object com.aliyun.pcitcAliy ...

  7. 最简单的PHP socket

    服务端 <?phperror_reporting(E_ALL);set_time_limit(0); $ip = "127.0.0.1";$port = 1935; func ...

  8. ZOJ 3526 Weekend Party

    Weekend Party Time Limit: 2 Seconds      Memory Limit: 65536 KB As the only Oni (a kind of fabulous ...

  9. poj 1426 Find The Multiple (bfs 搜索)

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18012   Accepted: 729 ...

  10. 微信小程序 - bindcontroltap和control的关系(map)

    听说最近要废弃control,用cover-image和cover-view替代它,层级问题(我们此等萌新们还在想图标怎么显示在地图上(-.-)) 粗略的来说,一个展示(control),一个触发(b ...