Vim 编辑器

Vim工作模式

https://www.runoob.com/linux/linux-vim.html

首先看个图

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

在命令模式中按下i 等命令可以进入输入模式,进行正常的文字输入。

输入模式中按下Esc键可以退回命令模式。

命令模式按下: 可以进入底线命令模式。按Esc可退出

基本用法

vim 加文件名可以打开并编辑某一个文件。也可以打开文件夹

vim [filename]

以下所有n均表示数字

移动光标

hjkl 分别表示←↓↑→ 每次移动一格

可以通过数字组合键比如30j,来向下移动30行

space 空格键向后移动光标,会自动换行。l不会

    • 光标移动到下一行的第一个非空格符
    • 光标移动到上一行的第一个非空格符
  • 0 等同于home

  • $ 等同于end键

  • G 移动到最后一行

  • nG n为数字,移动到第n行

  • n回车 向下移动n行

  • gg 相当于1G,回到第一行

  • ctrl f 向下翻页(pagedown)

  • ctrl b 向上翻页(pageup)

  • ctrl d 向下半页

  • ctrl u 向上半页

搜索和替换

  • /word 向下搜索word
  • ?word 向上搜索word
  • n 下一个匹配结果
  • N 上一个匹配结果

替换

  • :n1,n2s/word1/word2/g
  • :1,$s/word1/word2/g 或 :%s/word1/word2/g
  • :1,$s/word1/word2/gc 或 :%s/word1/word2/gc

删除/复制/粘贴

  • x 向后删除,delete

  • X 向前删除,backspace

  • nx 删除n个字符

  • dd 删除当前行

  • ndd n是数字,向下删除n行

  • d1G 删除第一行到当前行

  • dG 删除当前行到最后一行

  • d0 删除行首到当前字符

  • d$ 删除当前字符到行尾

  • yy 复制当前行

  • nyy 复制n行

  • y1G 复制第一行到当前的所有数据

  • yG 复制当前行到最后一行

  • y0 复制行首到当前字符

  • y$ 复制当前字符到行尾

  • p 复制到当前行的下一行

  • P 复制到当前行的上一行

  • J 删除当前行的换行符(合并行)

  • c 还没弄明白 10cj删除10行,和10dd有啥区别?

  • u 撤销

  • ctrl r 恢复

  • . 重复上一个动作

命令行操作

  • :w 保存

  • :w! 强制保存

  • q 退出

  • q! 强制退出,丢弃修改

  • :wq 存储后修改

  • ZZ 等同于wq

  • ZQ 等同于q!

  • w [filename] 保存到指定文件

  • r [filename] 读取指定文件内容

  • ! command 暂时离开vi,执行shell命令

  • :set nu 显示行号

  • :set nonu 取消显示行号

  • vi" 选中两个"之间的内容

vimdoc

pdf文档下载

github地址

  • J 删除换行
  • u撤销 ctrl R 恢复
  • w 移动到下一个词的词首 b 移动到上一个词词首
  • e 移动到下一个词词尾 ge 移动到上一个词词尾
  • 括号匹配 % 移动到对应匹配的括号
  • gg 移动到首行 G 最后一行 xxgg xxG 移动到xx行
  • `` 或者 '' 跳转回之前所在的行
  • CTRL F = pagedown , CTRL D = 1/2 pagedown
  • CTRL B = pageup , CTRL U = 1/2 pageup
  • * 向下查找当前光标所在单词, # 向上查找 (单词完全匹配,如果要部分匹配,使用g* g#)
  • 查找整个单词 < 只匹配单词开头 >只匹配单词结尾 <xxx>只匹配单词
  • :jumps 输出可跳转的位置列表
  • m+ a-z 可以打标记 '+a-z 跳转到标记 或者` +a-z
  • dw 删除单词 dd删除行 d$ or D 删到最后 dfx 删除到字符x
© 皖ICP备20011981号