Vim编辑器的基本用法

一般模式切换到插入模式的命令

一般模式切换到插入模式的命令:iao|IAO

  • i 进入编辑模式(默认在选定字符前插入)
  • a 在选定字符后插入字符
  • o 在当前行下添加新行
  • I 在当前行首进入编辑模式
  • A 在当前行末进入编辑模式
  • O 在当前行上添加新行

关于一般模式和末行模式的切换:

  • ESC 退出编辑模式
  • : 末行模式

末行模式下的退出命令

末行模式下的退出命令

  • :wq 保存并退出
  • :q! 不保存退出,在修改过文件的情况下使用该命令不会保存
  • :q 在没有动过文件情况下退出

在一般模式下输入ZZ(大写)保存并退出编辑器

移动光标

h左 j下 k上 l右

5j向下移动5行,5K 向上移动5行

gg:光标移动到文档开头

G :光标移动到文件末尾

3G:光标移动到第三行

56G:光标移动到第56行

End光标移到行尾

Home键光标行首

翻页

ctrl-f 向下翻页 forward

ctrl-b 向上翻页 backward

删除内容

dd 删除整行

D 删除光标所在位置到行尾

dG 删除光标到文件的最后一行

3dd 删除光标所在行至后面的2行,共删除3行

x 删除光标位置字符

3x 删除光标开始3个字符

复制粘贴

yy 复制1行

yw 复制单词

nyy 复制n行,n是数字 复制从光标所在行开始的N行,一般在5行以内非常直观的数字时使用的比较多

p 粘贴 paste

小写p 粘贴到光标所在行的下一行

大写P 粘贴到光标所在行的上一行

撤销

u:撤销 undo

ctrl+r:重做 操作结束后使用u退回到上次操作,则ctrl+r重做,抵消一次u的撤销

设置

set:设置

:set nu number 显示行号

:set nonu nunumber 取消行号的显示

:set readonly 设置只读

查找替换

:/after 搜索

n向下搜索,N 向上搜索

在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找

例如,/foo\c 将会查找所有的"foo"、“FOO”、"Foo"等字符串。

:s(substitute)**命令用来查找和替换字符串。**语法如下:

:{作用范围}s/{目标}/{替换}/{替换标志}

  • 替换当前行第一个 vivian为sky::s/vivian/sky/
  • 替换当前行所有 vivian为sky ::s/vivian/sky/g
  • 当前行.与接下来两行+2::.,+2s/vivian/sky/g
  • 替换第 n 行开始到最后一行中,每一行的第一个vivian为sky::n,$s/vivian/sky/
  • 替换第 n 行开始到最后一行中,每一行所有vivian为sky,这里n为数字,若n为.,表示从当前行开始到最后一行::n,$s``/vivian/sky/g
  • 替换每一行的第一个vivian为sky::%s/vivian/sky/
  • 替换每一行中所有 vivian为sky::%s/vivian/sky/g
  • 替换每一行中所有 vivian为sky,且忽略大小写::%s/vivian/sky/gi

g:一行内全部替换

i:忽略大小写

通用符号

n:行号
.:当前光标行
+n:偏移n行
$:末尾行,-3
%:全文

比如,d代表删除,那么:

  • :%d 删除全文 ,或:.,$d也是删除全文
  • :.,$-1d 从当前行删除到倒数第二行
  • :.,$0d 从当前行删除到文章末尾
  • :.,+3d 从当前行再往下数三行删除
  • :.,13d 从当前行到第13行删除

比如,y代表复制,那么:

  • :.,$-1y 赋值从当前行到倒数第二行
  • :.,$0y 赋值从当前行到文章末尾
  • :.,+3y 复制从当前行再往下数三行

其它

:!ls /etc/… 可以在vim下执行Shell命令,可以执行任何命令。