编辑器之神Vim的使用

薄洪涛7年前Linux1381

在这个蔚蓝色的星球上,流传着两大神器的传说: 据说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

相关文章

mac下使用docker来构建不同版本的php环境并安装扩展

切换到mac后,我目前php环境是php7.3 ,但是一些老项目需要7.1 甚至5.6 的环境,特别是服务器上也有这种问题,所以我决定使用docker来部署不同的项目首先安装dockerbrew&nb...

git常用命令

太简单的clone,push ,pull就不说了,每天都用的没必要总结git放弃本地更改,强制拉取远程更新git fetch --all git reset -...

linux免密登陆

linux免密登陆

最近有些累,所以今天的教程就水一篇;所谓免密登陆,就是说我有一台服务器,不想让人家知道具体的ip或者用户名密码,只让使用者从跳板机登陆,通过ssh xxx@ip  这种来登陆;1、 首先跳板...

nginx正向代理与反向代理

nginx正向代理与反向代理

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

linux下mysql报错Access denied for user 'root'@'%

开发机器用的linux,但是装好mysql用navicat链接的时候,会报错Access denied for user 'root'@'%,命令mysql -u root也是...

xshell做端口映射链接数据库

xshell做端口映射链接数据库

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

评论列表

YanLan
2018-10-22 13:49:14

很有用

发表评论    

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