发布于  阅读量

Vim程序编辑器(一)

简介:Vim是vi的高级版,它相比于Vi,不但可以用不同的颜色显示文字内容,还能够进行许多的程序编辑功能。可以将 Vim 视为一种程序编辑器。Vi 的命令对于 Vim 同样适用。

Vim 的三种模式

一.命令模式

可执行操作:可进行光标的移动、文本的复制粘贴、查找文本中的某些关键字、删除文本部分内容、块的选择等

进入模式的方式:

  1. 在提示符后用 Vim xxx 进入 Vim // xxx 为你要打开或者新建的文件名

  2.  编辑模式和底线命令模式 时,按 Esc 或者Ctrl + c 或者 Ctrl + [ 退出到命令模式

常用按键:

  1. 光标的移动:

    注意:

    1.下面所说的是一个回车键与下一个回车键之间的整个内容为一行,不是我们肉眼所看到的真实的,如果分不清可在命令模式下输入 :set nu 使得文本显示行号

    2.以下内容没有写在代码块里的 N 是数字 **N **,带有角标的 N1,N2 也是数字;string,string1,string2 是你要操作的字符串

    h键或者方向 键 :向左移动

    j 键或者方向 键: 向下移动

    k 键或者方向 键:向上移动

    l 键或者方向 键:向右移动

    //高阶:向某个方向移动N行,例如向下移动30行:按30j或者 30⬇ 即可

    Ctrl + f 键或者 Page Down 键:屏幕向下移动一页

    Ctrl + b 键或者 Page Up 键:屏幕向上移动一页

    Ctrl + d 键:屏幕向下移动半页

    Ctrl + u 键:屏幕向上移动半页

    + 键:光标移动到下一行的非空格符

    - 键:光标移动到上一行的非空格符

    0 或者 Home 键:光标移动到当前所在行的第一列

    ^ 键:光标移动到当前所在行的第一个非空字符上

    $ 或者 End 键:光标移动到当前所在行的最后一列

    w 或者 W 键 : 光标移动到下一个字符串或者特殊符号[1]的开头

    e 或者 E 键 : 光标移动到下一个字符串或者特殊符号的结尾

    b 或者 B 键 : 光标移动到上一个字符串或者特殊符号的开头


    这几个键⬇️好像不是那么一回事。也许是我的版本问题吧。

    H 键:光标移动到当前屏幕上显示的最上方的那一行的第一个非空格字符

    M 键:光标移动到当前屏幕上显示的中间一行的第一个非空格字符

    L 键:光标移动到当前屏幕上显示的最下方的那一行的第一个非空格字符

    这几个键⬆️只是会把光标移动到目标的区域附近而已


    G 键:光标移动到文本的最后一行的第一个非空格字符

    N + G 键:光标移动到文本的第 N 行的第一个非空格字符

    N + gg : 光标移动到文本的第 N 行的第一个非空格字符

    N + 空格 键:光标会向后移动到(若当前光标所在列为第 n 列)第 n+N 列

    gg :光标移动到文本的第一行的第一个非空字符,相当于 1G 命令

    N + Enter 键:光标向下移动到(若当前光标所在行为第 n 行)n + N 行的第一个非空格字符

  2. 字符串的查找与替换(只会模糊匹配字符串) //记得在字符串后加个回车键
    /string :向下查找 string 字符串,光标停留在光标以下部分找到的第一个 string

    ?string :向上查找 string 字符串,光标停留在光标以上部分找到的第一个 string

    n 键:重复前一个查找的操作

    N 键:反方向进行前一个查找操作

    # 在 N1 与 N2 行之间查找 string1,并用 string2 替换掉 string1

    :N1,N2s/string1/string2/g

    # 从文本第一行到文本最后一行查找 string1 ,并用 string2 替换掉 string1

    :1,$s/string1/string2/g

    # 从文本第一行到文本最后一行查找 string1 ,并提示是否用 string2 替换掉 string1

    :1,$s/string1/string2/gc

    :%s/^/string/g :在每一行的行首插入 string,^表示行首。

    :%s/$/string/g : 在每一行的行尾插入 string,$表示行尾。

  3. 文本部分内容的删除及复制和粘贴

    x 键:删除光标所占的字符

    X 键:删除光标的前一个字符

    N + x 键:从当前所占字符开始向后删除 N 个字符

    dd :删除光标所在行

    N + dd :删除从光标所在行开始向下的 N 行

    d1G :删除从文本第一行开始至光标所在行的所有内容

    dG :删除从光标所在行到文本最后一行的所有内容

    d$ :删除从光标所在处到所在行的最后一个字符(不包括回车符)

    d0 :删除从所在行第一个字符到光标所占字符前的所有内容

    yy :复制光标所在行

    N + yy :从光标所在行开始向下复制 N 行

    y1G :复制从光标所在行至文本第一行的所有内容

    yG :复制从光标所在行至文本最后一行的所有内容

    y0 :复制所在行第一列到光标所在列前的所有内容(粘贴时,在光标所占字符后开始插入内容)

    y$ :复制光标所在列到所在行最后一列的所有内容(粘贴时,在光标所占字符后开始插入内容)

    p 键:将已复制的内容在光标所在行与下一行之间插入

    P 键:将已复制的内容在光标所在行与上一行之间插入

    J 键:将所在行的回车键删除

    c 键:删除多行,例如删除从光标所在行往下的10行 -> 10cj

    u 键:恢复执行上一个操作时的状态

    . 键:重复上一个删除、粘贴的操作

编辑模式

可执行操作:编辑文本

# 注意看 Vim 界面左下角,—INSERT— 为文本插入模式,—REPLACE—为文本替换模式

# 按 Ins 键可在文本编辑模式和文本插入模式之间切换

进入模式的方式:

在命令模式中按 iIaAoOrR 中一个键即可进入

常用按键:

  1. 文本插入模式

i 键:从当前所占字符前开始插入字符

a 键:从当前所占字符后开始插入字符

o 键:在当前所在行的下一行插入一行空白行

I 键:在光标所在行的第一个非空格字符前开始插入字符

A 键:在光标所在行的最后一个字符后开始插入字符

O 键:在当前所在行的上一行插入一行空白行

有个小技巧,进入文本编辑模式之前,按下一个 数字 N,再按以上的六个键中的一个进入文本编辑模式,然后输入你想输入的字符串或值,然后退回到命令模式,你就发现 vim 帮你重复了 N 次你刚才输入的字符串或者值。

gi :快速跳转到你上次在本文档中编辑的位置,并进入插入模式

  1. 文本替换模式

r 键:只会替换光标所在字符一次,随后自动退出到命令模式

R 键:一直替换光标所在字符,按 Esc 键退出到命令模式,

底线命令模式

可执行操作:显示行号、保存文本、退出 Vim等

进入模式的方法:

  1. 在命令模式下按 :
  2. 在命令模式下按 /
  3. 在命令模式下按

常用命令:

# 这里的命令是在按 : 键进入底线命令模式后操作的,记得在命令最后加个回车键

# 有些命令需要确保你有权限修改文件,再执行以下命令

wq :保存文本并退出

q! :不保存文本并退出

set nu :显示文本行号

set nonu :不显示行号

w :将编辑的数据写入硬盘文件中

q :离开 Vim

ZZ :保存后离开。(不用进入底线命令模式,直接在命令模式按 ZZ 即可保存退出)

w[file1] :将编辑的数据保存到 file1 ,若没有 file1 ,Vim 会自动建好文件

r[file1] : 在编辑一个文本时,在光标所在行的下一行插入 file1 的文本内容

# 将 N1 到 N2 行的内容保存为 file1 这个文本

:N1,N2 w [file1]

!command :跳出 vim 执行命令 command ,命令执行结束后,按任意键回到 Vim

参考:《鸟哥的 Linux 私房菜》第三版

[这个概念很广义,我不知道该怎么形容那些符号]:


  1. [这个概念很广义,我不知道该怎么形容那些符号] ↩︎