vi-vim常用命令

1 简介

在UNIX系统中,创建和修改配置文件、shell脚本、初始化文件、编写程序都离不开VI。

1      vi[1]属于两个主要的UNIX规范:POSIX和单一UNIX规范。

2      vi编辑器由Bill Joy于1976年创建。

3      vi是一种面向屏幕的编辑器。

4      vi来源于另一个编辑器ex。

5      vim是vi的增强版。

2 使用帮助

学习vi,学会使用联机手册或帮助命令是非常重要的。Unix有两个最重要的文档资料系统:Unix手册和Info(GNU项目的官方文档资料系统)。

常用命令:

1      man vi

2      vi --help

3      info vi

对于较长的说明页,可使用分页程序分页显示。常用的分页程序有:less、more、pg。例如:man cp | less

查找说明书页的其它方法(基于web):

1      使用google搜索:(一定要确保包含双引号)

○    “man vi ”

○    “man pages” vi

2 另外一种基于web的说明书页的方法是xman,xman是一个基于GUI的程序,它充当说明书页浏览器。在命令行启动xman:xman&

Vi的帮助命令::help

3 模式和命令

3.1 输入模式和命令模式

命令模式[2](command mode):所键入的键都被解释成命令。

输入模式(input mode):键入的任何内容都直接插入到编辑缓冲区中。

当离开输入模式时,使用Esc键切换到命令模式。

了解所处模式的方法:

:set showmode

3.2 vi和ex命令

vi和ex是同一个程序的两种不同的表现形式。也就是说可以同时使用vi和ex命令。

vi:

①大多数vi命令都是单字母双字母的表现形式。

②vi键入时命令不回显。

ex:

①ex命令比vi命令长。

②所有的ex命令都以一个:(冒号)开头。键入:后,vi就将光标移动到命令行上(屏幕最底部)。

③ex命令的每个字符都将回显。

④ex命令结束,必须按下<Return>键盘。

4 启动与编辑vi-vim

4.1编辑一个文件

语法:vi 【-rR】 【file……】

常用命令:

1      vi file                 启动vi,编辑指定的文件

2      vi -R file             以只读模式启动vi

3      view file              以只读模式启动vi (vi -R file等同于view file)

4      vim file                   启动vim,编辑指定的文件

5      vim -C      file          以兼容模式启动vi

4.2编辑多个文件

语法:vi a.txt b.txt c.txt

切换文件: :next

4.3 编辑技巧

编辑技巧:

1      vi +[num] file          打开文件,并将光标置于第n行首

2      vi + file                   打开文件,并将光标置于最后一行首

3      vi +/pattern file       打开文件,并将光标置于第一个与pattern匹配的字符串

4      vi +?pattern file       编辑工作从匹配pattern的最后一行开始

5      vi -r file                 (-r 即recover,恢复)

4.4 写入文件

常用命令:

1      :w                      将数据写入到原始文件

2      :w file                     将数据写入到指定文件

3      :w >> file                将数据追加到指定文件

4      :r [filename]            在编辑的数据中,读取另一个档案的数据,亦将档案内容加到游标所在行的后面

5      :n1,n2 w [filename]      将n1到n2的内容存储成另一个档案。

4.5 退出文件、停止vi

常用命令:

1      :q             退出文件

2      :q!            不保存数据,强制退出

3      :wq           保存退出文件

4      shift+ZZ    停止vi

5      ZQ            无条件退出

4.6 vi与vim命令行常用选项

-b                     以二进制模式编辑文件

-c command      启动后立即运行给定的ex命令

-d                     以diff模式运行

-o[num]            启动vim时打开num个窗口

-O[num]            启动vim时打开num个水平排列

-r                      恢复模式

-R                     于只读模式中编辑文件

-t tag                编辑包含tag的文件,并将光标置于tag位置

-T type              设置可选终端类型

5 插入

输入模式:

操作键

说明

i

在当前光标位置前插入数据

a

