[关闭]
@CrazyHenry 2018-05-19T19:27:55.000000Z 字数 1697 阅读 985

Vim

xxxxLinux命令行


三种常用模式的切换

vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc即可进入普通模式。普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。

在普通模式下:

  1. w:移动到下一个单词
  2. b:移动到上一个单词

image_1cdenpsjh1kcn19rhm55onna459.png-38kB

基本操作

打开文件:

  1. vim 文件名
  2. or
  3. vim
  4. 在普通模式下输入 :e filename #filename可以是不存在的文件,则新建一个

保存文件:

  1. 在普通模式下输入 :w #wq则是保存并退出
  2. 在普通模式下输入 :w filename.back #另存为文件filename.back

退出文件:
image_1cdeoe26e18bm1oab1goigh51fsgm.png-24.1kB

普通模式下:按 shift+zz也可保存并退出文件。

删除操作

普通模式下删除

  1. x:删除当前光标处的字符
  2. X:删除当前光标处的前一个字符
  3. dd:删除当前光标所在的行
  4. 2dd:删除当前行和下一行
  5. dw:删除当前光标 所处位置之后的单词部分,当光标处在单词第一个字符,则删除整个单词
  6. d$:删除当前光标至行尾的所有字符,包括光标处字符
  7. d^:删除当前光标至行首的所有字符,不包括光标处字符
  8. dG:删除当前行到文档结尾的所有行
  9. d1G:删除当前行到文档开头的所有行

普通模式下高阶指令

  1. . #小数点,重复执行上次的操作
  2. ~ #将该字符大小写转换
  3. u #撤销上一次操作
  4. Ndd:重复删除N
  5. dNw:重复删除Nwords
  6. 10x:重复删除10个字符

普通模式下的行间跳转

  1. :set nu #显示行号
  2. nG:跳转到第n
  3. gg:跳转到行首
  4. G:跳转到行尾
  5. ctrl + o:跳转到上一次停留的位置

普通模式下的行内跳转(注意以下命令都是行间的跳转)

  1. ^: 到行头
  2. $:到行尾
  3. f<字母>: 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
  4. F<字母>: 向前搜索<字母>并跳转到第一个匹配的位置

普通模式下的单词跳转:
image_1cder0884m6dlndg24j9210ia1m.png-15.1kB

复制粘贴

image_1cderiaru18on1bmi1vc7k4841f23.png-54.4kB

使用yy和yG命令复制整行和整几行,粘贴的时候就会自动换行粘贴(p在光标下一行粘贴,P在光标上一行粘贴)。

而y$和yw命令,就不会换行粘贴。(p在光标后粘贴,P在光标前粘贴)。

  1. yw: 复制从光标位置到本单词结尾的部分
  2. y2w:复制从光标位置到本单词以及下一个单词结尾的部分
  3. y^:复制到行首,不包括光标处的字符
  4. y$:复制到行尾,包括光标处的文字,和结尾一个空格

剪切粘贴

dd命令实际上就是剪切

  1. ddp:交换上下两行

替换和撤销操作(普通模式下的操作)

命令 说明
r+<待替换字母> 将游标所在字母替换为指定字母
R 连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大小写
u 撤销一次或n次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销undo的操作,即为u的逆操作,但是大U操作之后没有办法恢复

缩进操作

  1. >> : 普通模式下输入>> 整行将向右缩进
  2. << : 普通模式下输入<< 整行将向左缩进
  3. :set shiftwidth #当前tab的空格数
  4. :set sw #与上等效
  5. :set shiftwidth=10 #设置sw为10
  6. :set sw=10 #与上等效
  7. :ce #将该行文本居中
  8. :ri #将该行文本靠右
  9. :le #将该行文本靠左

Vim查找操作(在普通模式下操作)

创建文件~/.vimrc

  1. #添加如下代码
  2. set hls

保存后

  1. source ~/.vimrc
  1. /ipv6 #向下查找ipv6字符串,按n继续到下一个,按N到上一个
  2. ?ipv6 #向上查找ipv6字符串,按n继续下一个(向上搜索),按N回到上一个
  3. :noh #结束查找
  4. \* #向下查找游标所处的单词,按n继续查找下一个,N上一个
  5. \# #向上查找游标所处的单词,按n继续向上查找
  6. g\* #同\* ,但部分符合该单词即可
  7. g\# #同\# ,但部分符合该单词即可
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注