vi/vim 的使用

基本上 vi/vim 共分为三种模式 分别是

  • 命令模式(Command mode)
  • 输入模式(Insert mode)
  • 底线命令模式(Last line mode)

命令模式:

用户刚刚启动 vi/vim 便进入了命令模式

  • i  切换到插入模式 以输入字符
  • x   删除当前光标所在处的字符
  • :   切换到底线命令模式 以在最底一行输入命令

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式

输入模式:

在命令模式下按下 i 就进入了输入模式

在输入模式中 可以使用以下按键:

  • ENTER(回车键)          换行
  • BACK SPACE(退格键)  删除光标前一个字符
  • 方向键              在文本中移动光标
  • HOME/END                   移动光标到行首/行尾
  • Page Up/Page Down       上/下翻页
  • ESC                         退出输入模式,切换到命令模式

底线命令模式:

在命令模式下按下 :(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q   退出程序
  • w   保存文件

按ESC键可随时退出底线命令模式

vi/vim 使用实例

1.使用 vi 来建立名为 test.txt 的文件

vi test.txt

按下 ESC 按钮回到一般模式

在一般模式中按下 :wq 储存后离开 vi

vi/vim 按键说明(一般模式下)

h 或 向左箭头键(←)      光标向左移动一个字符

j 或 向下箭头键(↓)       光标向下移动一个字符

k 或 向上箭头键(↑)      光标向上移动一个字符

l 或 向右箭头键(→)       光标向右移动一个字符

如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

Ctrl + f 屏幕『向下』移动一页,相当于 [Page Down]按键

Ctrl + b 屏幕『向上』移动一页,相当于 [Page Up] 按键

0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处

$ 或功能键[End] 移动到这一行的最后面字符处

G 移动到这个档案的最后一行

gg 移动到这个档案的第一行

n<Enter> n 为数字。光标向下移动 n 行

/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可

n       重复前一个搜寻的动作

N      『反向』进行前一个搜寻动作

:n1,n2s/word1/word2/g       n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/g        从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/gc       从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代

x   向后删除一个字符

X   向前删除一个字符

dd      删除游标所在的那一整行

ndd     n 为数字。删除光标所在的向下 n 行(包括游标所在的那一行)

yy      复制游标所在的那一行

nyy     n 为数字。复制光标所在的向下 n 行

p       为将已复制的数据在光标下一行贴上

P       为将已复制的数据在光标上一行贴上

u             复原前一个动作(撤销)

Ctrl + r    重做上一个动作

.            重复前一个动作

一般模式切换到编辑模式

i   从目前光标所在处插入

I   在目前所在行的第一个非空格符处开始插入

a   从目前光标所在的下一个字符处开始插入

A   从光标所在行的最后一个字符处开始插入

o   在目前光标所在的下一行处插入新的一行

O   在目前光标所在处的上一行插入新的一行

r   只会取代光标所在的那一个字符一次

R   会一直取代光标所在的文字,直到按下 ESC 为止

一般模式切换到指令行模式

:w      将编辑的数据写入硬盘档案中

:w!     强制将编辑的数据写入硬盘档案中

:q      离开

:q!     为强制离开不储存档案

:wq     储存后离开

:wq!    强制储存后离开

:set nu       显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu     取消行号

mac OS vi/vim 使用教程的更多相关文章

  1. Mac os安装DVWA环境教程

    Mac os安装DVWA环境教程 1.尽管Mac自带Apache和php 事实上Mac和WIN都用XAMPP一键化安装比较方便 2.解压DVWA-master 改名为dvwa移动到XAMPP的目录 3 ...

  2. 虚拟机VirtualBox安装MAC OS 10.12图文教程

    VirtualBox虚拟机安装Mac OS 10.12图文教程的准备 1.VirtualBox虚拟机 下载地址:https://www.virtualbox.org/ 特别提醒:推荐官方下载,安装Vi ...

  3. win10 Vmware12装mac os X10.11虚拟机教程

    1.下载安装VMware 12,具体教程在网上都能看见. 2.下载mac os的镜像,最好下载cdr格式的. 3.在导入虚拟机的时候,到选择客户机操作系统的时候,没有网上出现的Mac os,如下图所示 ...

  4. 使用VMware安装Mac OS的综合整理教程(你要的这里都有……)

    最近打算使用vmware安装Mac系统,听说安装Mac系统是非常繁琐的,经过几番尝试确实如此,所以写下此教程来更完整地讲解能够成功安装mac的步骤,那么废话不多说. 本次教程整合于多个网上教程,但如果 ...

  5. vi, vim 使用教程

    vim 使用教程 ```shcd lscd ../cd -pwdcprmmkdirtarmvmbtar -zcfchmodsshtopqfree ``` 数字0含空字符到行首,^不含空字符到行首.G移 ...

  6. mac /linux vi/vim永久显示行号开启高亮模式

    临时显示:进入vi编辑器,输入命令 :set number     //下次在进入vi 无法显示行号 :set nonumber  //本次vi关闭行号显示 vi 每次修改后推荐使用命令: sourc ...

  7. Mac OS 上 VIM 8.0 安装体验

    VIM 8.0 赶在中秋前发布 The best way to install Vim on Unix is to use the sources. This requires a compiler ...

  8. Mac OS X Git安装教程

    http://code.google.com/p/git-osx-installer上也提供了一个Git的图形化客户端:OpenInGitGui,可以从这里获得,OpenInGitGui十分小巧,下载 ...

  9. VMware 虚拟机安装 Mac OS X Mountain Lion 苹果系统

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

随机推荐

  1. .gitattributes

    .gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干属性.以行为单位设置一个路径下所有文件的属性,格式如下: 要匹配的文件模式 属性1 属性2 GRLF和LF CRLF,LF ...

  2. 51单片机内存条(64K)

    51单片机内存条扩展(64K) 设计时间:2015年 实现功能:51单片机SRAM扩展 51单片机64K内存条

  3. php依赖注入与容器,Container,控制反转

    依赖注入与Ioc容器 概念: 容器:可以理解为用来存放某个东西的物品(篮子?),存放的东西取决于你想往里面放点什么.在这里,我们是存放某个类,类的描述或者一个返回类实例的闭包函数. Ioc(Inver ...

  4. Spring Taco Cloud——配料表(Lombok的安装及其注解)

    先简单概括下这个项目:外卖订餐平台Web,这个是承接我的这篇博文来续写的https://www.cnblogs.com/yycjavastudy/articles/12666104.html,在这一篇 ...

  5. 《操作系统》课程笔记(Ch01-导论)

    Ch01 - 导论 操作系统的功能 用户视角:在乎使用方便,不在乎资源利用 系统视角:资源分配器.控制程序 计算机系统的运行 启动:利用固件(Firmware)中的引导程序(Bootstrap Pro ...

  6. ssl & ike/ipsec

    SSL/TLS

  7. 37.2 net-- tcp传输 ServerSocket、Socket

    一.打开server端 package day35_net_网络编程.tcp传输; import java.io.IOException; import java.io.InputStream; im ...

  8. 36 Thread 多线程

    /* * 多线程的实现方式: * 方式1:一种方法是将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法.接下来可以分配并启动该子类的实例 * * Thread * Str ...

  9. 挑战全网最幽默的Vuex系列教程:第一讲 Vuex到底是什么鬼

    先说两句 官方已经有教程了,为什么还要写这个教程呢?说实话,还真不是我闲着蛋疼,官方的教程真的是太官方了,对于刚入门 Vuex 的童鞋来说,想必看官方的教程,很多地方就如同看圣经一样,比如「欧玛尼玛尼 ...

  10. c++学习day01基础知识学习

    一.代码示例解析: #include <iostream> int main() { using namespace std; cout << "come up an ...