vim 文本编辑器

文本编辑器:字处理器

vim: Visual Interface iMproved

全屏编辑器,模式化编辑器
vim模式
  编辑模式(命令模式)
  输入模式
  末行模式

模式转换:
  编辑--> 输入
    i:在当前光标所在的字符的前面,转换为输入模式;
    a: 在当前光标所在的字符的后面,转换为输入模式;
    o:在当前光标所在行的下方,新建一行,转换为输入模式;

    I:在当前光标所在的行首,转换为输入模式;
    A:在当前光标所在的行尾,转换为输入模式;
    O: 在当前光标所在行的上方,新建一行,转换为输入模式;

  输入--> 编辑
    ESC

  编辑--> 末行
    :

  末行-->编辑
    ESC 可能多次

一、打开文件
#vim /pass/to/somefile

  vim +n somefile 直接到第n行
  vim + somefile 直接到文件的最后一行
  vim +/PATTERN: 打开文件,定位到第一次陪PATTERN匹配到的行首

二、关闭文件

1、;末行模式关闭文件

  :q 退出
  :wq 保存并退出
  :q! 不保存退出
  :w 保存
  :w! 强制保存
  :wq --> :x

2、编辑模式下退出
  ZZ: 保存并退出

三、移动光标(编辑模式)
1、逐字符移动
  h: 左
  l: 右
  j: 下
  k: 上
  #h:移动指定数目的字符

2、逐个单词移动
  w:表示移动到下一个单词的词首;
  e:表示移动到当前单词或下一个单词的词尾;
  b:表示移动到当前单词或前一个单词的词首;

  #w: #个单词

3、行内跳转:
  0:行首,绝对行首;
  ^: 行首的第一个非空白字符
  $:绝对行尾;


4、行间跳转
  #G:直接跳转至第#行内
  G:跳到最后一行;

  末行模式下,直接给出行号即可
  
四、翻屏操作
  ctrl + f 向下
  ctrl + b 向上

  ctrl + d: 向下翻半屏
  ctrl + u: 向上翻半屏

五:删除单个字符
  x: 删除光标所在的单个字符
  #x: 删除光标所在处向后的共#个字符

六:删除命令: d命令与跳转命令组合使用
  d0
  d$
  dw
  de
  db
  3dw
  #d跳转符:删除跳转符范围的#个字符
  dd
  #dd:删除包括光标行所在内的#行
  末行模式下:
    :1,8d
  :.,100d 当前行到100行
  : .,+10d 当前行向下10行
  .: 当前行
  $: 最后一行
  +#: 向下#行
  -#:向上#行;

  删除的内容会保存在缓冲区中,最后一次删除的内容可以复制到光标所在的位置;

七、粘贴命令 p
  p: 如果删除的或复制的为整行内容,则粘贴至所在行的下方;如果复制或删除的内容为非整行
则粘贴至贯标所在行的后面;
  P: 如果删除的或复制的为整行内容,则粘贴至所在行的上方;如果复制或删除的内容为非整行
则粘贴至贯标所在行的前面;

八、复制命令 y
  y命令同d命令

九、先删除内容再转换为输入模式
  c同d命令 修改命令

十、替换:r replace
  r: 替换单个字符 当前光标下,r+需要被替换的字符
  R: 进入替换模式

十一、撤销编辑操作 u
  u:撤销前一次的编辑操作,连续u可以撤销前次的n<50次的操作;
  #u:直接撤销前#次编辑操作;
  还原最近的一次撤销操作:ctrl+r

十二、重复前一次编辑操作
  .

十三、可视化模式
  v: 按字符选取
  V: 按矩形块选取 整行选取
  然后进行d p y操作;

十四、查找
  /PATTERN 从首向尾部查找
  ?PATTERN 从尾部向首部查找
  n 向下跳转
  N 向上跳转

十五、查找并替换
  在末行模式下使用s命令 和sed命令一样
  ADDR1,ADDR2s@PATTERN@string@gi
  从当前行到倒数第二行 he替换成HE: .,$-1s/he/HE/g

练习:将/etc/instructor.repos.d/service.repo文件中的ftp://instructor.example.com/pub替换成http://127.16.0.1/yum

%s@ftp://instructor.example.com/pub@http://127.16.0.1/yum@g

十六 用vim编辑多个文件

两个文件相互交互数据
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件

十七、分屏显示一个文件
ctrl + w, s: 水平拆分窗口
ctrl + w, v: 垂直拆分窗口

在窗口间切换光标:
ctrl + w:ARROW(向上的箭头,向下的箭头)
:qa 关闭所有窗口

十八、分窗口编辑多个文件
vim -o:水平分割显示
vim -O:垂直分割显示

十九、将当前文件中的部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere

二十、将另外一个文件的内容填充在当前文件中
:r /path/to/somewhere

vim /etc/inittab
:r /etc/sysinit

二十一、跟shell交互
:! COMMAD

二十二、高级话题
1、显示或取消行号
:set nu
:set nonu
2、显示忽略区分字符大小写
:set ignorecase
:set ic
:set noic
3、设定自动缩进
:set autoindent
:set ai
:set noai
4、查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on
:syntax off

二十三、配置文件
/etc/vimrc
~/.vimrc

vimtutor vim教程

原文地址:https://www.cnblogs.com/chrisDuan/p/4593644.html