vim使用

vim剪切一行

dd 剪切
p 粘贴

vim剪切多行

如把3-10行 剪切到15行后面
:3,10 m 15或 :3,10 move 15

用VIM编辑器打开一个文件

vim FILENAME打开一个文件(如果是一个不存在的文件,会自动创建这个文件),进入的是普通模式(Normal mode)

移动光标

普通模式下kjhl分别代表上下左右,当然4个箭头键依然有效
把光标移动到光标所在行开头的简单的命令 0
也可以用这种格式移动光标 [count] motion
motion表示光标移动的方式,可被替换为w e 使用 w 表示移动到单词开头 e表示移动到单词末尾表示移动到当前行末尾
方括号中的内容表示出现0次或1次

编辑文件

在光标的位置插入 i
在光标的后一个位置插入 a
普通模式在该行末尾追加 A

删除类命令

删除单个字符 x(来自expurgate)
删除当前光标处的字符并在此位置插入 s
删除光标所在行 dd 其实是把该行内容保存在了vim的register里

删除类命令的格式 d [number] motion
比如
删除光标所在位置及下一个单词之前的内容 dw
删除光标所在位置及后数两个单词之前的内容 d2w
删除光标所在位置到该单词的最后一个字母 de
删除从光标所在位置到行末的内容 d$
它可扩展为operator [count] motion

更改类(change)命令

更改类命令的格式 c [number] motion 与删除类命令类似,不同的是它删除内容后会进入插入模式
比如
删除光标所在位置到单词末尾的内容并进入插入模式 ce
删除从光标所在位置到行末的内容并进入插入模式 c$

删除当前行并在此位置插入 c<enter>
删除该行光标及光标后的内容并在光标处插入 C

替换类(replace)命令

把光标处单个字符改为x rx
进入替换模式可替换多个字符 Rxx...x
把光标所在行的第一个old替换为new :s/old/new
把光标所在行的全部old替换为new :s/old/new/g
把#行和#行之间的全部old替换为new :#,#s/old/new/g
替换整个文件中的old :%s/old/new/g
找出整个文件中的old并提示是否替换 :%s/old/new/gc

置入类(put)命令

把刚删除的一行放在在光标的下一行 p

打开类(open)命令

在光标下方打开新的一行o
在光标上方打开新的一行O

撤销类(undo)命令

可以按<ESC>键取消不需要的和不完整的命令,比如按i进入Insert模式,想退出,可以按<ESC>,就回到了普通模式;或者想输入30G输>到31时发现把0输成了1,可以按<ESC>重新输入
撤销上一步操作 u
撤销u操作(to undo the undo's) CRTL+R(按住<ctrl>键的同时按r)
撤销对光标所在行做的所有改动 U

退出VIM编辑器

关闭文件且不保存改动 :q! (所有的:开头的命令都要以<enter>键结束)
保存改动并关闭文件 :wq

把当前文件中的内容(一般是改动过的)保存到FILENAME文件(如果这个文件不存在会创建) :w FILENAME

提取(retrive)并合并命令

在光标下一开开始处置入FILENAME文件中的内容 :r FILENAME
将外部命令输出的内容置入光标下一行开始处 :r !... 比如:r !ls

v motion和其他操作的组合

把选中的内容保存到FILENAME中v motion :w FILENAME
按v进入Visual模式,移动光标选中一部分内容
输入:,左下角会出现:'<,'>,接着输入w FILENAME
删除选中的内容 v motion d
复制选中内容 v motion y(来自yank)
将选中内容黏贴在光标所在行的光标后面 v motion p(来自paste,和put的p是不同的操作,个人猜测,没有依据)
y 也可以被当做一个操作符(类似c, d) y [number] motion

定位及文件状态

查看文件状态及定位 CTRL+G
跳转到某行 #G,#表示行号,比如输入30G,会跳转到第30行
一个简单的跳转到文件底部的命令 G
一个简单的跳转到文件顶部的命令 gg

查找类命令

正向查找 /phrase(此时/会出现在左下角,类似:)
反向查找 ?phrase
同方向查找下一个 n
反方向查找下一个 N
跳转回较旧的位置 CTRL+O
跳转到较新的位置 CTRL+I
如果没有重新设置wrapscan,查找到文件末尾时会从文件开始处继续查找

:set xxx 设置搜索选项,xxx可以是
[no]ic/ignorecase [关闭]忽略大小写
[no]is/incsearch [关闭]匹配部分字符
[no]hls/hlsearch [关闭]高亮显示匹配结果
例如
查找时忽略大小写 :set ic
禁用忽略大小写 :set noic
仅在一次查找时忽略大小写 /phrase\c

查找配对括号

把光标放在一个(或{或[上,按%,关标会跳转到与之配对的另一个括号上

在VIM内执行外部命令

:!...
其中:把光标置于左下角并允许输入command-line命令
!表示允许执行任何外部shell命令
比如
:!ls 显示文件列表
:!rm FILENAME 删除文件
执行完外部命令后,按<enter>退出。
其实按某些小写键或数字都可退出,只不过按其他键会在右下角输入;大部分大写键也可退出,但某些有特殊含义的比如D会同时对文本执行删除操作,U会撤销上一次的操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容