vim的使用

362 阅读5分钟
原文链接: mp.weixin.qq.com

vim的快捷键的高清图,建议收藏

今天决定来写一下vim的用法,vim的重要性不言而喻。作为一名后端开发工程师,在服务器上安装数据库环境,安装WEB服务器,对生产环境进行管理,都需要使用vim 。今天我主要从三个方面介绍vim,主要参考的书籍是《鸟哥的Linux私房菜基础篇》。

今天就看到身边的同事要修改redis,conf这个文件,要把#这个注释拿掉,然后他是进行编辑模式下一行一行往下走然后删掉之后保存之后退出。其实熟悉vim的话直接在一般模式下用/word命令定位到那一行,接着用x进行删除就行了。

一、vim的三种模式:

基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』、『指令列命令模式』。这三种模式的作用分别是:

一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。

按键说明:

  • 输入nj会向下移动n行

  • crtl+f屏幕会向下移动一页,crtl+b屏幕会向上移动一页

  • n+空格键会向右移动n个字符

  • 0或者Home会移动这一行第一个字符位置,$或End会移动到行的最末尾

  • G移动到这个档案的最后的一行,nG为定位到第n行,gg定位到档案的第一行

  • n+Enter键会向下移动n行

  • /word向光标下查找名称为word的字符串,?word 向光标上查找名称为 word 的字符串

  • :n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行间搜寻 nevada 并取代为 NEVADA 则:『:100,200s/ nevada / NEVADA /g』。(常用)x删除字符,nx删除n个字符,dd删除游标所在的那一整列yy复制游标所在的那一列

  • nyy:n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)

  • u是复原前一个动作,比如你不小心进行了某个动作,想反悔

  • [Ctrl]+r 重做上一个动作。

  • .意思是重复前一个动作的意思。如果你想要重复删除、重复贴上等等动作,按下小数点『.』。

编辑模式在一般模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

指令列命令模式: 在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』,而读取、存盘、大量取代字符、离开 vi 、显示行号等等则是在此模式中!

  • :w将编辑的档案重新写入到硬盘档案中

  • :w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案档案权限有关啊!

  • :q离开档案

  • :q!不保存强制离开

  • :wq存储后离开

  • ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!

  • :n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。

  • :! Command暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

  • :set nu显示行号,设定之后,会在每一行的前缀显示该行的行号

  • :set nonu与set nu 相反,为取消行号!

二、案例实战:

  1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录;mkdir  /temp/vitest

  2. 进入 vitest 这个目录当中;cd  /temp/vitest

  3. 将 /etc/man.config 复制到本目录底下;cp /etc/man.config  /temp

  4. 使用 vi 开起本目录下的man.config 这个档案;vim man.config

  5. 在 vi 中设定一下行号;:set nu

  6. 移动到第 58 行;58G

  7. 移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串;gg  /bzip2

  8. 接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』;:50,100s/man/MAN/gc

  9. 修改完之后,突然反悔了,要全部复原,有哪些方法?u

  10. 我要复制 65 到 73 这九行内容,并且贴到最后一行后『65G』 然后再『 9yy 』后最后一行会出现『复制九行』。按下『 G 』到最后一行,再给他『 p 』贴上九行!

  11. 21 到 42 行间的开头为 # 符号的批注数据删除;21G 』→『 22dd 』就能删除 22 行

  12. 将这个档案另存成一个 man.test.config 的檔名;『 :w man.test.config 』

三、vim 的额外功能

1、vim 具有颜色显示的功能,并且还支持许多程序语法 (syntax)

2、区块选择(Visual Block)

  • 使用 vim hosts 来开启该档案

  • 将光标移动到第一行,然后按下 [ctrl]-v

  • 将光标移动最底部,此时光标区域会反白按下『 y 』复制

  • 最后,将光标移动到第一行的最右边,并且再用编辑模式向右按两个空格键,回到一般模式后, 再按下『 p 』后,,就复制成功了

3、多档案编辑和多窗口编辑可以快速的就将需要的资料复制到正确档案内