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

相关推荐

  • VIM编辑器入门

    VIM简介 VIM是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 VIM的使用 在介绍基本使用前,先了解下VIM的基本模式 基本模式可分为三种:命令模式、输入模式、末行模式 命令模式:Vim启动后的默认模式,通过输入指令完成对应的编辑操作。输入模式和末行模式从命令模式进入&nb…

    Linux干货 2016-04-05
  • N22-妙手-第一周博客作业

           描述计算机的组成及其功能 1946年冯诺依曼提出冯 诺依曼结构,也称普林斯顿结构,即一种将程序指令存储器和数据存储器合并在一起的存储器结构。根据他的结构,计算机组成是: (1)运算器:负责数据的算术运算和逻辑运算 (2)控制器:  负责对程序信息和数据进行分析,控制并协调其输…

    Linux干货 2016-08-15
  • Nginx 基础 (IO模型、编译安装、几大块配置文件详解)

    Nginx基础 前言 apache在设计的时候已经考虑了并发访问模型,select()机制可以响应1024个访问,但是当数量再大,千万级别的时候http就响应不过来了。这个时候,nginx的出现解决了这一个问题。nginx是一个安装简单、配置文件简单、占用内存少、稳定性高、处理并发能力非常强、灵活好用等有点聚集于一身的轻量级服务器。在Linux操作系统中,N…

    Linux干货 2016-12-24
  • CentOS6 网络管理之网卡配置及简单路由设置

    CentOS6中关于网络配置的命令有很多,本文将介绍几个平时最长用的几个命令,以及网卡IP地址的配置和简单路由配置。 1、经常使用的查看IP地址命令为 ifconfig,不跟参数的情况下默认查看所有已启用的网卡信息,如下图所示: 如果想查看具体某块网卡信息,则可以在ifconfig后面跟上网卡设备,如只查看eth0的信息则执行:ifconfig eht0 即…

    Linux干货 2016-09-05
  • Lua简明教程

    这几天系统地学习了一下Lua这个脚本语言,Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,这是多么地变态啊(/bin/sh都要1M,MacOS平台),而且能和C语言非常好的互动。我很好奇得浏览了一下Lua解释器的源…

    Linux干货 2016-08-15
  • Linux运维学习历程-第五天-Linux文件系统与管理

    Linux运维学习历程-第五天-Linux文件系统与管理 本章内容 文件系统  文件和目录被组织成一个单根倒置树结构从根目录下开始,用“/” 表示根文件系统(rootfs) :root filesystem,用路径分隔的 /;遵循FHS: (Filesystem Hierarchy Standard)  文件系统分层结构:LSB Linu…

    Linux干货 2016-08-04