码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统上的vim编辑器

时间:2016-08-09 00:39:17      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:vim编辑器   linux   三剑客   

vim编辑器作为Linux系统上的文本处理工具三剑客之一,被广大运维小伙伴所喜爱,马哥称之为“尤物”的编辑器。下面简单介绍一下vim编辑器。


    文本编辑器:

文本:纯文本,ASCII text;


    文本编辑种类:

行编辑器:所谓行编辑器是指一行一行来处理的工具,如sed

全屏编辑器:编辑空间占据整个屏幕,如nano,vi


vi:Visual Interface

vim:Vi IMproved,是vi的增强版,vim是模块化的编辑


    其他编辑器:

gedit:一个简单的图片编辑器

gvim:一个vim编辑器的图形版本


vim:

模式化的编辑器


基本模式:

命令模式(默认):移动光标,剪切/粘贴文本

插入(编辑)模式;修改文本

扩展命令模式:保存,退出,vim内置的命令行接口,执行vim的内置命令


Esc键:退出当前模式,Esc键总是返回到命令模式


打开文件:

#vim [options] [file...]

+#: 打开文件后,直接让光标处于第#行的行首;

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

vim + file直接打开file,光标在最后一行

vim -b file 二进制方式打开文件

vim -d file1 file2...比较多个文件

vim -m file 只读打开文件

ex file 或 vim -e 直接进入ex模式

如果该文件存在,文件被打开并显示内容

如果文件不存在,当编辑后第一次存盘时创建它


模式转换:

编辑模式:默认模式;

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

i:insert,在光标所在处输入;

a:append,在光标所在处后方输入;

o:在光标所在处的下方开一个新行;

I:在光标所在处的行首输入;

A:在光标所在行的行尾输入;

O:在光标所在处的上方打开一个新行;


输入模式-->编辑模式

ESC


编辑模式-->末行模式


末行模式-->编辑模式

ESC


锁定和解锁:Ctrl+s,Ctrl+q


        关闭文件:

命令模式:

ZZ:保存并退出;

ZQ:不保存退出;


扩展模式:

:q 退出

:q! 强制退出,不保存此前的编辑操作

:wq 保存并退出

        :x 保存并退出

:w /PATH/TO/SOMEFILE

r filename:读文件内容到当前文件中

w filename:将当前文件内容写入另一个文件

!command 执行命令

r!command:读取命令执行结果到当前文件中


光标跳转:


字符间跳转

h:左

j:下

k:上

l:右

#COMMAND:跳转由#指定的个数的字符;


单词间跳转:

w:下一个单词的词首

e:当前或后一个单词的词尾

b:当前或前一个单词的词首

#COMMAND:跳转由#指定的个数的字符;


当前页跳转:

H:页首 M:页中间行 L:页底


行首行尾跳转

^:跳转至行首的第一个非空白字符

0:跳转至行首

$:跳转至行尾


行间跳转

#G:跳转至由#指定的行;

        1G,gg:第一行;

G:最后一行


句间跳转

):下一句

(:上一句

段间跳转

}:下一段