在当前光标位置后插入数据

I

在当前行开头处插入数据

A

在当前行末尾处插入数据

o

在当前行下面出入一行

O

在当前行上面插入一行

6 移动和跳转

6.1获取光标当前位置

获取方式:^G

6.2 缓冲区移动

操作键

说明

^F

向下移动一屏

^B

向上移动一屏

n^F

向下移动n屏

n^B

向上移动n屏

^D

向下移动半屏

^U

向上移动半屏

n^D

向下移动n行

n^U

向上移动n行

^E

向屏幕顶端多滚动一行

^L

向屏幕底端多滚动一行

zENTER

将光标所在的行移动到屏幕顶端

z.

将光标所在的行移动到屏幕中间

z-

将光标所在的行移动到屏幕底端

6.3 光标移动

操作键

说明

h       <Left>

将光标向左移动一个位置

j     <Down>

将光标向下移动一个位置

k         <Up>

将光标向上移动一个位置

l       <Right>

将光标向右移动一个位置

-

将光标移动到上一行的开头

+     <Return>

将光标移动到下一行的开头

^

将光标移动到当前行的第一个非空格/制表符的字符上

数字0

将光标移动到当前行的开始

$

将光标移动到当前行的末尾

w W

将光标移动到下一个单词的词首(大写字母,略过空格)

e E

将光标移动到下一个单词的词尾(大写字母,略过空格)

b B

将光标移动到上一个单词的词首(大写字母,略过空格)

向前移动到下一个句子

向后移动到上一个句子

{

向前移动到下一个段落

}

向后移动到上一个段落

H

将光标移动到屏幕顶部

M

将光标移动到屏幕中间

L

将光标移动到屏幕的最后一行

fcharacter

单字符搜索移动(f为搜索命令,character为要搜索的字符)

Fcharacter

单字符左方向搜索移动

%

已匹配一个括号为目的的移动

说明:

1.命令计数:在移动命令前加数字,如3j,可实现向下移动三行。

语法:ncommand   (n为数字,command为移动命令)

2. 规律:一个命令的大写字母形式会做同样的事情,但是方向相反。

6.4 行号跳转

显示行号:     :set number

关闭行号:     :set nonumber

命令

说明

nG 、   :n

跳转到第n行

1G 、 gg  、 :1

跳转到编辑缓冲区的第一行

G   、  :$

跳转到编辑缓冲区最后一行

附加:

另一个移动到某行的办法是:在命令 前加一个命令计数,如 50% 会把光标定位在文件中间。

6.5 跳转到前一位置

返回前一位置:

a)      ``(两个反引号)

b)      ‘’(两个单引号)

6.6 使用名称标示任意行,进行跳转

用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。

