vim简单总结

编辑器种类

常用的文本编辑器有:

  • 行编辑器,如sed,awk,cut等

  • 全屏编辑器,如vi,vim(vi增强版),nano等

vim的模式

  • 命令模式:使用vim filename打开文件后,进入的第一个模式。

    • 直接使用键盘操作文本的编辑

  • 插入模式:INSERT模式

    • 进入:i,从当前光标处开始

    • 进入:I,从当前行行首开始

  • 末行模式:vim内置命令接口。

    • 以:开头命令

  • 替换模式:replace。会将光标所在的地方,替换为输入的内容。

    • 进入:在命令模式下,输入R命令,进入替换模式。

    • 输入r命令,则只能替换一次

  • 可视化模式:代替鼠标进行选定。搭配命令模式的一个命令作为结尾

    • v 字符为单位

    • V 行为单位

    • c+v 面向块

    • visual模式下,可配合w,),}等使用

  • 多窗口模式

  • 锁屏

    • ctrl+s,vim锁屏

    • 锁屏后,屏幕中,vim显示的内容,无论输入什么,显示的内容都不会变化。

    • 锁屏后的所有输入,都会被记录,并且在解锁后,执行。同未锁屏相同的效果

    • ctrl+q,解锁

打开文件

  • -m 只读模式打开文件,文件被编辑后不能够保存,只能够强制退出 
    vim简单总结

    • 其他的一个只读模式——使用view替换vim打开文件,文件被编辑后,可以用:wq!来强制保存退出 
      vim简单总结

  • -d file1 file2 对比两个文件,不同的地方显示高亮 
    vim简单总结vim.1.png

  • vim +[num] 文件打开后,光标直接跳到第num行的行首,如果没有指定num,则光标跳到文件的最后一行的行首

  • vim +/pat 打开文件后,光标跳到第一个匹配{pat}的行的行首 
    tips

  • 如果vim DIR,也同样可以进入,同样可以编辑,但是无法保存。 
    Linux同一个目录下,不能有同名的文件夹或文件

  • 显示:标准屏幕显示20行

末端模式命令

:wx 见标题:编辑完成后 
:r /path 在光标所在行之后,新建行,并 读入文件 
:!cmd 在vim中执行bashshell的命令(并不会插入) 
:r ! cmd 或者 :r!cmd 在当前行之后插入命令执行结果

定位,跳转

单词跳

  • w    下一个单词词首

    • #w    下面的#个单词词首

  • e    下一个单词词尾

    • #e    下#个单词词尾

  • b    前一个单词的词首

    • #b    前#个单词词首

字符跳

  • h 向左跳一个字符

    • [num]h 向左跳[num]个字符

  • j 向下跳一个字符

    • [num]j 向下跳[num]个字符

  • k 向上跳一个字符

    • [num]k 向上跳[num]个字符 
      tips: 
      Japan在Korea下面,J向下,K向上

  • l 向右跳一个字符

    • [num]l 向右跳[num]个字符

多行跳

  • H(HIgh) 当前页第一行的行首

    • [num]H 当前页第[num]行的行首

  • L(low) 当前最后一行的行首

    • [num] L 当前页倒数第[num]行的行首

  • M(middle) 当前页中间一行的行首

  • \^ 行首(不算空格)

  • 0 绝对行首

  • $ 绝对行尾

  • G 文章最后一行行首

    • [num]G 第[num]行行首

  • :[num] 文章的第[num]行

  • 文章第一行 1G,:1,gg

  • ( 前一句(以.为分隔)

  • ) 后一句

  • { ·前一段

    • 两行之间只有回车,不算段落,必须之间有一个空行,才算是不同段落。

  • } 后一段

屏幕为单位

  • c+f 前进一屏

  • c+b 后退一屏

  • c+d 前进 半屏

  • c+u 后退半屏

命令模式快捷键

  • x

    • #x

  • d

    • #d

  • y复制字符

    • #y

  • yy 复制行

    • #yy

  • c替换

    • #c

  • C删除到光标所在行尾,并切换到insert模式

    • #C

  • gu(变小写),

  • gU(变大写)的相关操作、 
    NOTES: 
    [num]gu/gU,操作num+1行,并且num默认为1,即gu/gU至少操作两行 
    在组合模式中:0gU$将本行从行首到行尾都转换为大写

  • ~大小写转换

