vim 学习

Vim 是一个功能强大的全屏幕文本编辑器,是 Linux 上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。
Vim 是Vi发展出来的,相当于升级版。
Vim 没有菜单,只有命令。

下载

yum -y install vim 下载并安装vim编辑器

三种使用模式

Vim共分为3种模式,分别是:命令模式、编辑模式、底线命令模式

命令模式

刚启动Vim,便进入了命令模式
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当做一个命令,然后进入编辑模式。
常用到的几个命令:

  • i 切换到输入模式
  • x 删除当前光标所在的字符
  • : 切换到底线命令模式,在最底一行输入命令。如果是编辑模式,需要先按esc键退出,会进入命令模式,然后再按:进入底线命令模式
  • esc 退出模式

切换到编辑模式

  • i 进入编辑模式,从光标所在处输入
  • I 进入编辑模式,在光标所在行的第一个非空格字符处开始输入
  • a 进入编辑模式,从光标所在的下一个字符开始输入
  • A 进入编辑模式,从光标所在行的最后一个字符处开始输入
  • o 进入编辑模式,从光标所在行的下一行,输入一个新的一行
  • O 进入编辑模式,从光标所在行的上一行,输入一个新的一行
  • r 进入编辑模式,取代光标所在的那一个字符
  • R 进入编辑模式,会一直取代光标所在的文字,知道按下esc为止

显示行号

:set nu 显示行号

光标移动

  • h 或者方向左键 左移一个字符
  • j 或者方向下键 下移一行
  • k 或者方向上键 上移一行
  • l 或者方向右键 右移一个字符
  • + 光标移动到非空格符的下一行
  • - 光标移动到非空格符的上一行
  • 数字 + 空格 光标向右移动n位
  • 数字 + 回车 光标向下移动n行
  • 0 移至行首,数字0
  • $ 移至行尾
  • H 移至屏幕最上面一行的第一个字符
  • M 移至屏幕中央的一行的第一个字符
  • L 移至屏幕最下面一行的第一个字符
  • G 移动到文件最后一行
  • gg 移动到文件第一行
  • 数字G 移动到到第n行

搜索和替换

  • /word 向光标下搜索指定word的字符串,搜索时忽略大小写:set ic
  • ?word 向光标上搜索指定字符串
  • n 按键n,表示next下一个搜寻动作。比如:我们执行/hello,会向下搜索hello这个字符串,并将光标移动至找到的第一个,这时按下n键,则会继续搜寻下一个符合条件的字符串。
  • N 向上搜寻

删除命令

  • x 向后删除一个字符,相当于delete
  • X 向前删除一个字符,相当于backspace
  • 数字x 向后删除n个字符,比如10x
  • dd 删除光标所在行
  • 数字dd 向下删除n行
  • dG 删除光标所在行到最后一行的内容
  • d1G 删除光标所在到第一行的内容
  • d$ 删除光标所在到该行最后一个字符
  • d0 数字0,删除光标所在到该行行首的所有字符

复制和剪切

  • yy 复制当前行
  • 数字yy 复制当前行以下n行
  • y1G 复制光标所在行到第一行的所有数据
  • yG 复制光标所在行到最后一行的所有数据
  • y0 数字0,复制光标所在字符到该行行首的所有字符
  • y$ 复制光标所在字符到该行最后一个字符
  • p 小写,粘贴在当前光标所在行的下一行
  • P 大写,粘贴在当前光标所在行的上一行
  • J 将光标所在行与下一行的数据合并

取消

  • u 取消上一步操作
  • Ctrl + r 重做前一个动作

底线命令模式

保存和退出

  • :w 保存修改
  • :w! 强制写入
  • :w >> a.txt 内容追加到a.txt文件中,需存在a.txt文件
  • :q 退出
  • :q! 强制退出,不保存修改
  • :wq 保存修改并退出
  • :wq! 强制保存修改并退出(可忽略文件的只读属性)
  • ZZ 大写,快捷键,保存修改并退出
  • :w new_filename 另存为指定文件
  • :r new_filename 编辑的时候,读入另一个档案的数据。即将filename这个文件的内容加到光标所在行后面
  • :n1,n2 new_filename 将n1到n2的内容,另存为指定文件
  • :!command 暂时离开vim到底线命令模式下执行command的显示结果。比如::! ls /home,即可在vim中看到/home目录下的各目录及文件信息
  • :set nu 显示行号
  • :set nonu 取消行号

删除命令

  • :n1,n2d 删除指定范围的行

搜索和替换

  • :%s/old/new/g 全文替换指定字符串
  • :n1,n2s/old/new/g 在一定范围内替换指定字符串

定位命令

  • :n 到第n行
posted @ 2022-03-09 22:35  快乐锁  阅读(40)  评论(0编辑  收藏  举报