Vim 基本命令入门

摘要:
Vim基本概念Vim是从vi发展而来的一个功能强大、高度可定制的文本编辑器,是一款开源的软件。Vim的基本功能模式如下图:由图可知,Vim基本包括三种工作模式:命令模式、插入模式和编辑模式。在终端中通过vi命令即可使用Vim打开对应文件,从而进入命令模式,此时输入的任何文本信息都会被当做命令,回车即可执行输入的这些命令。总结以上只是一些基本的Vim命令,学会使用这些命令还是能够大大地增强学习乐趣。

_ _20180628165722
最近在学习 Linux,前面的基础知识学习了一下,进入了 Vim 的学习环节。感觉这个编辑器还是可以的,有特色,鼠标都不用,蛮炫酷。对于基本
的使用来讲还是很方便的。下面是一些我的学习笔记,大致就是一些常用的命令吧。这个博客就是使用 Vim 写的一个 Markdown 文档,就当是给自己练练手,加深学习的印象了。

Vim 基本概念

Vim 是从 vi 发展而来的一个功能强大、高度可定制的文本编辑器,是一款开源的软件。Vim 的基本功能模式如下图:

Vim 工作模式图

由图可知,Vim 基本包括三种工作模式:命令模式、插入模式和编辑模式。在终端中通过vi命令即可使用 Vim 打开对应文件,从而进入命令模式,此时输入的任何文本信息都会被当做命令,回车即可执行输入的这些命令。要想编辑文本信息,需要进入编辑模式,此时输入命令aoi都可以进入插入模式。其中,a 代表在当前光标位置的后方插入,o 代表在当前光标的下面一行插入,i 代表在当前光标位置的前面插入。此外,AOI也可以进入插入模式,但是它们意义与其小写模式正好相反。A 代表在行尾插入,O 代表在当前光标位置的上面一行插入,I 代表在行首开始插入。进入插入模式之后,按“ESC”键即可退出插入模式,回到命令模式。

常用命令

插入命令

命令含义
a在光标当前所在位置的后面开始插入
A在光标所在行行尾开始插入
i在光标当前所在位置的前面开始插入
I在光标所在行行首开始插入
o在光标所在行的下一行开始插入
O在光标所在行的上一行开始插入

定位命令

命令含义
:set nu设置行号
:set nonu取消行号
gg跳转到第一行
G跳转到最后一行
nG跳转到第n行
:n跳转到第n行
$跳转到行尾
0跳转到行首

其中,值得注意的是,命令:n与命令nG具有同样的功能,从字面上看,:n更容易记住,所以我一般使用:n命令。
具体使用方法:

:100

在命令模式下,输入上方的命令,回车就回跳转到第一百行。

这些常用的跳转命令最好记住。

删除命令

命令含义
x将光标所在处的字符进行剪切(删除)
nx将光标之后的n的字符进行剪切(删除)
dd将光标所在行进行剪切(删除)
ndd将光标所在行之后的n行进行剪切(删除)
dG将光标所在行到文章末尾进行剪切(删除)
D将光标所在处到行尾进行剪切(删除)
:n1,n2d将n1到n2行内容进行剪切(删除)

常用的是xnxddndd

复制和粘贴

命令含义
yy复制当前行
nyy复制当前行以下的n行
dd剪切当前行
ndd剪切当前行之后的n行
p粘贴在当前光标所在行下
P粘贴在当前光标所在行上

替换和撤销命令

命令含义
r取代光标所在处的字符
R进入替换模式,类似于 Windows 中的 insert
u撤销上一次操作

注意点:

  • r 只替换当前光标所在处的字符,命令模式下按r然后按新的字符。
  • R 进入替换模式,按ESC才能退出。

搜索和搜索替换命令

命令含义
/string搜索指定字符串,如果要忽略大小写,先输入命令:set ic
n搜索指定字符串的下一个位置
:%s/old/new/g全文替换指定字符串
:n1,n2s/old/new/g在指定范围内替换指定字符串

注意点:

  • %s代表全文搜索。
  • n1,n2s代表在n1行到n2行范围内搜索。
  • g代表不会确认是否替换,如果最后是c的话,就回挨个询问是否替换。

