VI编辑器使用总结

日期: 20150830

 

文本编辑器主要分为两类:

全屏编辑器:vivimnano

逐行读取编辑器:sed

 

VI―Visual Interface (可视化接口)

VIM―Visual Interface Improved(VI的增强版)

 

vi提供三种模式

编辑模式:键盘操作通常被解析为编辑命令;

输入模式:编辑文本,输入文字的模式;

末行模式:vim的内置的命令行接口,执行vim内置命令

 

模式间切换:

输入模式 --> 编辑模式:

ESC

编辑模式 --> 末行模式:

:

末行模式 --> 编辑模式:

ESC

 

打开文件:

vim  /PATH/FileName

vim +Num /PATH/FileName:打开后处于指定行的行首

vim + /PATH/FileName:打开文件后让光标直接处于文件末行的行首

 

 

从编辑模式进入输入模式:

i  #光标在当前位置进入文本编辑模式

I  #光标跳至行首并进入文本编辑模式

a  #光标后退一格并进入文本编辑模式

A  #光标退到行尾并进入文本编辑模式

o #在光标所在行的上一行下新起一行并进入文本编辑模式

O #在光标所在行的上一行新起一行并进入文本编辑模式

s  #删除光标所在字符并进入文本编辑模式

S/cc #删除光标所在行并进入文本编辑模式(对空白行不起作用)

 

 

光标控制:

0      #光标跳至行头

^      #光标跳至第一个非空白字符

$      #光标跳至行末

w      #光标跳至下一个词首

b      #光标跳至当前或上一个词首

e      #光标跳至当前或下一个词尾

W      #光标跳至以空格分割的下一个词首

B      #光标跳至以空格分割的上一个词首

E      #光标跳至以空格分割的下一个词尾

k      #光标跳至上行

j      #光标跳至下行

h      #光标向左移动

l      #光标向右移动

H      #光标移动到当页顶部行首

L      #光标跳至当页底部行首

Num+h     #光标向左移动N个字符

Num+l     #光标向右移动N个字符

Num+k     #光标向上移动N行

Num+j     #光标向下移动N行

gg        #光标跳至文件的首行

Num+gg    #光标跳至指定行

G        #光标跳至文件的末行(前面加数字则跳至指定行,例如 10G 跳至第10行)

Ctrl+g    #显示当前行

句子间移动:(     )

段落间移动:{     }

 

 

翻屏:

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向文件尾部翻半屏

Ctrl+u: 向文件首部翻半屏

Enter:  向下翻一行

 

 

删除or剪切:

x         #删除/剪切一个字符

Num+x     #删除/剪切下n个字符

dd        #删除/剪切当前行

Num+dd    #删除/剪切后n行

db       #删除/剪切光标至上一个词首

dw       #删除/剪切光标至下一个词首(单个词)

Num+dw    #删除/剪切后n个词

dW       #删除/剪切至以空格分割的词尾

d0        #删除/剪切光标至行首

d$/D      #删除/剪切光标至行尾

d+h      #往光标左侧删除/剪切一个字符

d+l      #往光标右侧删除/剪切一个字符

 

 

复制or粘贴:

yy           #选定光标所在行复制

yw           #选定光标所在词复制

Num+yw #选定光标所在位置之后n个单词复制

y0     #选定光标所在位置到行首的部分复制

y$     #选定光标所在位置到行尾的部分复制

P      #粘贴在光标所在位置的左边,如复制整行则粘贴在光标的上方

p      #粘贴在光标所在位置的右边,如复制整行则粘贴在光标的下方

 

 

选择与替换:

v    #进入选择模式

V    #选择光标所在行

r    #替换一个字符

R    #连续替换字符

c    #删除后并进入编辑模式

 

 

取消操作:

u       #撤销上一个编辑操作

Ctrl+r  #重新返回操作

.       #重复此前的命令

 

 

窗口属性的定义:

set nu       #列出行号

set nonu     #去掉行号

set ai       #设定自动缩进

set noai     #关闭自动缩进

set ic       #查找时不区分大小写

set noic    #关闭查找时不区分大小写

 

显示对应的括号

set sm (show match)

set nosm

 

语法高亮:

syntax on

syntax off

 

搜索高亮:

set hlsearch

set nohlsearch

 

 

在末行模式命令:

w      #保存当前文件

q      #如果未对文件做改动则退出

q!     #放弃存储并退出

wq/x/ZZ(大写)  #保存当前文件并退出

e filename   #打开另一个文件并开始编辑

r filename   #读取另一个文件,把文件插入到光标处

r ! <命令>  #把命令的输出结果插入到当前文本中

e!    #撤销所有改动,重新编辑

sh    #打开一个shell

so   #读取<文件>,再执行<文件>里的命令

!     #执行某个命令

 

 

范围定界:

start,end:   起始行

10,20  从第10行到第20行

10,+9  从第10行向后走9行

.              #表示当前行

.,+Num   #表示当前行往后N行

.,$         #表示当前行至最后一行(文件尾部)

.,$-2       #表示当前行至倒数第3行

/PATTERN1/,/PATTERN12/: 匹配模式起始处为光标所在行,

%             #表示全文

 

 

查找替换:

/KEYWORD #搜索(n #搜索下一个;N  #搜索上一个)

 

/和@用意一样:

地址定界s/查找模式/替换为的内容/gi

地址定界s@查找模式@替换为的内容@gi

g: global  全局替换

i: ignore-case  忽略大小写

%s/xxx #全文搜索

 

 

同时打开多个文件:

vim -o FILE1 FILE2 #横屏编辑两个文件,按Ctrl+w 松开后按上或下跳转

vim -O FILE1 FILE2 #竖屏编辑两个文件,按Ctrl+w 松开后按上或下跳转

vim FILE1..FILE2...FILE3

多文件跳转:

:next

:prev

:first

:last

 

 

分割当前窗口:

ctrl+w->s 横屏

ctrl+w->v 竖屏

 

 

vim的配置文件:

全局:/etc/vimrc

个人:~/.vimrc  #如果没有此文件,需手动创建

 

 

实例1

搜索前20行,把非#开头的行加上#号

1,30s/^[^#]/#&/g

wKiom1XkdIaycQhPAAG4a8AXojI861.jpg


//替换后结果可看到1-20行前非#开头的行已经加上#:

wKioL1XkdqXxTg39AAHU_XzE0uI643.jpg



实例2

//搜索全文中/bin替换为/sbin

wKiom1XkdIbytGcGAAG5hNFv4-0858.jpg

 

//替换后的结果:

wKioL1XkdqaiHT1MAAHHoJZuzPQ978.jpg


你可能感兴趣的:(vi,vim,文本编辑器)