• Linux友人帐之Vim编译器


    一、概述

    1.1简介

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

    vim 则可以说是程序开发者的一项很好用的工具。

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

    连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

     

     1.2三种使用模式

    1.3命令行模式(Command Mode) 

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

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    以下是常用的几个命令:

    • i 切换到输入模式,以输入字符。

    • x 删除当前光标所在处的字符。

    • : 切换到底线命令模式,以在最底一行输入命令。如果是编辑模式,需要先退出编辑模式!ESC

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

    命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

    移动光标的方法

    (1)h或←

    光标向左移动一个字符

    (2)j或↓

    光标向下移动一个字符

    (3)k或↑

    光标向上移动一个字符

    (4)l或→

    光标向右移动一个字符

    (5)【Crtl】+【f】

    屏幕“向下”移动一页

    相当于【Page Down】按键

    (6)【Crtl】+【b】

    屏幕“向上”移动一页

    相当于【Page Up】按键

    (7)【Crtl】+【d】

    屏幕“向下”移动半页

    (8)【Crtl】+【u】

    屏幕“向上”移动半页

    (9)+

    光标移动到下一行的非空字符(第一个)

    (10)-

    光标移动到上一行的非空字符(第一个)

    (11)n【Space】

    n代表数字,比如20。按下数字后再按空格,光标会向右移动这一行的n个字符

    例如:20【Space】则光标会向后移动20个字符的距离

    (12)0 (注意不是数字盘的数字)

    数字键0:移动到该行的最前面的字符处

    (13)^

    与正则表达式类似,移动到该行的最前面的字符处

    (14)$

    与正则表达式类似,移动到该行的最后面的字符处

    (15)H

    光标移动到此时屏幕的最上面那一行的第一个字符

    (16)M

    光标移动到此时屏幕的中间那一行的第一个字符

    (17)L

    光标移动到此时屏幕的最下面那一行的第一个字符

    (18)G

    移动到改文件的最后一行

    (19)nG或ngg

    n为数字。移动到该文件的第n行

    例如:20G或20gg则会移动到该文件的第20行

    可配合:set nu

    (20)gg

    移动到该文件的第一行

    (21)n【Enter】

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

     搜索与替换方法

    (1)/word

    向光标之下寻找一个名为word的字符串

    例如:要在文件中搜索Linux这个字符,输入/Linux即可

    (2)?word

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

    (3)n

    为按键n。代表“重复前一个搜索动作”

    (4)N

    为按键N。与n相反,为“反向”进行前一个搜索

    (5):n1,n2/word1/word2/g

    n1、n2为数字。在第n1行到第n2行之间寻找word1这个字符串,并将该字符串替换为word2

    例如,在100行到200行之间寻找windows并替换为linux,为:100,200s/windowns/linux/g

    (6):1,$/word1/word2/g或:%s/word1/word2/g

    从第1行到最后一行寻找word1字符串,并替换为word2

    (7):1,$%/word1/word2/gc

    从第1行到最后一行寻找word1字符串,并替换为word2。在替换前进行询问

     删除、复制和粘贴方法 

    (1)x、X

    在一行当中,x为向后删除一个字符(delete)

    X为向前删除一个字符(backspace)

    (2)nx

    n为数字。连续向后删除n个字符

    例如:需要连续删除10个字符,则为10x

    (3)dd

    删除光标所在的那一行

    (4)ndd

    n为数字。删除光标所在的向下n行

    例如:20dd就是删除20行

    (5)d1G

    删除光标所在到第一行的所有数据

    (6)dG

    删除光标所在到最后一行的所有数据

    (7)d$

    删除光标所在处,到该行的最后一个字符

    (8)d0

    删除光标所在处,到该行的最前面一个字符

    (9)yy

    复制光标所在的行

    (10)nyy

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

    例如:20yy就是复制20行

    (11)y1G

    复制光标所在到第一行的所有数据

    (12)yG

    复制光标所在到最后一行的所有数据

    (13)y0

    复制光标所在处,到该行行首的所有数据

    (14)y$

    复制光标所在处,到该行行尾的所有数据

    (15)p、P

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

    P则为粘贴在光标所在行之前

    例如,目前光标在第20行,且已经复制了10行的数据。此时按下p,那10行数据会粘贴在原本的20行之后,即从21行开始粘贴;此时若按下P,原来的第20行,会被推至第30行。

    (16)J

    将光标所在行与下一行的数据结合成一行

    (17)c

    重复删除多个数据

    例如向下删除10行,10cj

    j为方向

    (18)u

    复原前一个动作

    (19)【Ctrl】+r

    重做上一个动作

    (20).

    重复前一个动作

     1.4编辑模式(Insert Mode)

    在命令模式下按下i就进入了编辑模式。

    在编辑模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符

    • ENTER,回车键,换行

    • BACK SPACE,退格键,删除光标前一个字符

    • DEL,删除键,删除光标后一个字符

    • 方向键,在文本中移动光标

    • HOME/END,移动光标到行首/行尾

    • Page Up/Page Down,上/下翻页

    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

    • ESC,退出输入模式,切换到命令模式

    1. i、I

    进入插入模式

    i:从目前光标所在处插入

    I:在当前所在行的第一个非空字符处开始插入

    2. a、A

    进入插入模式

    a:从当面光标所在的下一个字符处开始插入

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

    3. o、O

    进入插入模式

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

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

    4. r、R

    进入替换模式

    r:之后替换光标所在的那一个字符一次

    R:一直替换光标所在字符,直至按下【ESC】为止

    5.【ESC】

    退出编辑模式,回到命令行模式

    1.5底行模式(Last Line Mode)

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

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

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

    • q 退出程序

    • w 保存文件

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

    (1):w

    将编辑的数据写入硬盘中

    (2):W

    若文件属性为“只读”时,强制写入该文件

    但是,成功与否,与权限相关

    (3):q

    离开vim

    (4):q!

    若曾修改过文件,又不想保存,使用!强制退出且不存储文件

    (5):wq

    保存并离开

    若为:wq!,则为强制保存并离开

    (6)ZZ

    若文件没有更改,则不存储离开

    若文件已被更改,则存储后离开

    (7):w 【filename】

    将编辑的数据存为另一个文件

    类似于“另存为”

    (8):r 【 filename】

    在编辑的数据中,读入另一个文件的数据

    即将【filename】这个文件的内容加到光标所在行的后面

    (9):n1,n2 w 【filename】

    将n1到n2行的内容保存为filename这个文件

    (10):! command

    暂时离开vim,到Shell环境下执行command并显示结果

    例如,:! ls /home,即可在vim当中查看/home下以ls输出的信息

     

     1.6vim环境的变更

    (1):set nu

    显示行号

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

    (2):set nonu

    与set nu相反,为取消行号

  • 相关阅读:
    CUDA说明和安装[window]
    使用免费开源的Odoo CRM如何有效的获取潜在客户线索的经验分享
    Redis学习笔记-2.客户端的使用
    Spring Security-基于表达式的访问控制和基于注解的访问控制
    重点用能单位能耗系统在湖南三立集团的应用
    ts重点学习39-索引签名
    栈和队列 - C语言实现
    牛客网:旋转数组
    Java连接PostGreSql
    lv3 嵌入式开发-5 linux shell命令(进程管理、用户管理)
  • 原文地址:https://blog.csdn.net/qq_62377885/article/details/133553504