这些命令通常都可以与地址定界符相结合使用,以d为例,如下: 
d$ 
d^ 
dH 
dL 
dM 
dw 
de 
db 
d) 
d} 
d( 
d{ 
dgg 
dG 
d1G 
还可以在命令前后都添加地址定界符,语法为: 

  • J 去掉行尾的回车符,将不同的行转换为同一行

  • p 在光标之后粘贴

  • P在前面粘贴

  • u 撤销

    • u 撤销

  • U 撤销光标落在这一行后,对此行所做的所有更改

  • c+r 取消刚才的撤销,

  • . ()英语的句) 重做

  • [num]. 重做num次,默认为1

地址定界

  • :#

  • :#1,#2

  • :#1,+#2

  • :. 当前

  • :$ 最后一行

  • :$-1 倒数第二行

  • %或者‘:1,$’ 第一行到最后一行

  • :/pat1/,/pat2/d删除第一个匹配pat1到第一次匹配pat2之间的行。

  • :#,/pat3/从第#行开始,到第一次匹配pat3,之间的行

vim的命名寄存器

vim一共有26个(a-z),1个无命名寄存器(默认寄存器)

  • “a表示后续的操作在a寄存器中操作

  • “ayy复制当前行,到a寄存器

  • 3“ayy表示复制3行到a寄存器中

  • 默认情况使用的是无命名寄存器

“ap粘贴a寄存器的内容到当前航

编辑完成后

  • :x= 相当于:wq,但是尽量别用x,因为x的使用,会产生不安全因素

  • ZZ 存盘退出

  • ZQ 不存盘退出

  • :w /path 存内容到path文件,vim打开的文件不会变。

多窗口模式

打开方法

- vim file1 file2 file3
- vim -o 打开横向
- vim -O 打开多个竖向
- vim -p 打开多个tag

切换方法

  • 命令模式:c+w+向下

  • 命令模式:c+w+向上

  • :next

  • :prev

  • :last

  • :first

  • :wqall

  • c+w+v 左右

  • c+w+s 上下

关闭窗口

  • c+w+q取消相邻窗口。

  • c+w+o取消全部其他窗口

模式转换

  • a 追加模式,在当前光标所在字符之后插入(光标跳到当前字符之后的一个字符,并进入INSERT模式)

    • 如果当前行包含一个字符(即使是空白字符也可以),在该字符之后插入

    • 如果当前行为空白行(连空白字符都没有,直接就是回车),直接插入

  • A 光标到当前行最后一个字符

  • i 光标位置不变,在当前光标之前插入

  • I 光标自动跳到行首

  • o 在当前行后,新建一行

  • O 在当前行前,插入一行

  • R 进入替换模式,会将光标所在位置的字符替换为输入字符

  • r 单字符替换模式,只替换一次

other notes:

  • vim打开passwd文件或者其他文件,经常会有额外的提示

    这种现象的原因往往是上次使用该文件的时候异常退出导致的。这种异常退出,会使原本打开时生成的缓存文件.passwd.swap文件,没有被正常删除。 
    只要删除了隐藏文件.filename.swqp就可以了

  • 关于vim打开文件后的各种颜色

    在/etc/文件下打开文件,一般都是有颜色的。vim会自动给那些它认为有意义的文件颜色。这些文件,要么是有结尾标识(比如.sh),要么在文件中有标识(比如#!/bin/bash),要么在特定的文件夹下面(比如/etc/下通常被识别为配置文件)。如下:


vim.2.pngvim.3.png

原创文章,作者:m20-吴清玲,如若转载,请注明出处:http://www.178linux.com/36414

(0)
m20-吴清玲m20-吴清玲
上一篇 2016-08-18
下一篇 2016-08-18

相关推荐

  • N25-第八周作业

    第八周 1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash # ip=172.16.250. for i in {1..254}; do if ping -w 1 -c 1 $ip$i &> /dev/n…

    Linux干货 2017-03-09
  • N25第八周博客作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;     在线的主机使用绿色显示;     不在线的主使用红色显示; #!/bin/bash trap ‘mytrap’ INT mytra…

    Linux干货 2017-02-26
  • 正则表达式

    什么是正则表达式? 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式是烦琐的,但它是强大的,学会之后的应用会让你除…

    Linux干货 2017-06-01
  • 从Linux小白到大牛——与狼共舞的日子10

    马哥教育网络班21期+第10周课程练习 1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST –> Boot Sequence(BIOS) –> Boot Loader(MBR)   –> Kernel+ramdi…

    Linux干货 2016-12-05
  • 做有高薪有逼格的运维工程师,不会Linux是没有前途的!

    作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。 相对于普罗大众的一无所知,技术圈对运…

    2017-09-08
  • Linux下文件权限管理轻微总结

    Linux下文件权限管理轻微总结       此文对linux下文件的权限及其如何管理权限进行介绍,涉及到读“r”写“w”执行“x”三个权限,特殊权限SUID、SGID、STICKY、ACL、attr的使用。同时对更改文件的指令chmod、getfacl、setfacl、chattr、lsattr等进行说明。  &nb…

    Linux干货 2016-11-07