第一部份:一般模式可用的按钮说明,光标移动、复制粘贴、搜索取代等

移动光标的方法:

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

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

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

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

如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键

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

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

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

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

G 移动到这个档案的最后一行(常用)

nG  n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)

gg 移动到这个档案的第一行,相当于 1G ! (常用)

n<Enter> n 为数字。光标向下移动 n 行(常用)

搜寻与取代

/word:向光标之下寻找一个名称为word的字符串,例如要在文件内搜寻boxiaoyuan这个字符串,就输入/boxiaoyuan即可(常用)

?word:向光标之上寻找一个字符串名称为word的字符串

n:这个 n 是英文按键。代表『重复前一个搜寻的动作』。举例来说, 如果刚刚我们执行 /boxiaoyuan 去向下搜寻 boxiaoyuan 这个字符串,则按下n后,会向下继续搜寻下一个名称为boxiaoyuan 的字符串。如果是执行?boxiaoyuan的话,那么按下n则会向上继续搜寻名称为boxiaoyuan的字符串!

N:这个N是英文按键。与n刚好相反,为『反向』进行前一个搜寻动作。 例如 /boxiaoyuan 后,按下 N 则表示『向上』搜寻boxiaoyuan 。

:n1,n2s/word1/word2/g  n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为word2!举例来说,在100到200行之间搜寻boxiaoyuan并取代为BOXIAOYUAN 则:『:100,200s/boxiaoyuan/BOXIAOYUAN/g』。(常用)

:1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串,并将该字符串取代为 word2!(常用)

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

删除、复制与粘贴

x, X 在一行字当中,x为向后删除一个字符(相当于[del] 按键),X为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)

dd 删除游标所在的那一整行(常用)

ndd n为数字。删除光标所在的向下n行,例如20dd则是删除20行(常用)

yy 复制游标所在的那一行(常用)

nyy n 为数字。复制光标所在的向下n行,例如20yy 则是复制 20 行(常用)

p, P: p 为将已复制的数据在光标下一行贴上,P则为贴在游标上一行! 举例来说,我目前光标在第20行,且已经复制了10行数据。则按下p后, 那10行数据会贴在原本的20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)

u 复原前一个动作。(常用)

[Ctrl]+r 重做上一个动作。(常用)

. 重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

第二部份:一般模式切换到编辑模式的可用的按钮说明

进入插入或取代的编辑模式:

i, I 进入插入模式(Insert mode): i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)

a, A 进入插入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)

o, O 进入插入模式(Insert mode): 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)

r, R 进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

[Esc] 退出编辑模式,回到一般模式中(常用)

第三部份:一般模式切换到指令列模式的可用的按钮说明

指令列的储存、离开等指令

:w 将编辑的数据写入硬盘档案中(常用)

:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关!

:q 离开 vi (常用)

:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)

vi/vim使用总结的更多相关文章

  1. Linux vi/vim(转载)

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  2. vi/vim 的使用

    vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...

  3. 解决vi/vim中粘贴会在行首多很多缩进和空格的问题

    解决vi/vim中粘贴会在行首多很多缩进和空格的问题 secureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器.所以当你的服务器上的vim设置为autoindent的话,在i模式下,那 ...

  4. Linux下Vi/Vim使用笔记

    启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file> vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中 ...

  5. vi/vim基本使用方法

    vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...

  6. Linux vi/vim

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  7. Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  8. 【转载】-- vi/vim使用

    vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...

  9. 小白学Linux(五)--VI/VIM编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...

  10. vi, vim 基本使用(1)

    本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!vi 编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和 ...

随机推荐

  1. 从javascript的循环问题来看待闭包本质

    第一次接触这个问题还是在我刚开始学js的时候,当时就是一头雾水,时隔一年多了,突然又想起了这个问题,在这个春气盎然的周末,我就坐下来研究下并把结果和大家分享下: 先看代码:demo.html < ...

  2. 3.使用Maven构建Web项目

    转自:https://blog.csdn.net/m261030956/article/details/46481837 从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Maven构建一个W ...

  3. ado connection string

    Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=mydb;Data Sou ...

  4. BurpSuite系列(九)----Comparer模块(比较器)

    一.简介 Burp Comparer在Burp Suite中主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别.使用中的场景可能是: 1.枚举用户名过程中,对比分析登陆成功和失败时,服务器 ...

  5. libevent网络编程汇总

    libevent源码剖析: ========================================================== 1.libevent源码剖析一(序) 2.libeve ...

  6. 接口测试中如何利用cookies保持会话

    使用cookies保持会话自己研究了下应该有两种方式: 1.保持会话的第一种方法:如果用的是同一个HttpClient且没去手动连接放掉client.getConnectionManager().sh ...

  7. angular与avalon对复杂对象的修改

    angular的实现 <!doctype html> <html ng-app> <head> <script src="http://files. ...

  8. 对象序列化中transient关键字的用途

  9. 详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化

    在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用. 1. ...

  10. zookeeper全局数据一致性及其典型应用(发布订阅、命名服务、帮助其他集群选举)

    ZooKeeper全局数据一致性: 全局数据一致:集群中每个服务器保存一份相同的数据副本,client 无论连接到哪个服务器,展示的数据都是一致的,这是最重要的特征. 那么zookeeper集群是怎样 ...