首页 > 技术文章 > 第四章 vi/vim纯文本编辑器

zhuzhaoli 2019-02-21 08:04 原文

一、普通模式

1、移动光标的方法

  • h或向左箭头键(←) 光标向左移动一个字符。
  • j或向下箭头键(↓) 光标向下移劢一个字符。
  • k或向上箭头键(↑) 光标向上移动一个字符。
  • l或向右箭头键(→) 光标向右移动一个字符。
  • 如果想要进行多次移动的话,例如向下移动30行,可以使用 "30j" 或 "30↓" 的组合按键。
  • [Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
  • [Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
  • 0:移动到这一行的最前面字符处 (常用)
  • $:移动到这一行的最后面字符处(常用)
  • G:移动到这个档案的最后一行(常用)
  • nG :n为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
  • gg:移动到这个档案的第一行,相当于 1G ! (常用)
  • n<Enter> n 为数字。光标向下移动 n 行(常用)

2、搜寻与取代

  • 【/word】:向光标之下寻找一个名称为word的字符串,例如要在文件内搜寻boxiaoyuan这个字符串,就输入/boxiaoyuan即可(常用)
  • 【?word】:向光标之上寻找一个字符串名称为word的字符串
  • 【n】:代表『重复前一个搜寻的动作』。举例来说, 如果刚刚我们执行 /boxiaoyuan 去向下搜寻boxiaoyuan这个字符串,则按下n后,会向下继续搜寻下一个名称为boxiaoyuan的字符串。如果是执行?boxiaoyuan的话,那么按下n则会向上继续搜寻名称为boxiaoyuan的字符串!
  • 【N】:这个N是英文按键。与n刚好相反,为『反向』进行前一个搜寻动作。 例如 /boxiaoyuan 后,按下 N 则表示『向上』搜寻boxiaoyuan 。
  • 【:n1,n2s/word1/word2/g】  n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为word2!举例来说,在100到200行之间搜寻boxiaoyuan并取代为BOXIAOYUAN 则:『:100,200s/boxiaoyuan/BOXIAOYUAN/g』。(常用)
  • 【:1,$s/word1/word2/g】:从第一行到最后一行寻找word1字符串,并将该字符串取代为 word2!(常用)
  • 【:1,$s/word1/word2/gc】:从第一行到最后一行寻找word1字符串,并将该字符串取代为 word2!且在取代前显示提示字符给用户确认 (confirm)是否需要取代!(常用)
  • 【%s/word1/word2/g】:把所有的word1替换为word2。

3、删除、复制与粘贴

  • 【x, X】:在一行字当中,x为向后删除一个字符(相当于[del] 按键),X为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
  • 【dd】: 删除游标所在的那一整行(常用)
  • 【ndd】:n为数字。删除光标所在的向下n行,例如20dd则是删除20行(常用)
  • 【yy】: 复制游标所在的那一行(常用)
  • 【nyy】:n为数字。复制光标所在的向下n行,例如20yy,则是复制 20 行(常用)
  • 【p, P】: p 为将已复制的数据在光标下一行贴上,P则为贴在游标上一行! 举例来说,我目前光标在第20行,且已经复制了10行数据。则按下p后, 那10行数据会贴在原本的20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
  • 【u】:复原前一个动作。(常用)
  • 【Ctrl+r】:重做上一个动作。(常用)
  • 【.】: 重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

4、显示、取消行号

  • 【:set nu】:显示行号
  • 【set nonu】: 取消行号

二、一般模式切换到编辑模式的可用的按钮说明

1、进入插入或取代的编辑模式

  • 【i, I】:进入插入模式(Insert mode): i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
  • 【a,A】:进入插入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
  • 【o,O】:进入插入模式(Insert mode): 这是英文字母o的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
  • 【r,R】: 进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止。(常用)
  • 【Esc】:退出编辑模式,回到普通模式中(常用)

三、普通模式切换到指令列模式的可用的按钮说明

  • 【:w】:将编辑的数据写入硬盘档案中(常用)
  • 【:w!】: 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的权限有关!
  • 【:q】:退出vi (常用)
  • 【:q!】若曾修改过档案,又不想储存,使用!为强制离开不储存档案。
  • 【:wq】:保存后离开,若为 :wq! 则为强制储存后离开 (常用)

四、列删除,列插入

1、vim中块删除

  • 第一步:按下组合键“CTRL+v” 进入“可视块”模式,选取这一列操作多少行。
  • 第二步:按下“d”即可删除被选中的整块。

2、vim中块插入

  • 第一步:按下组合键“CTRL+v” 进入“可视 块”模式,选取这一列操作多少行。
  • 第二步:按下shift+i(或者大写的字母"i")。
  • 第三步:输入要插入的内容。
  • 第四步:按ESC,之后就会看到插入的效果。

推荐阅读