您的位置:首页 > 其它

编辑器之神-VIM

2016-05-06 10:46 816 查看

在这天地间,流传这两大神器的故事:据说Emacs是神的编辑器,而Vim是编辑器之神。正所谓,工欲善其事,必先利其器。今天就和大家分享一下关于编辑器之神Vim的传说。

一、Vim的历史


1.下图是关于几款主流编辑器的学习曲线:(注:图片来自互联网)



2.VIM – Vi IMproved

3.上图中vi即是vim的前身

VI:Visual Interface

4.VIM和VI是文本编辑器

何为文本文件?

文本文件一般指只有字符原生编码构成的二进制计算机文件,与富文本相比,其不包含字样样式的控制元素,能够被最简单的文本编辑器直接读取

文本文件常见的格式?

ASCII、MIME、.txt、…

那么,何为文本编辑器?

文本编辑器是计算机软件中的一种。主要用于用来编写和查看文本文件。

文本编辑器的种类:

行编辑器:sed

全屏编辑器:nano、vi、vim


二、Vim编辑器的基本操作


1. 基本操作

VIM:模式化的编辑器

基本模式

编辑模式 (命令模式)

输入模式 (插入模式)

末行模式 (vim内置的命令行接口)

Note:打开的时候默认的模式是编辑模式

打开文件

# vim [OPTION]... FILE...


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

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

模式转换

模式转换:

:q
:退出

:!
:强制退出,丢弃做出的修改;

:wq
:保存退出;

:x
:保存退出;

:w /PATH/TO/SOMEWHERE
:当前编辑的文本保存到别的文件;

ZZ
:保存退出;

ESC




ESC


i
:insert,在光标所在处前面插入;

a
:append,在光标所在处的后面插入;

o
:open,在当前光标所在行的下一行打开新行,并转换为输入模式;

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

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

O
:在光标所在行的上一行打开一个新行,并转换为输入模式;

编辑模式 – – > 输入模式

输入模式 – – > 编辑模式

编辑模式 – – > 末行模式

末行模式 – – > 编辑模式

关闭文件

图示说明如下: (转载请注明出处)



2. 光标跳转:

字符间跳转:

h


l


k


j


h,j,k,l


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

单词间跳转:

w
:跳转至下一个单词或后一个单词的词首

e
:跳转至当前或下一个单词的词尾

b
:跳转至当前或下一个单词的词首

#COMMAND
:由#指定一次跳转的单词数;

行首行尾跳转:

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

0
:跳转至绝对的行首

$
:跳转至绝对行尾

行间移动:

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

G
:跳转至最后一行;

1G
gg
:跳转至第一行;

句间移动:

)
:跳转至下一个句子;

(
:跳转至上一个句子;

段落间移动:

}
:跳转至下一段

{
:跳转至上一段

3. vim的编辑命令:

字符编辑:

x
:删除光标处的单个字符;

#x
:删除光标处起始的#个字符;

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

替换命令:

r
,replace

r
:替换光标所在处的字符;(单字符替换)

删除命令:

#dd
:向下删除#行;

d$
:删除至绝对行尾

d^
:删除至行首的第一个非空白字符

d0
:删除至绝对行首

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

dd
:删除光标所在行;

粘贴命令:

p
,put,paste)

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

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

复制命令:

y$
:复制至绝对行尾

y0
:复制至绝对行首

y^
:复制至行首的第一个非空白字符

yy
:复制整行

#yy
:复制多行;

y
,yank

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

改变命令:

编辑模式 – -> 输入模式

c
,change

c
:修改

cc
:删除并输入新内容

#cc
:一次删除#行


三、其它编辑操作


1.可视化模式

v
:按字符选定

V
:按行选定

Note:经常结合编辑命令;

2. 撤销此前的编辑:

u
(undo):撤销此前的操作;

#u
:撤销指定次数的操作;

撤销此前的撤销:

Ctrl+r

重复前一个编辑操作:

.



四、翻屏操作



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

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

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

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

vim自带的练习教程

vimtutor



五、vim的末行模式



内建的命令行接口

特性

(1). 地址定界

后跟一个编辑命令:

d
:删除指定范围的内容

y
:复制指定范围的内容

w /PATH/TO/SOMEWHERE
:将范围内的行另存至指定文件中;

r /PATH/FROM/SOMEFILE
:在指定位置插入指定文件中的所有内容;

:start_pos,end_pos


#:
具体的第#行,例如:2表示第2行;

#,#
:从左侧#表示起始,到右侧#表示结束;

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

.
当前行;

$
:最后一行;

%
:全文;相当于(1,$)

/pat1/,/pat2/
:表示从第一次被pat1匹配到的行开始,一直到pat2匹配到的行结束

使用方式

(2). 查找

n
:与命令同方向;

N
:与命令反方向;

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

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

(3). 查找并替换

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


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

i
:忽略大小写

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

要查找的内容:可使用模式;

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

修饰符:

s@@@


s###


s
:在末行模式下完成查找替换操作

六、vim的文件模式

1. 多文件模式

vim FILE1 FILE2 FILE3 …

:next
切换至下一个文本

:prev
切换至前一个文本

:first
切换至前一个文本

:last
切换至最后一个文本

:wall
保存所有

:qall
退出所有

2. 窗口分隔模式

vim -o|-O FILE1 FILE2 …





-o
:水平分割

-O
:垂直分割

在窗口间切换
Ctrl+w,Arrow


3. 单文件窗口分割:

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

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

4. 定制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


5. 书籍推荐:《Vim-handbook-cn-72》
6. 获取帮助

在末行模式下:
help SUBJECT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: