05-Linux 编辑器之神-vim

jefxff 153,783 2020-01-20
Linux 编辑器之神——vim
vi 简介
  • vi 只是一个文本编辑程序
  • 例如:vi 1.py 表示:使用 vi 打开 1.py,如果没有 1.py 则保存成 1.py
vi 3种工作模式
  1. 命令模式(默认模式)
    • 按 :(英文输入下的冒号)冒号,从命令模式进入末行模式
    • 在末行模式下按 Esc 退出到命令模式
  2. 编辑模式(文本输入模式)
    • 按键盘上小写字母 i (在光标的前面(左边)插入) 从命令模式进入编辑模式
    • 按键盘上大写字母 I (在光标的行首插入)从命令模式进入编辑模式
    • 按键盘上小写字母 a (在光标的后面(右边)插入)从命令模式进入编辑模式
    • 按键盘上大写字母 A (在光标的行尾插入)从命令模式进入编辑模式
    • 按键盘上小写字母 o(在光标的下一行插入)从命令模式进入编辑模式
    • 按键盘上大写字母 O(在光标的上一行插入)从命令模式进入编辑模式
    • 按键盘上 Esc 键,从编辑模式进入命令模式
  3. 末行模式
    • 输入 :wq 表示:保存退出
    • 输入 :q! 表示:不保存退出
    • 输入 :x(小写的x) 表示:保存退出
    • 保存退出快捷方式:在命令模式下 按 Shift 键的同时连续按两次 z 键,也可以保存退出(Shift + zz)
  4. 四种模式转换图(第四种是可视模式)
vim 基础操作
  • 进入插入模式:

    • i 在光标前一个字符插入
    • I 在光标所在行首插入
    • a 在光标后一个字符插入
    • A 在光标所在行尾插入
    • o 在光标所在的下一行的行首插入
    • O 在光标所在的上一行的行首插入
  • 进入命令模式:

    • Esc:从插入模式或末行模式进入命令模式
命令模式下基本操作命令:
移动
  • h 左移
  • j 下移
  • k 上移
  • l 右移
  • M 光标移动到中间行
  • L 光标移动到屏幕最后一行行首
  • G 移动到指定行,行号-G
  • 15G 表示:跳转到第15行
  • 1G 表示:跳转到第1行
  • gg 表示:跳转到第1行
  • W 向右一次移动一个字
  • b 向前一次移动一个字
  • { 按段移动,上移
  • } 按段移动,下移
  • Ctrl + d 向下翻半屏
  • Ctrl + u 向上翻半屏
  • Ctrl + f 向下翻一屏
  • Ctrl + b 向上翻一屏
粘贴、剪切、复制命令:
  • yy 复制, 8yy 表示:从当前光标所在的行开始复制8行
  • p 粘贴
  • dd 剪切, 2dd 表示:从当前光标所在的行开始剪切8行
撤销、替换命令:
  • u 一步一步撤销
  • Ctrl + r 反撤销
  • r 命令模式下替换字母
删除命令:
  • x 删除光标后一个字符,相当于 Del
  • X 删除光标前一个字符,相当于 Backspace
  • dd 删除光标所在行,n dd 删除指定的行数
  • D 删除光标后本行所有内容,包含光标所在
  • d0 删除光标前本行所有内容,不包含光标所在字符
  • dw 删除光标开始位置的字符,包含光标所在的字符
文本行移动:
  • ">>" (连续按两次 > )文本行右移
  • "<<" (连续按两次 < )文本行左移
重复命令:
  • .(英文符号下的点)重复上一次操作的命令
快速查找命令:
  • / str查找(命令模式下输入 / (斜杠),在斜杠后面输入要搜索的东西)
  • n 光标跳转到下一个查找到的东西
  • N 光标跳转到上一个查找到的东西
替换命令:
  • 例如:
    • 末行模式下,将文本中所有的 abc 替换成 123
    • :%s/abc/123/g
    • 末行模式下,将第一行至第十行之间的 abc 替换成 123
    • :1,10s/abc/123/g
vim 里执行 shell 下的命令:
  • 末行模式里输入 !,后面跟命令(如 ls pwd touch mkdir rm mv cp ...)

######附图vi命令树


# linux