可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。例如:用”b“标示这一行,可以键入mb。为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。如:`b 或 ’b

7 搜索

7.1搜索常用命令

向前搜索: /

向后搜索: ?

常用命令:

1      /           向前重复搜索

2      ?             向后重复搜索

3      /regex       向前搜索指定的正则表达式

4      ?regex     向后搜索指定的正则表达式

5      n              重复上一条/或?命令,搜索方向相同

6      N              重复上一条/或?命令,搜索方向相反

附:

命令历史记录:用上下箭头来查找用过的搜索

7.2查找字符串便捷方式

*命令 : 将光标定位于字符串,按下*键,vi将会取当前光标所在的字符串并将它作用目标字符串进行搜索。

#命令: 与*相反。

%:搜索与当前花括号、圆括号、方括号成对的符号。

7.3 查找整个字符串

方法:

使用\<  \>进行匹配。

例子:/\<word\>

8 文本改动

8.1替换之vi命令

r:精确替换一个字符(不进入输入模式)。

R:替换多个字符(以覆盖方式替换)。(先将光标移动到希望开始替换的位置,然后输入R。切换到输入模式,随后键入的每个字符都将替换当前行上的一个字符。)

s:允许使用多个字符替换一个单个的字符(以插入方式替换)。

C:允许替换从当前光标位置到本行末尾的所有字符。

 cc:以插入方式替换当前整行。

cmove:以插入方式从当前光标处替换到move所给出的位置处。

8.2替换之ex命令_常用方法

ex命令:

语法::s/pattern/replace/   其中,pattern是替换的模式,replace是替换的文本。

使用方法总结:

1      :s/pattern/replace/           替换当前行

2      s/pattern/replace/g              替换当前行所有

3      :lines/pattern/raplace/          替换指定行

4      :line,lines/pattern/replace/     替换指定范围内的行

5      :%s/pattern/replace/            替换所有行

6      :.,$s/pattern/replace/g          从当前行末尾至编辑缓冲区的末尾进行相同的替换

7      :line,.s/pattern/replace/g       从编辑缓冲区的指定位置到当前行进行相同的替换

说明 :

1      所有的ex命令都以:开头。

2      :s只替换当前行上该模式的第一个匹配项。

3      为了替换所有匹配项,需在该命令的末尾键入字母g。例如::s/UNIX/linux/g

4      替换前进行确认,可在命令末尾添加c。例如::s/UNIX/linux/cg

5      .点号代表当前行。$代表缓冲区最后一行。%代表编辑缓冲区内所有的行。

8.3 交换字符

交换两个字符的位置:   xp

交换两行的位置:ddp

调换两个单词(光标开始处于第一个单词的左边):deep

9 删除

9.1 删除命令

vi命令

操作键

x

删除当前光标处的字符

X

删除光标左边的字符

D

删除从当前光标到本行末尾的字符

J

删除两行之间的换行符 (亦可用于合并两行)

dmove

删除从当前光标到move所给位置的字符

dd

删除当前行

ex命令

:lined

删除指定行

:line,lined

删除指定范围内的行

9.2 常用的删除组合命令

说明:操作符命令+位移命令

1      nx                  删除多个字符(n为删除的字符个数)

2      dw                  删除1个单词

3      d10w               删除10个单词

4      d10W              删除10个单词,忽略标点符号。

5      db                   向后删除一个单词

6      d2)                删除两个句子

7      d5}                  删除5个段落

8      dG 或 :.,$d        删除当前行到编辑缓冲区末尾的所有行

9      dgg 或 d1G 或:1,.d       删除当前行到编辑缓冲区开头的所有行

10    :1,$d 或 :%f                删除整个编辑缓冲区

11    d/word                       删除从光标所在位置到单词word的所有文本

12    .,/word/d         删除从光标所在位置到单词word的所有文本

13    df x                 删除至当前行中x所在的位置

14    d^                   删除至该行的开始处

9.3插入模式中删除操作

^U                         删除当前行

^H                         删除前一个字符

^W                        删除前一个词

9.4 撤销或重复改变

vi命令:

1      u                     撤销上一命令对编辑缓冲区的修改

2      U                     恢复当前行(即一次撤销对当前行的全部操作)

3      .点号                重复上一命令对编辑缓冲区的修改

9.5 恢复删除

语法:"1p(P)

说明:

1      1为缓冲区的编号。

2      p在当前行的下面插入,P在当前行的上面插入。

9.6 复制上一次删除

命令

说明

p

复制上一次删除的内容,插入到光标的后面/下面

P

复制上一次删除的内容,插入到光标的前面/上面

10 复制

10.1 接出(复制单词、句子、段落)

当在不删除文本的情况下将文本复制到无名缓冲区时,称为接出(yank)。(因此将命令命名为y、yy、Y)。

步骤:

1      使用y、yy、Y将文本由编辑缓冲区复制到无名缓冲区中,但不删除原始文本。

2      将光标移动到希望插入文本的位置。

3      使用P或p命令执行插入。

常用命令

操作键

yw

接出一个单词

y10w

接出10个单词

y10W

接出10个单词,忽略标点符号

yb

向后接出一个单词

y2)

接出两个句子

y2}

接出5个段落

yy

接出一行

10yy

接出10行

y$

接出从当前字符到本行末尾的的文本

y0

接出从当前字符到这一行开头之间的文本

10.2 复制与移动行

语法:

:x,ycoz

:x,ymz

说明:

1      x,y,z都是行号。x,y是源行,z是目标行号。

2      源行x,y被复制或移动,插入到z行的下面。

3      :m删除原始行,:co不删除原始行。

例子:

1      :2co4        复制第2行,插入到第4行下面

2      :2,4co8            复制第2行到第4行,插入到第8行下面

3      :2m4        移动第2行,插入到第4行下面

4      :2,4m8             移动第2行到第4行,插入到第8行下面。

11 使用缩写

要为经常使用的单词或表达式创建缩写,可使用:ab命令。

1      创建缩写,语法::ab [ short long ]

2      删除缩写,语法: :una short

12 命令补全与文本补全

命令补全:Tab

关键字补全:^N ^P

13 shell命令

14.1 执行shell命令

1      :!command      暂停vi,执行制定的shell命令

2      :!! pause vi      执行上一条shell命令

3      :sh              暂停vi,启动一个新的shell

4      :!csh           暂停vi,启动一个新的c-shell

14.2 使用shell命令处理数据

1      n!! command          对n行数据执行command

2      !move command    对当前光标至move所指定的位置的数据执行command

3      !move fmt              格式化当前光标到move所指定的行

15  显示与设置选项

15.1 显示选项

1      语法:                    :set [option]

2      显示所有选项的值: :set all

3      显示一个选项的值: :set option?

15.2 设置选项

语法::set [no]option..... :set option[=value]...

15.3常用设置命令

  1. 设置行号显示与否:             简写 :set nu  / :set no nu
  2. 设置自动缩进:            简写 :set ai / :set no ai
  3. 设置缩进宽度:            简写 :set sw=4
  4. 设置大小写忽略与否:   简写 :set ic / :set no ic

16 初始化文件与配置文件

16.1初始化文件

vi的初始化文件:.exrc

vim的初始化文件:vimrc

16.2配置文件

linux配置文件:             /usr/share/vim/vimrc

查找Windows配置文件:      scriptnames

17 在线资料

1      vim官网:http://www.vim.org/

2      FreeBSD vi:http://www.dc.fi.udc.es/~afyanez/info-vi/man-page.html

3      vim中文文档:http://vimdoc.sourceforge.net/htmldoc/usr_toc.html

4      vim作者个人网站:http://www.moolenaar.net/

5      vim手册中文版:http://sourceforge.net/projects/vimcdoc/

6      vi-ex:http://ex-vi.sourceforge.net/

7      vi:http://thomer.com/vi/vi.html

8      非常好vim学习网站:http://www.openvim.com/

9      图形化vi-vim小抄:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

10   vim配置文件:http://amix.dk/vim/vimrc.html

11   史上最强vim配置文件:http://blog.csdn.net/redguardtoo/article/details/1172136

12   vi正则表达式:http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml

13   神奇的vi:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip15/

14   vim资料:http://wiki.hotoo.me/Vim.html

15   vi-vim book:http://search.oreilly.com/?q=vi+vim&x=-873&y=-56

16   OReilly:http://books.google.com/books?id=J5nKVVg5YHAC&printsec=frontcover&dq=vi+vim&hl=en&sa=X&ei=UcVRUeCPKs-viQew54CwDQ&ved=0CC8Q6AEwAA#v=onepage&q&f=false

17   OReilly:http://books.google.com/books?id=YQXfIbb0cJ8C&printsec=frontcover&dq=vi+vim&hl=en&sa=X&ei=s8VRUc2VO8SViAeB9YGYBA&ved=0CDoQ6AEwAQ

转载于:https://www.cnblogs.com/halberts/p/6850013.html

vi-vim常用命令相关推荐

  1. vi/vim常用命令 zz

    http://blog.sina.com.cn/s/blog_492101c70100o10c.html 最近整理的vi/vim常用命令,有需要的童鞋拿去用吧 (本来是在excel中的,但是没有地方上 ...

  2. vi/vim常用命令总结参考图

    vi/vim编辑工具常用命令参考:

  3. vi (vim) 常用命令

    最近在做linux相关学习,记录vi常用命令如下: 1. 光标移动 * w 光标移动到下一个文字的开始 * b 光标移动到上一个文字的开始 * e 光标移动到下一个文字的结束 * n + <sp ...

  4. vi / vim——常用命令

    一.重复次数 在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数 二.移动和选择 vi之所以快,关键在于能够快速定位到要编辑的代码行 移动命令能够和编辑操作命令组合使用 方向键 ...

  5. 【文档资料】Linux、Vi/Vim常用命令

    一.Linux 1.系统信息[左1] 查看磁盘空间使用情况:df+参数 查看当前指定文件或目录的大小:du 查看不同硬件信息:cat/proc/xxx 查看系统和空闲内存:free +参数 SSH退出 ...

  6. vi(vim)常用命令汇总

    前言 首先介绍一下 vim vi 是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有 vi 有各种变种, 在不同的机器上常用不同的变种软件 其中 vim 比较好用也用得比较广泛 ...

  7. vi vim常用命令

    跳到最后一行 shift + g 跳到行最后一个字符 shift + 4 跳到文件开头 gg 跳到行头 0 跳到某一行  25gg   或者   25G   或者   ( :n) 恢复修改 u 清空文 ...

  8. vi/vim常用命令积累

    1. 搜索字符串 在非编辑模式下输入  /字符串 查看下一个匹配,按下n(小写n) 跳转到上一个匹配,按下N(大写N

  9. linux 自定义vi dd,Vim常用命令及配置方案

    几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很 ...

  10. linux vim修改字符串,Linux系统vi(vim)编辑器命令说明

    Linux系统vi(vim)编辑器命令说明 刘大喵 • 2019 年 02 月 06 日 vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim ...

最新文章

  1. 电脑蓝屏问题检查、解决、
  2. 58同城招聘|三维重建、图像图形学算法工程师(校招/社招)
  3. Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题
  4. SpringMVC返回Map类型转换成JSON失败
  5. liunxC下零碎知识点的总结
  6. HashMap源码解析(JDK1.8)
  7. html上滑效果,上滑菜单定位.html
  8. nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢
  9. 标志寄存器EFLAGES
  10. Eclipse快捷键生成语句
  11. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  12. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
  13. 使用Fraps获取3D程序的FPS
  14. [NHFrog]发布第三个版本_NHibernate嵌入式代码生成器
  15. 关于使用weex开发app上线App Store问题
  16. i3 7100黑苹果_教你用2000多块装一台黑苹果主机 玩吃鸡剪视频毫无压力
  17. python项目方案书模板格式_项目策划书格式及范文
  18. 批处理html转excel,批量Excel转TXT工具(Batch Excel to Text Converter)v2020.12.1118官方免费版...
  19. dell poweredge服务器_这款AMD服务器不简单
  20. 十三、用卡诺图化简真值表例题(2)

热门文章

  1. opensuse 升级内核
  2. 栈和队列都是什么结构_数据结构与算法之初识栈与队列
  3. jquery PHP 中文乱码,PHP输出中文乱码怎么解决?
  4. java数据写入文件方案,Java如何将字符串数据写入文件?
  5. 【实战】MPLS单域通信过程详解
  6. 典型案例 1:函数计算在音视频场景实践
  7. Serverless 架构下的服务优雅下线实践
  8. java win7 jdk_WIN7下配置JDK并运行JAVA的过程
  9. sqlserver2000内存突破4g_酷比魔方iPlay30评测:10.5英寸大屏,支持4G全网通
  10. python进行linux编程,Python之函数进阶