vim入坑

了解了vim的模式与基本用法。


vim分为三种模式:插入模式,普通模式,命令模式。
从终端进入vim的时候默认的普通模式,又称编辑模式,该模式下无法输入文本,需要按“i”键进入插入模式才能进行输入操作。但是插入模式又只能进行输入,对文本的编辑操作需要在普通模式下进行。在普通模式下,输入冒号进入命令模式,以执行保存,退出等命令。

接下来根据vimtutor熟悉一下基本的语法操作。

  • 光标移动

首先是使用h,j,k,l四个键来进行上下左右的移动,h,l负责左右,j,k负责上下。这四个键在插入模式下是无效的(不然就跟输入那四个字符冲突了),这就是说,一旦要进行光标移动还得切换到普通模式才行。当然键盘的上下左右键是bug的存在。即使在插入模式下还是可以用上下左右键来进行移动。
w:向前移动一个单词(光标在开头)
e:向前移动一个单词(光标在末尾)
$:向前移动到该行末尾。
b:向后移动一个单词,效果与w相反
0:向后移动到该行开头。
Ctrl+G:查看光标所在行的信息
G:使光标移动到文件末尾
gg:使光标移动到文件开头
数字+G:使光标移动到指定行。
Ctrl+o:回到上一次位置
Ctrl+i:回到下一次位置。
%:功能是配对括号,将光标移动到括号字符(可以是大括号,中括号),然后按%,光标会移动到括号的另一半的位置。这在调试程序的时候用处很大。

  • 进入插入模式

    A :则光标移动到该行末尾
    a:则光标移动到下一位
    i:光标不移动
    I:光标移动到该行开头
    o:在当前行后面插入一行空行
    O:在当前行前面插入一行空行。

  • 删除操作

x:删除光标下的一个字符
dw:从光标处删除到一个单词的末尾包括单词后面的空格
d$:是从光标处删除到该行末尾,D的效果和它是相同的
dd:虽然删除一整行,同时将删除的行存入缓存中,效果类似于剪切
de:从光标处删除到单词的末尾但不包括空格。

许多命令都是由一个操作符和一个动作符(motion)组成。例如d是删除操作,后面w是从当前光标移动到下一个单词,因此dw是删除到单词末尾.

可以使用计数指定动作,如2w,3e,分别表示光标向前移动两个单词,三个单词的末尾。加上操作符的话,可以使用d2w,d3e,也可以用2dw,3de,两种写法效果相同。

  • 撤销操作

u:用语撤销上一次的命令
U:用语撤销对该行的所有命令
Ctrl+R:是撤销撤销命令。不过,貌似 Ctrl+R只能撤销u命令,而不能撤销U命令。

  • 粘贴操作

使用dd删除一行后可以使用p将该行粘贴,注意粘贴位置是光标所在行的下一行(不管光标在一行的哪个位置)。

  • 复制操作

    y:有两种用法,一是先选取制定文本(用v),然后按y进行复制;另一种是把y当成操作符,后面连接动作,如yw表示从光标开始复制一个单词。

  • 替换操作

r+一个字符:可以替换掉光标所在位置的字符。
R:可以连续替换,不用每次都按r。
c+动作:cw更改一个单词,c$更改一行(从光标开始)
在一行内替换头一个字符串 old 为新的字符串 new,输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc

  • 查找操作

/ 在普通模式下按/,屏幕下方会出现/,在/后面输入字符串并回车,可以查找出现该字符串的位置,按n可以移动到下一次字符串出现的位置,N则是移动到上一次该字符串出现的位置。
?:效果和/相反,是逆向查找。
:set ic 不区分大小写(永久)
:set noic区分大小写(永久)
:nohlsearch 移除匹配项的高亮显示
/ 字符串\ic不区分大小写(只对本次操作有效)

  • 括号配对

%:功能是配对括号,将光标移动到括号字符(可以是大括号,中括号),然后按%,光标会移动到括号的另一半的位置。这在调试程序的时候用处很大。

  • 执行外部命令

:!可以执行外部的shell命令。

  • 保存文件

    :w

  • 读取文件

    :r

  • 选取文本

按v键后移动光标可以选取文本。再用:w FILENAME就可以保存选取的文本。

  • 帮助

    :help或者F1

  • 创建启动脚本

创建一个 vimrc 启动脚本文件用来保存 偏好的设置

  • 命令补全

Ctrl+D查看所有相关结果
Tab键 遍历结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值