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相反,为取消行号

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值