{:上一段

翻屏:

ctrl+f:向文件尾翻一屏

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

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

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

enter:按行向后翻


vim的编辑命令:


字符编辑

x:删除光标所在处的字符;

#x:删除光标所在从起始的#个字符;

xp:交换光标所在处的字符与其后面的字符的位置

~:转换大小写

gU:变大写

gu:变小写


替换命令(replace):

r:替换光标所在处的字符

rCHAR

R:切换成REPLACE模式


删除命令

d:删除命令,可结合光标跳转字符,实现范围删除;

d$:删除光标处至行尾的内容;

d^:删除光标处至行首的内容;

d0:删除到行首

dw:删除光标处至下一个单词词首的内容;

de:

db:

#COMMAND;


dd:删除光标所在处的行;

#dd:删除光标所处的行起始的共#行;

D:从当前光标位置一直删除到行尾,留空行,等同于d$


粘贴命令(p,put,paste):

P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方;

p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;


100iwang[ESC] 粘贴 “wang” 100次



复制命令(yank,y):

y:复制,工作行为相似于d命令;

y$:从光标处拷贝纸本行最后一个字符

y0:

y^:

ye:从当前位置拷贝到本单词的最后一个字符

yw:

yb:

#COMMAND

yy:复制行

#yy:复制多行

y:复制整行


改变命令(c,change)

c:修改后切换成插入模式

命令模式-->插入模式

c$:

c^:

c0:

cb:

ce:

cw:

#COMMAND

cc:删除当前行并输入新内容

#cc:

C:删除当前光标到行尾,并切换成插入模式


扩展模式

地址定界

:start_pos,end_pos

#:具体到第#行,2表示第2行

#,#:从左侧#表示行起始,到右侧#表示行结尾

#,+#:从左侧#表示的行起始,加上右侧#表示的行数

2,+3 表示2-5行

.:当前行

$:最后一行

.,$-1 当前行到倒数第二行

%:全文,相当于1,$


/pat1/,/pat2/

从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配的行结束

#,/pat/ 从第#行到被pat匹配到的字符

/pat/,$ 从被pat匹配到的字符到行尾

查找

/PATTERN:从当前光标所在处向文件尾部查找;

?PATTERN:从当前光标所在处向文件首部查找;

n:与命令相同方向翻页

N:与命令相反方向翻页


查找并替换

s:在扩展模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用正则表达式编写的模式

替换为的内容:不能使用模式,但可以使用\1,\2...等后向引用符号;还可以使用"&"引用前面查找时查找到的整个内容

修饰符:

i:忽略大小写;

g:全局替换;默认情况下,每一行只替换第一次出现

gc:全局替换,每次替换前询问


查找替换中的分隔符/可替换为其他字符,例如

s@/etc@/var@g

s#/boot#/#i


撤销更改

u:撤销最近的更改

#u撤销之前多次更改

U撤销光标落在这行后所有此行的更改

按Ctrl-r重做最后的“撤销”更改

.重复前一个操作

n.重复前一个操作n次


vim的寄存器

有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴板内容,可以不同会话间共享

用a,b,...z表示,用"寄存器表示,放在数字和命令之间

如:3"tyy 表示复制3行到t寄存器中

"tp 表示将t寄存器内容粘贴

未指定,将使用无命名寄存器

有10个数字寄存器,用0,1,...,表示。0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,一次类推。数字寄存器不能在不同会话间共享。


编辑二进制文件

以二进制方式打开文件

vim -b binaryfile

扩展命令模式下,利用xxd命令转换为可读的十六进制

:%!xxd

编辑二进制文件

扩展命令模式下,利用xxd命令转换回二进制

:%!xxd -r


可视化模式

允许选择的文本块

v面向字符

V面向行

ctrl -v 面向块

可视化键可用于与移动键结合使用:

突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等


多文件模式

vim file1 file2 file3...

:next下一个

:prev前一个

:first第一个

:last最后一个

:wall保存所有

:qall退出所有

:wqall保存所有并退出


使用多个“窗口”

多文件分割

vim -o |-O file1 file2 ...

-o:水平分割

-O:垂直分割

在窗口间切换:Ctrl+w,arrow

单文件窗口分割:

Ctrl+w,s:split,水平分割

Ctrl+w,v:vertical,垂直分割

Ctrl+w,q:取消相邻窗口

Ctrl+w,o:取消全部窗口

:wqall 保存所有并退出


定制vim的工作特性

配置文件:永久有效

全局:/etc/vimrc

个人:~/.vimrc

扩展模式:当前vim进程有效

1)行号

显示:set number ,简写为set nu

取消显示:set nonumber,简写为set nonu

2)括号成对匹配

匹配:set showmatch ,简写为set sm

取消:set nosm

3)自动缩进

启用:set ai

禁用:set noai

4)高亮搜索

启用:set hlsearch

禁用:set nohlsearch

5)语法高亮

启用:syntax on

禁用:syntax off

6)忽略字符的大小写

启用:set ic

不忽略:set noic

7)文件格式

启用:fileformat=unix

不忽略:fileformat=dos

8)设置文本宽度

:set textwidth=65(vim only)

:set wrapmargin=15


本文出自 “11798474” 博客,请务必保留此出处http://11808474.blog.51cto.com/11798474/1835841

Linux系统上的vim编辑器

标签:vim编辑器   linux   三剑客   

原文地址:http://11808474.blog.51cto.com/11798474/1835841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!