vim是vi的升级版本


1.vim的基本模式

  • 命令模式(一般模式)
  • 输入模式(编辑模式)
  • 末行模式(命令行模式)
命令模式进入输入模式方法:
  • a
  • A
  • i 光标所在字符前输入
  • I 光标所在行行首输入
  • o
  • O
  • s 删除光标所在字符后输入
  • S

Tips:最常使用的为ai o三个键


  • HOME键 行首
  • END键 行尾
命令模式
  • yy复制
  • p粘贴(当前行下一行)
  • P粘贴(当前行的上一行)
    50yy向下复制50行
  • dd剪切 / 删除
    100dd向下剪切100行
  • ^
  • $
  • d^
  • d$
  • y^复制当前字符到行首(不包含当前字符)
  • y$ 复制当前字符到行尾(包含当前字符)
  • 35G
  • gg
  • G
  • dgg
  • dG
  • u
  • ctrl+r
  • w下一个单词的首字符
    dw yw

J 合并行

末行模式
  • shfit + :进入末行模式
  • :w
  • :q
  • :wq
  • :w! 强制保存
  • :q! 强制退出
  • :wq! 强制保存退出
  • :w /tmp/cc.txt 另存
  • :1,3w /tmp/new.txt 存的是1–3行
  • :e /root/aa.txt 打开一个文件
  • :e!
  • :X

显示行号
:set nu:set nonu

显示空格或者制表符
:set list:set nolist

文件中所有的制表符都设置为16个空格长度
:set tabstop=16

只更改设置之后的制表符长度
:set softtabstop=16

自动缩进
:set autoindent:set noautoindent

搜索忽略大小写
:set ignorecase smartcase


Tips: 永久生效的方法还是得修改配置文件
操作:
vim /etc/vimrc 在文件末尾添加 set nu 等等(修改配置文件时尽量在整个文件的末尾,便于以后查错和修改)


查找

/关键字
n 下一个 N 上一个
?关键字
n 上一个 N 下一个

替换

通用格式为:s///
:s/ab/xx/ 替换当前行第一个匹配字符串
:s/ab/xx/g 替换当前行所有匹配字符串
:%s/ab/xx/g 替换所有行中所有匹配字符串
:%s/ab/xx/gc 交互式替换所有行中所有匹配字符串
s 替换 g 全局 % 所有行 c交互式
:3,5s/ab/xx/gc 3到5行

2.vim其他模式

可视化模式

在命令模式下按v

左下角会出现

文本模式安装centos系统 centos文本编辑命令_vim


此时可以移动光标进行批量操作

文本模式安装centos系统 centos文本编辑命令_vim_02


选中操作内容 y 复制 d删除

可视化块模式
在命令模式下按ctrl+v

ctrl+v选中–>shift+i---->输入#----->ESC

文本模式安装centos系统 centos文本编辑命令_文本模式安装centos系统_03


3.多文件操作

vim aa.txt cc.txt tt.txt

  • :next 下一个文件
  • :prev 上一个文件
  • :last 最后一个文件
  • :first 第一个文件
    ctrl+^切换到上个文件
    :wqa

ctrl+w+w

横向排序

vim -O aa.txt cc.txt tt.txt

竖向排列

vim -o aa.txt cc.txt tt.txt

4.格式转换

由于Linux下的换行符和Windows下不同(Linux为 \n,Windows为 \r\n),所以需要转换一下格式才能在Windows下正常显示。这里我们安装一个unix2dos包:
yum install unix2dosunix2dos anaconda-ks.cfg