• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-03-17 08:38 Aet 隐藏边栏 |   抢沙发  9 
文章评分 2 次,平均分 5.0

vim模式

  • 命令模式(默认)
    • 刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。
    • 命令模式→输入模式
      • i:在当前光标所在字符的前面,转为输入模式
      • I:在当前光标所在行的行首转换为输入模式
      • a:在当前光标所在字符的后面,转为输入模式
      • A:在光标所在行的行尾,转换为输入模式
      • o:在当前光标所在行的下方,新建一行,并转为输入模式
      • O:在当前光标所在行的上方,新建一行,并转为输入模式
      • s:删除光标所在字符
      • r:替换光标处字符
  • 输入模式
    • 可以输入内容
    • 命令模式→末行模式
      • ESC键
  • 末行模式
    • 在最下边,除编辑模式,可以输入诸多管理员命令
    • 末行模式→命令模式
      • ESC键

vim如何打开文件

  • vim /path/to/somefile
    • vim后跟文件路径及文件名 ,如果文件存在,则打开编辑文件窗口,如果文件不存在,则创建文件
  • vim +# /path/to/somefile
    • 打开文件,并定位到第#行,#代表数字
  • vim + /path/to/somefile
    • 打开文件,定位到最后一行
  • vim +/PATTERN /path/to/somefile
    • 打开文件,定位到第一次被PATTERN匹配到的行的行首

vim如何关闭文件

  •  w:保存
  •  q:退出
  •  wq 或 x:保存退出,wq 和 x 都是保存退出
  •  q!:强制退出
  •  w!:强制保存,管理员才有权限
  • 【命令模式下】ZZ:保存并退出

移动光标

  • 逐字符移动
    • h
      • 向左
    • l
      • 向右
    • j
      • 向下
    • k
      • 向上
    • #h
      • 移动#个字符
  • 以单词为单位移动
    • w
      • 移到下一个单词的词首
    • e
      • 跳至当前或下一个单词的词尾
    • b
      • 跳至当前或上一个单词的词首
    • #w
      • 表示移动#个单词
  • 行内跳转
    • 0
      • 绝对行首
    • ^
      • 行首第一个非空白字符
    • $
      • 绝对行尾
  • 行间跳转
    • #G
      • 跳转到第#行
    • G
      • 最后一行
    • 末行模式
      • 直接输入行号,回车

翻屏

命令模式下

  •  Ctrl+f
    • 向下翻一屏
  •  Ctrl+b
    • 向上翻一屏
  •  Ctrl+d
    • 向下翻半屏
  •  Ctrl+u
    • 向上翻半屏

删除d

  • 删除单个字符:
    • x:删除光标所在处单个字符
    • #x:删除光标所在处及向后共#个字符
  • 删除命令:d
    • d命令跟 跳转命令组合使用 如:dw 表示删除光标所在位置到下一个单词词首所有字符
    • #dw,#de,#db :#dw表示 删除当前光标所在处及向后第#个单词词首所有字符
    • dd:删除当前光标所在行
    • #dd:删除包含当前光标所在行内的#行
  • 末行模式下 位置符号 StartADD,EndADDd
    • .:表示当前行
    • $:最后一行
    • +#:向下的#行
    • $-#:向上的#行
    • 末行模式下,删除命令d可以跟以上 位置符号 相结合使用
      StartADD,EndADDd:删除StartADD到EndADDd位置的所有行,例如:10,15d:删除10到15行所有内容
      .d:删除光标所在行,同dd

粘贴p

  • p(小写p):如果删除的或复制的为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
  • P(大写P):如果删除的或复制的为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

复制y

  • 命令模式
    • yy:复制当前行
    • yw (y#w,ye,y#e,yb,y#b):复制光标当前位置到下个单词词首内容.#代表数字
    • y#G:复制当前位置当#行处的所有内容
  • 末行模式
    • StartADD,EndADDy:复制StartADD到EndADDd位置的所有行,例如:10,15d:复制10到15行所有内容
    • +3y:复制当前位置向下3行

修改c

  • 先删除内容,在转换为输入模式
  • 用法同d

替换r

  • r:单字符替换,会替换光标选中字符
  • R:替换模式,可以做字符替换。

撤销编辑操作:u

  • u:撤销前一次编辑操作
  • #u:直接撤销#次操作
  • Ctrl+r:撤销最近一次撤销操作

重复前一次编辑操作.

  • .:比如 上一次dd删除了一行,现在输入.就可以重复dd删除行的操作

可视化模式

  • 命令模式:
    • v:按字符选取,键盘控制光标 划过 的区域被选取
    • V:按矩形选取,键盘控制光标划过的行被选取

查找

  • 末行模式:
    • /PATTERN:从当前位置向后查找
    • ?PATTERN:从当前位置向前查找
    • n:向下查找
    • N:向上查找

查找并替换

  • 在末行模式下使用s命令
    • ADDR1,ADDR2s/PATTERN/String/gi
    • ADDR1,ADDR2 表示地址;比如1,$表示全文 (%也表示全文)
    • g:表示全局替换
    • i:表示忽略大小写

vim打开多个文件

  • vim FILE1 FILE2 FILE3
  • 末行模式下
    • :next 切换到下一个文件
    • :prev 切换到上一个文件
    • :last 切换到最后一个文件
    • :first 切换到第一个文件
  • 退出多个文件
    • qa:全部退出

分屏显示一个文件

  • vim打开文件后
    • Ctrl+w,s:水平拆分窗口
    • Ctrl+w,v:垂直拆分窗口
  • 在窗口间切换光标
    • Ctrl+w,ARROW
    • 比如 Ctrl+w,→:(使用箭头方向键)光标切换到右边的窗口
    • 比如 Ctrl+w,h(左), j(下), k(上), l(右) 也可以切换窗口
  • 在末行模式下
    • :qa退出所有窗口

分窗口编辑多个文件

  • vim -o:水平分割显示
  • vim -O:垂直分割显示
  • 例如:vim -o /etc/rc.sysinit /etc/inittab :水平分割显示/etc/rc.sysinit和/etc/inittab 这2个文件

将当前文件中部分内容保存为另外一个文件

  • 末行模式下
    • w:表示保存当前文件
    • w /path/to/somewhere:将当前文件另存为到路径指定的地方
    • ADDR1,ADDR2w /path/to/somewhere:将ADDR1到ADDR2指定的地址文本 另存为到路径指定的地方

将另一个文件的内容填充在当前文件中(r表示读)

  • 末行模式下
    • r: /path/to/somefile
    • 例如:vim /etc/rc.sysinit 打开文件后,末行模式 输入 :r /etc/inittab :会将 inittab文件的所有内容附加到rc.sysinit文件光标所在的位置

跟shell交互(vim 末行模式执行shell)

  • 末行模式
    • ! command即可
    • 例如: ! ls /etc/:会列出/ect目录下所有文件及目录 按enter后回到vim编辑状态

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享