Linux里常用的vim相关操作

195 阅读4分钟

  众所周知,所有的Linux系统都会内置vi文本编辑器。Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。比如对某些配置文件进行简单的修改时,不需要从服务器上将配置文件下载下来进行修改,然后再上传。

1. vi 和vim的三种常见模式

1.1 正常模式

在正常模式下,我们可以使用快捷键。 以vim打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理文件内容,也可以使用【复制、粘贴」】来处理你的文件数据。

1.2 插入模式/编辑模式

在模式下,程序员可以输入内容。 按下i、I、o、O、a、A、R等任何一个字母之后才会进入编辑模式,一般来说按 i 即可

1.3 命令行模式

在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的! 以下是三种模式之间的转换 vim模式转换.png

2. 快捷键的使用归纳

2.1 一般模式常用操作

在windows里面,编辑一个文档习惯用复制、粘贴、剪切、查找等操作来处理文档

  • 复制操作(yy)
快捷操作功能
yy复制光标所在的那一行
yny(nyy)n表示整数,也就是从光标所在行开始,复制n行,比如【y10y】就是复制10行
y$复制的内容是从光标所在位置开始,直到该行的末尾结束
y^复制的内容是从光标所在行开始直到光标的前一个字符结束
  • 粘贴操作(p),把光标移到想复制的位置按p即可
  • 撤回操作(u)
  • 删除操作(dd),与复制操作类似
快捷操作功能
dd删除光标所在的那一行
dnd(ndd)删除n行,比如【10dd】就是删除10行
d$删除的内容是从光标所在位置开始,直到该行的末尾结束
d^删除的内容是从光标所在行开始直到光标的前一个字符结束
  • 剪切操作(x)
快捷操作功能
x小写x,剪切光标所在位置的字符,剪切后字符会前移,然后可以用p进行粘贴
X大写X,剪切光标所在位置之前的字符,有点类似windows里面的删除键,同样可以用p粘贴
  • 替换操作(r),输入r后再输入其他字符进行替换
快捷操作功能
r小写r,输入r后仍在正常模式,继续输入字符会替换光标当前位置的字符,也就是进行单个替换
R大写X,输入R后会进入编辑模式,继续输入字符会依次连续替换光标所在位置的字符,连续替换多个
  • 单词相关操作(w、e)
快捷操作功能
ww移动到下一个词的开头
ee移动到下一个词的结尾
bb移动到上一个词的开头
yw复制一个单词,其实是复制从光标当前位置开始到光标后第一个符号结束(如果这个符号是空格会连将空格一起复制)
dwdw同理,删除一个单词
  • 光标快速移动
快捷操作功能
G大写G,移动到文档最末行
gg大写G,移动到文档首行
n+G数字n加大写的G,移动到指定行的行首,搭配命令“:set nu”设置行号使用较好
shift+6(^)移动到当前行的行首
shift=4($)移动到当前行的行末

2.2 编辑模式常用操作

编辑模式下主要是对文本进行追加等操作,与windows里面操作差别不大,但是编辑模式的进入方式有很多,不同字母大小写,功能不一样:

按键功能
i当前光标前插入
I当前光标所在行最前端插入
a当前光标后插入
o当前光标行的下一行插入,类似先回车后插入
A当前光标所在行最后
O当前光标行的上一行插入,会新建一行在插入

2.3 命令模式常用操作

命令模式下主要是用来进行文本的保存、退出、查找等操作

命令功能
:w保存文件,不会退出
:q退出
:wq保存并退出
:q!不保存文件,强制退出
:set nu显示行号
:set nonu关闭行号
:s/old/new:%s是替换操作,这里的意思是将当前行的第一个old替换为new
:s/old/new/g将当前行的所有old替换为new
:%s/old/new将文件中每行的第一个old替换为new