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匹配到的行的行首;

模式转换

模式转换:

编辑模式 - - > 输入模式

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

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

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

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

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

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

输入模式 - - > 编辑模式

ESC

编辑模式 - - > 末行模式

末行模式 - - > 编辑模式

ESC

关闭文件

:q:退出

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

:wq:保存退出;

:x:保存退出;

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

ZZ:保存退出;

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


2. 光标跳转:

字符间跳转:

h,j,k,l

h:

l:

k:

j:

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

单词间跳转:

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

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

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

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

行首行尾跳转:

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

0:跳转至绝对的行首

$:跳转至绝对行尾

行间移动:

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

G:跳转至最后一行;

1G,gg:跳转至第一行;

句间移动:

):跳转至下一个句子;

(:跳转至上一个句子;

段落间移动:

}:跳转至下一段

{:跳转至上一段

3. vim的编辑命令:

字符编辑:

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

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

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

替换命令:

r,replace

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

删除命令:

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

d$:删除至绝对行尾

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

d0:删除至绝对行首

dd:删除光标所在行;

#dd:向下删除#行;

粘贴命令:

(p,put,paste)

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

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

复制命令:

y,yank

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

y$:复制至绝对行尾

y0:复制至绝对行首

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

yy:复制整行

#yy:复制多行;

改变命令:

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). 地址定界

:start_pos,end_pos

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

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

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

.当前行;

$:最后一行;

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

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

使用方式

后跟一个编辑命令:

d:删除指定范围的内容

y:复制指定范围的内容

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

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

(2). 查找

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

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

n:与命令同方向;

N:与命令反方向;

(3). 查找并替换

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

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

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

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

修饰符:

i:忽略大小写

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • 通过<vimtutor>进入 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。h (左移) ...
    饥人谷_oathy阅读 415评论 0 0
  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,132评论 0 3
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,735评论 3 48
  • vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从...
    壹首簡單的歌阅读 881评论 0 7
  • 跨年行大运 群里共30人,小礼物15份。 礼物为:苹果,山楂,柿饼,板栗,椪柑,玫瑰酱。 详情可以去店里看:老马食...
    过河之马阅读 294评论 0 0