Linux学习笔记(10)文本编辑器vim

vim是一个功能强大的全屏幕文本编辑器,是Linux/Unix最经常使用的文本编辑器,其做用是创建、编辑、显示文本文件vim的特色是没有菜单,只有命令vim

vim主要有三种工做模式,分别为命令模式、插入模式、编辑模式。三者的关系可由下图来表示:编辑器

 

1 vim经常使用操做

(1)插入命令

命令spa

做用code

ablog

在光标所在字符后插入ci

A字符串

在光标所在行尾插入string

iit

在光标所在字符前插入table

I

在光标所在行首插入

o

在光标下插入新行

O

在光标上插入新行

 

(2)定位命令

命令

做用

:set nu

设置行号

:set nonu

取消行号

gg

到第一行

G

到最后一行

nG

到第n行

:n

到第n行

$

移至行尾

0

移至行首

 

(3)删除命令

命令

做用

x

删除光标所在处字符

nx

删除光标所在处后n个字符

dd

删除光标所在行

dG

删除光标所在行到文件末尾内容

ndd

删除光标所在行后n行(包括当前行)

D

删除光标所在处到行尾内容

:n1,n2d

删除指定范围行

 

(4)复制和剪切命令

命令

做用

yy

复制当前行

nyy

复制当前行如下n行(包括当前行)

dd

剪切当前行

ndd

剪切当前行如下n行(包括当前行)

p,P

粘贴在当前光标所在行下或行上

 

(5)替换和取消命令

命令

做用

r

取代光标所在处字符

R

从光标所在处开始替换字符,按ESC结束

u

取消上一步操做

 

(6)搜索和搜索替换命令

命令

做用

/string

搜索指定字符串,搜索时忽略大小写:set ic,取消忽略:set noic

n

搜索指定字符串的下一个出现位置

:%s/old/new/g

全文替换指定字符串

:n1,n2s/old/new/g

在必定范围内替换指定字符串

其中g表示不询问确认,若是是c的话表示询问确认

(7)保存和退出命令

命令

做用

:w

保存修改

:w new_filename

另存为指定文件

:wq

保存修改并退出

ZZ

快捷键,保存修改并退出

:q!

不保存修改并退出

:wq!

保存修改并退出(文件全部者和root可以使用)

2. vim的使用技巧

(1)将一个文件的内容导入到文本文件中,其格式为:

:r 文件名

例:建立test文本,写入以下内容,将/etc/issue的内容复制到test文本中

[root@localhost ~]# vi test

I am ws.

What's your name?

My name is LiMing

I am glad to see you.

在最后一行的下一行插入issue的内容,在命令模式下输入:r /etc/issue,可得:

I am ws.

What's your name?

My name is LiMing

I am glad to see you!

CentOS release 6.5 (Final)

Kernel \r on an \m

(2)在不退出vim的状况下,执行相应的操做命令,其格式为:

:!命令

例:如在命令模式下执行ls命令

I am glad to see you!

CentOS release 6.5 (Final)

Kernel \r on an \m

 

:!ls

[No write since last change]

anaconda-ks.cfg  install.log  install.log.syslog

(3)导入命令执行结果,至关于将前二者进行综合,其格式为:

:r !命令

例:在test的文本末尾添加日期,在命令模式下输入:r !date,其结果为:

I am ws.

What's your name?

My name is LiMing

I am glad to see you!

CentOS release 6.5 (Final)

Kernel \r on an \m

Fri Jan  2 06:00:55 CST 2015

(4)定义快捷键

能够为经常使用的命令定义快捷键,其格式为:

map 快捷键 触发命令

注:快捷键的建立须要同时按下Ctrl+v+建立快捷键的字母

例1:建立一个快捷键,可以使在行首加入注释符#,只需在命令模式下输入:map ^P I#<ESC>,其中^P为Ctrl+v+p同时按下后的显示,I#即为行首插入注释符#,<ESC>表示退出编辑模式到命令模式。

而后在第一行执行Ctrl+p,便可获得以下结果:

#I am ws.

What's your name?

My name is LiMing

I am glad to see you!

CentOS release 6.5 (Final)

Kernel \r on an \m

Fri Jan  2 06:00:55 CST 2015

例2:建立删除行首注释符#的快捷键,在命令模式下输入:map ^B 0x。

例3:在当前光标下为邮箱建立快捷键,在命令模式下输入以下命令:

:map ^H i123@qq.com

(5)连续注释行,该命令与搜索替换命令1.(6)相似。如在连续多行添加注释符#,在命令模式下输入以下命令:

:n1,n2s/^/#/g

其中^表示行首

相对的,取消连续行注释能够在命令模式下输入以下命令:

:n1,n2s/^#//g

若是以"//"表示注释符的话,则连续注释行可在命令模式下输入以下命令:

:n1,n2s/^/\/\//g

其中"\"表示转义字符。

例:在test文本中的前两行加入//注释符:

//I am ws.

//What's your name?

My name is LiMing

I am glad to see you!

CentOS release 6.5 (Final)

Kernel \r on an \m

Fri Jan  2 06:00:55 CST 2015

(6)替换

在文本文件中,能够将一个字符串替换为另外一个字符串,如将mail替换为123@qq.com,其命令格式为:

:ab  mail 123@qq.com

而后在文本中写入mail,按空格或Enter键则mail自动替换为123@qq.com。

一般设置的快捷键或替换在系统重启时会消失,若是想长时间的保存快捷键的定义或替换等,能够在每一个用户的家目录(如root在/root,用户在/home/用户)下写入配置文件.vimrc(root下如/root/.vimrc),而后在该配置文件中编辑模式下写入所须要的命令,且行首无需加冒号(:)。

相关文章
相关标签/搜索