博客列表 >Vim 的使用

Vim 的使用

Whitney的博客
Whitney的博客原创
2020年11月19日 15:07:361025浏览

Vim

Vim具有6种基本模式和5中派生模式。这里只简单介绍下6种基本模式

1.普通模式(Normal mode)

在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。

Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。

例如普通模式命令dd删除当前行,但是第一个‘d’的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的‘j’键就可以删除当前行和下一行。

另外可以还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。

在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

2.插入模式(Insert mode)

在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。

在插入模式中,可以按ESC键回到普通模式。

3.可视模式(Visual mode)

这个模式于普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的‘文本对象’也能和移动命令一样用在这个模式中。

4.选择模式(Select mode)

这个模式和无模式编辑器的行为比较相似(Window标准文本空间的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

5.命令行模式

在命令行模式中可以输入会被解释成并执行的文本。例如执行名令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

6.Ex模式(Ex mode)

这和命令行模式比较类似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。


实际操作

1.进入插入模式

i 在当前光标处进行

I在行首插入

A在行末插入

a在光标后插入编辑

o在当前行后插入一个新行

O在当前行前插入一个新行

cw替换从光标所在位置后到一个单词结尾的字符

(PS:注意每次要先回到普通模式才能切换成以不同的方式进入插入模式)

2.退出vim

2.1 命令行模式下退出vim

从普通模式输入:进入命令行模式,输入w回车,保存并退回编辑。

输入:w<filename>可以将文档另存为其他文件名或存到其他路径下。

以下为其他几种退出方式

(1):q! 强制退出,不保存

(2):q  退出

(3):wq! 强制保存并退出

(4):w<文件路径> 另存为

(5):saveas 文件路径 另存为

(6):x 保存并退出

(7):wq 保存并退出

普通模式下按下Shift+zz即可保存退出Vim


2.2 普通模式下删除vim文本信息

进入普通模式,使用下列命令可以进行该文本快速删除:

(1)x  删除游标所在的字符

(2)X 删除有效所在前一个字符

(3)Delete 同x

(4)dd 删除整行

(5)dw 删除一个单词(不适用于中文)

(6)d$或D 删除至行尾

(7)d^ 删除至行首

(8)dG 删除到文档结尾处

(9)d1G 删至文档首部


2.3 游标的快速跳转

普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现行间跳转和行内调换;

2.3.1 行间跳转

nG(nShift+g) 游标移动到第n行(如果默认没有显示行号,请先进入命令模式,输入 :set nu 以显示行号)

gg 游标移动到第一行

g(Shift+g)到最后一行



2.3.2 行内跳转

普通模式下使用下列命令在行内按照单词为单位进行跳转:

(1)w 到下一个单词的开头

(2)e 到当前单词的结尾

(3)b 到前一个单词的开头

(4)ge 到前一个单词的结尾

(5)0或^ 到行头

(6)$ 到行尾

(7)f<字母> 向后搜索<字母>并跳转至第一个匹配的位置

(8)F<字母> 向前搜索<字母>并跳转至第一个匹配的位置

(9)t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)

(10) T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)



2.4 复制及粘贴文本

(1)普通模式中使用y复制

(2)yy  复制游标所在的整行(3yy表示复制3行)

(3)y^ 复制至行首,或y0。不含光标所在处字符。

(4)y$ 复制至行尾。含光标所在处字符。

(5)yw 复制一个单词

(6)y2w 复制两个单词

(7)yG 复制至文本末

(8)y1G复制至文本开头

(9)p粘贴

(10)p(小写)代表粘贴至光标后(下)

(11)P(大写)代表粘贴至光标前(上)


2.5 替换和撤销(Undo)命令

(1)r+<待替换字母> 将游标所在字母替换为指定字母

(2)R 连续替换,知道按下ESC

(3)cc 替换整行,即删除游标所在行,并进入插入模式

(4)cw 替换一个单词,即删除一个单词,并进入插入模式

(5)C(大写)替换游标以后至行末

(6)~反转游标所在字母大小写

(7)u{n} 撤销一次或n次操作

(8)U(大写) 撤销当前行的所有修改

(9)Ctrl+r redo,即撤销undo的操作


2.6 快速缩进

2.6.1 使用命令进行快速调整缩进操作

(1)15G 跳转到15行

(2)>>整行将向右缩进

(3)<< 整行向左回退

2.6.2 shiftiwidth命令

(1):set shiftwidth?  获取目前的设定值

(2):set shiftwidth=10 设置缩进为10个字符

2.6.3 调整文本位置

(1):ce 使本行内容居中

(2):ri 使本行文本靠右

(3):le 使本行内容靠左


2.7 快速查找

普通模式下输入/然后键入需要查找的字符串,按回车后就会进行查找。?与/功能相同,只不过?是向上而/是乡下查找。

进入查找之后,输入n和N可以继续查找。n是查找下一个内容,N查找上一个内容。


2.8 可视模式

在普通模式下输入v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下v后就会取消选取。

在普通模式下输入shift+v(小写),进入行选择模式,按下v之后就会把整行选取,上下移动光标选更多的行,同样,再按一次shift+v就可以取消选取。

在可视模式下输入d删除选取区域内容

在可视模式下输入y复制选取区域内容




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议