编辑器之神Vim的使用

薄洪涛7年前Linux1371

在这个蔚蓝色的星球上,流传着两大神器的传说: 据说Emacs是神的编辑器,而Vim是编辑器之神。今天我们来学习下编辑器之神Vim的使用;

想当年我开始学习Vim的时候,最抓狂的事情莫过于怎么退出vim;以致最后强制关机...

1. 什么是Vim

Vim编辑器与linux的关系就如同在windows下有notepad(记事本)。在linux下vim的功能十分强大。

 

2. Vim的三种模式

命令模式:打开文件之后的模式就是命令模式

末行模式:命令模式下,输入英文冒号,进入末行模式,按esc回到命令模式

编辑模式:命令模式下,输入字母i,进入编辑模式,光标可以移动更改文件内容,按esc回到命令模式

 

3. Vim的常用命令

打开文件                      vim 文件名

打开文件                      vim +文件行数 文件名,打开并移动光标到文件的指定行数

打开文件高亮某字符     vim +/字符 文件名

注:打开文件后编辑器中输入英文冒号,进入末行模式,下面大部分操作在末行模式下进行

关闭文件                  输入:q,回车退出,不保存文件

强制关闭                  输入:q!,不保存

关闭并强制保存        输入:wq,回车退出,强制保存写入,并更新文件修改时间

关闭并强制保存        输入:x,当有文件被修改时保存,没修改时退出

另存为                     输入:w 文件名

显示行号                  输入:set nu,显示行号(临时)

取消高亮                  输入:noh

查找          输入/需要查找的字符,并高亮显示找到的字符,按下n向后切换,N向前切换

替换          输入:s/需要替换的字符/替换成的字符,只替换当前光标所在行的第一处

替换          输入:s/需要替换的字符/替换成的字符/g,替换光标所在行所有位置

全局替换    输入:%s/需要替换的字符/替换成的字符/g,替换文件所有可以换的地方

 

4. Vim的快捷键

光标移动

①将光标快速移动到文档的末行的开始,可以按下键盘G键(大写)。

②将光标快速移动到文档的首行的开始,可以按下键盘gg键(按2次小写的g键)。

③将光标快速移动到指定的行数开始,可以按下【数字键G】,例如定位到5行的开始,则按下5G。

④将光标以当前行为准,快速的向上或者向下移动指定的行数,可以按下【数字↑/↓】。

删除

①删除光标所在的行,可以按下键盘上的dd键(小写的d按2次),并且下一行会上移

②删除多行,可以以光标所在的行向下删除指定的行,则可以按下【数字dd】,并且下面的行也会上移。

③删除光标所在的行,但是删除完成之后当前行留空,可以按下D键(D字母大写)。

补充:在vim的命令模式中,删除命令其实本质是剪切操作,在粘贴的时候会被粘贴出来。

复制 & 粘贴

①复制光标所在的行,可以按下yy。

②复制光标所在行之后的指定行数(包括当前行),可以按下【数字yy】。

在vim中粘贴,可以按下键盘上的p键,将会以当前为准,在当前行下一行,粘贴出剪切板上的内容。

撤销

在vim中,按下键盘上的 u键,可以撤销上一步操作(类似于 ctrl + z)。

在vim中,按下ctrl + r,可以恢复你刚才撤销的操作(类似于ctrl + y)。

 

上面就是Vim的常用操作了,其他的操作还请大家自行探索


标签: vim

相关文章

Cannot establish FTP connection to an SFTP server.

Cannot establish FTP connection to an SFTP server.

今天想上传个JDK,惊奇的发现,FileZilla连接不上,出现如下错误;很明显,我用FTP协议与一台使用了SFTP的服务器建立连接肯定是不行的,所以要改变协议;解决方法如下:打开File-Site...

服务器:swap告警,系统异常报错

服务器:swap告警,系统异常报错

登陆自己的小服务器,用composer下载个东西,一直报killed[root@host voyager]# composer require tcg/voya...

secure造成的循环登录

secure造成的循环登录

在安装nextcloud和ZenTao时,出现循环登录现象,就是输入用户名和密码之后会再次跳转到登录页,开始怀疑是session权限问题,将session的保存路径权限设置为777后,问题依旧,而且,...

centos8 新增服务

我在centos8上部署了一个java服务,使用java -jar xx.jar来启动服务,但是对于停掉服务,就得使用kill命令,所以想着把它做成个服务原始命令如下:/www/server/java...

xshell做端口映射链接数据库

xshell做端口映射链接数据库

有些时候,公司的一些线上的数据库,数据太多,不适合复制到本地然后搭建本地数据库开发,直接链接数据库又不安全所以,需要通过xshell做端口转发,通过隧道来链接数据库1、首先通过xshell登陆跳板机2...

nginx正向代理与反向代理

nginx正向代理与反向代理

正向代理正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。浏览器中输...

评论列表

YanLan
2018-10-22 13:49:14

很有用

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。