0%

【Linux】Vim编辑器

一般编辑

输入或取代

  • i:从目前光标所在处输入
  • I:在目前所在行的第一个非空格符处开始输入
  • a:为光标所在的下一个字符处开始插入
  • A:行尾插入
  • o:在目前光标所在的下一行处输入新的一行
  • O:在目前光标所在处的上一行输入新的一行
  • >:缩进
    • >n:缩进n行
  • <:反缩进
  • Esc:退出编辑模式,回到一般模式中

取代或删除输入

  • r:只会取代光标所在的那一个字符一次
  • R:会一直取代光标所在的文字,直到按下 ESC 为止
  • s:删字符插入
  • S:删行插入
  • c:和d一样,但是进入编辑模式

其他

  • crtl+a:光标所在处数字+1
  • ~:转换光标所在字符的大小写
  • J:将光标所在行与下一行的数据结合成一行

光标移动

行内移动

  • h:向左移动一个字符
    • 2←:向左移动2个字符
  • l:向右移动一个字符
  • 0Home|^:行首
  • $End:行尾

词间移动

  • w:下一个符号分隔的单词词首
    • 结合其他指令处理下一个词,比如dw,可以删除单词,yw可以复制单词
  • e:下一个符号分隔的单词词尾
  • b:上一个符号分隔的单词词首
  • W:下一个空格分隔的单词词首
  • E:下一个空格分隔的单词词尾
  • B:上一个空格分隔的单词词首

行间移动

  • space:向右移动一个字符
    • n+space,移动n个字符,不限于行内
  • k:向上移动一个字符
  • j:向下移动一个字符
    • 30↓30j:向下移动30行
  • -:上一行行首
  • enter+:向下移动至行首
    • 30enter30+,向下移动30行行首
  • H:光标移动到该页首行行首
  • M:光标移动到该页中间行行首
  • L:光标移动到该页末行行首
  • G:移动到文件最后一行(常用)
    • 20G,移动到文件的第20行
    • gg,移动到第一行=1G

段间移动

  • (:上一段首
  • ):下一段首
  • {:上一段首空行
  • }:下一段首空行

翻页

  • ctrl+fpagedown:屏幕向下移动一页
  • ctrl+bpageup:屏幕向上移动一页
  • ctrk+d:屏幕向下移动半页
  • ctrl+u:屏幕向上移动半页

搜索替换

  • /word:向下寻找word

  • ?word:向上寻找

  • n:重复查找

  • N:反向查找

  • :n1,n2s/word1/word2/g:在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2

    • n2用$代表结尾,则:1,$s/word1/word2/g代表全文中替换,也可以用:1,%s/word1/word2/g
    • ggc时可以确认是否取代
  • 同时查找多个关键词

    1
    2
    3
    4
    5
    ?\<Ce\>\|\<C.f1\>\|\<Sc\>  

    /string1 \| string2


  • 查找同一行包含两个关键词的内容

    1
    /keyword1.*keyword2

删除d

  • x或者delete:向后删除
    • 2x:向后删除2个字符
  • Xbackspace:向前删除
  • d
    • dd:删除一行。20dd:删除20行
    • d$:删除至行尾=D
    • d0:删除至行首
    • d1G: 删除光标所在到第一行的所有数据
    • dG:删除光标所在到最后一行的所有数据
    • : 1,10d:删除第一行到第十行
    • dfc:删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
    • daw:删除光标所在的一个单词

可视化

  • v:可视
  • V:行可视
  • ctrl+v:块可视

复制粘贴

复制y

  • yyY:复制游标所在的那一行(常用)
    • 20yy:向下复制20行
  • y$:复制光标所在的那个字符到该行行尾的所有数据
  • y0:复制光标所在的那个字符到该行行首的所有数据
  • y1G:复制游标所在行到第一行的所有数据
  • yG:复制游标所在行到最后一行的所有数据

粘贴p

  • p:将已复制的数据贴在光标下一行
  • P:贴在游标上一行

其他动作

  • u:撤销命令
  • U:撤销行内命令
  • ctrl+r 重做上一个动作。【与撤销相反】
  • .:重复前一个动作的意思。 比如重复删除、重复贴上等等动作

退出Vim

  • :w :保存
  • :w! :强制保存
  • :q:退出
  • :q!:强制退出
  • :wq 储存后离开
  • :wq! 为强制储存后离开
  • ZQ:不保存退出
  • ZZ:保存退出
  • :w [filename]:另存为
  • :r [filename]:读取另一个文档的内容,内容追加到光标所在行之后
  • :n1,n2 w [filename]:将 n1 到 n2 的内容储存成 filename 这个档案
  • :! command:暂时离开 vi 到指令行模式下执行 command 的显示结果

vim 环境的变更境的变更

  • :set nu:显示行号,设定之后,会在每一行的前缀显示该行的行号
  • :set nonu:与 set nu 相反,为取消行号

可以直接vim ~/.vimrc,然后添加set nu,默认是有行号的

管理命令

  • :vs 路径/文件名:同时再打开另外的一个文件,通过ctrl ww使得光标在两个文件间切换;两个文件是左右并排显示的。
  • :sp 路径/文件名:同时再打开另外的一个文件,通过ctrl ww使得光标在两个文件间切换;两个文件是上下并排显示的。

有用可戳(●ˇ∀ˇ●)