保存和退出命令

命令含义
:w保存修改
:w new_filename另存为指定文件
:wq保存修改并退出
ZZ保存修改并退出的快捷键
:q!不保存修改强制退出
:wq!保存修改并强制退出

其它使用技巧

命令含义
:r 文件名将指定文件的内容导入到光标所在位置
:r !命令将命令运行结果导入到光标所在位置
:map 快捷键 触发命令自定义快捷键
:ab old new在编辑时自动替换一些字符

注意点:

  • :r !命令是一个很好用的命令,比如:r !date可以把当前日期时间快速导入到当前光标位置。
  • :map 快捷键 触发命令用于自定义快捷键,在命令模式下,输入“:map ”然后输入“Ctrl+V+P”,会出现“^P”,代表快捷键为“Ctrl+P”。最后一部分触发命令是指按下快捷键后,触发的命令,比如“I#”,这代表快捷方式触发的命令为“I#”,然后按下“ESC”键。含义即为在行首添加“#”井号,快速注释。
  • 连续行注释:n1,n2s/^/#/g,代表将指定范围内的行首替换为“#”井号。其中,“^”代表行首。
  • :ab是编辑时快速替换命令,当你自定义替换字符串后,当你在编辑模式下输入要替换的字符串时,空格或者回车后,这个就字符串就回立即被你定义的新字符串替换掉,很方便。

小问题记录

  • 习惯了Ctrl+S保存修改,在 Vim 中也喜欢按,结果按了之后就出问题了,无法输入了。解决方法就是按Ctrl+Q,退出锁屏模式。
  • 编辑模式下按Ctrl+Z不是撤销更改,撤销更改应该进入命令模式,按u。编辑模式下按Ctrl+Z是强制将进程加入后台运行,会生成一个“.swap”交换文件。要正常编辑,可以手动删除交换文件,由于交互文件是隐藏文件,所以需要按ls -a查看。

总结

以上只是一些基本的 Vim 命令,学会使用这些命令还是能够大大地增强学习乐趣。另外要想学好 Vim,最好每个命令都自己试一试,亲身体验过后,还是觉得它非常方便的。

免责声明:文章转载自《Vim 基本命令入门》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第三章 霍夫变换(Hough Transform)TAB页制作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Dockerfile注意事项

准则 尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。 避免安装不必须的包。 每个容器应该只关注一个功能点。 最小化镜像的层数。 多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符前都增加一个空格。 对构建缓存要有清楚的认识。 指令注意事项 FROM Dockerfil...

CVS 用法总结(zz)

这里有份CVS中文手册 http://man.chinaunix.net/develop/cvsdoc_zh/index.html#Top cvs用法总结(1)--cvs命令格式,标志字符和环境 cvs用法总结(1)--cvs命令格式 读书笔记,中文名"版本控制之道-使用cvs",英文名"Pragmatic Version Control-Using CVS...

vs 中 vim vax 快捷键

高效率移动 在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于使用。但VIM的强大之处在于他的命令行模式!你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。 使用 h,j,k,l 使用VIM高效率编辑的第一步,就是放弃使用...

ArchLinux安装与配置小结

最近无意间发现一个基于ArchLinux的发行版——BlackArch,主题十分炫酷(中二)。当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多,随波逐流无法突显我们的逼格, 要论小众,ArchLinux算是个中翘楚。呵呵开个玩笑,其实ArchLinux的亮点在于“小”,不同于其他发行版的“最小化安装...

吉特仓库管理系统- 斑马打印机 ZPL语言的腐朽和神奇

上一篇文章说到了.NET中的打印机,在PrintDocument类也暴露一些本质上上的问题,前面也提到过了,虽然使用PrintDcoument打印很方便。对应条码打印机比如斑马等切刀指令,不依赖打印机驱动等等PrintDocuent显得无能为力。在开发吉特仓储管理系统(开源托管在github: https://github.com/hechenqingyu...

linux 静态库 ar命令用法

当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍命令ar,用来对库操作。 1.ar基本用法ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的...