vim操作

    xiaoxiao2023-10-13  157

    vim的四种模式

    一般模式 normal编辑模式 insert命令模式 command可视模式 visual

    1、Normal 模式

    vim进入时的默认模式,对于一个编辑器而言,大部分的操作是查看,默认是Normal模式很合理

    光标移动

    h 左移

    l 右移

    k 向上

    j 向下

    w 移动光标到下一个单词开头

    e 移动光标到下一个单词结尾

    b 移动光标到上一个单词开头

    ^ 移动光标到本行的最开头字符处

    $ 移动光标到本行末尾

    H 移动光标到屏幕首行

    M 移动光标到屏幕中间行

    L 移动光标到屏幕尾行

    gg 移动到文档首行

    G 移动到文档尾行

    :n 移动到第n行

    ctrl + f 向下翻页 page down

    ctrl + b 向上翻页 page up

    ctrl + d 向下翻半页

    ctrl + u 向上翻半页

    ctrl + e 向上翻一行

    ctrl + y 向下翻一行

    [[ 转到上一个位于第一列的 {

    ]] 转到下一个位于第一列的 }

    { 转到上一个空行

    } 转到下一个空行

    f[str] 行首调到str字符位置,; 下一个字符

    '' 两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置

    '. 一单一点 此命令相当好使, 它移动光标到上一次的修改行

    `. 一倒引一点 此命令相当强大, 它移动光标到上一次的修改点

    复制、粘贴、删除、撤销、重复操作 ** y 表示拷贝, d 表示删除, p 表示粘贴,u U表示撤销**

    yy 表示拷贝光标所在行

    +y 复制到系统粘贴板,可以跨文件粘贴

    yw 表示拷贝从当前光标到光标所在单词结尾的内容

    y0 表示拷贝从当前光标到光标所在行首的内容

    y$ 表示拷贝从当前光标到光标所在行尾的内容

    p 粘贴到光标下一行

    P 粘贴到光标上一行

    dd 表示删除光标所在行

    D 表示删除从当前光标到光标所在行尾的内容

    X 删除光标之前一个字符

    x 删除光标之后的一个字符

    xp 交换光标与其之后的字符位置

    ddp 交换光标所在行与下一行位置

    J 合并光标行和下一行

    u 撤销到上一步操作

    U 行撤销

    . 重复上一步操作

    特殊编辑

    ga 显示光标所指字符的encoding 编码,比如ASCII码guw 光标所在单词光标后的字符小写gUw 光标所在单词光标后的字符大写

    2、Command 模式

    查找

    /str 表示向下查找?str 表示向上查找n 查找到之后,向下一个匹配处N 查找到之后,向上一个匹配处

    替换

    :[addr]s/源字符串/目的字符串/[option]:%s/源字符串/目的字符串/g 全局替换[addr] 表示检索范围,省略时表示当前行 “1,20” :表示从第1行到20行;“%” :表示整个文件,同“1,$”;“. ,$” :从当前行到文件尾; s : 表示替换操作[option] : 表示操作类型 g 表示全局替换;c 表示进行确认p 表示替代结果逐行显示(Ctrl + L恢复屏幕);省略option时仅对每行第一个匹配串进行替换;如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t

    3、Visual 模式

    Visual 模式用于选择多行文本或文本块,开头结尾自己去定,象用鼠标选一样 v 单行选择V 多行选择VG 选中当前行到尾行Vgg 选中当前行到首行va{ 选中{}中间内容,包括{}va( 选中()中间内容vi< 选中<>中间内容vi[ 选中[]中间内容vit 选中中间的内容vi" 选中""中间内容vi' 选中’'中间的内容vis 选中一个句子vib 选中一个blockviw 选中一个单词vip 选中一个段落

    可以配合复制、删除操作

    4、Insert 模式

    i、I (insert) i 光标前插入I 光标当前行首插入 a、A(append) a 光标后插入A 光标当前行尾插入 o、O(open new line) o 光标当前行下一行插入O 光标当前行上一行插入 r、R(replace) r 替换光标处的一个字符R 替换光标所在行字符 c(change) ci( 修改()内部信息ci" 修改 “” 内部信息等成对出现符号内容 s、S s 删除光标所在的字符并进入插入模式S 删除光标所在行并进入插入模式

    5、vim macro批量处理文件内容

    q* 开始录制宏q 停止录制宏@* 执行宏@@ 重复执行上次的@*命令一次

    以上命令均是在VIM的一般模式(Normal)下使用的,其中*代表一个数字和单词字符,正则表达式规则是:[0-9a-zA-Z]

    :help recording 查看宏帮助

    6、Visual模式下使用Normal模式命令

    visual模式下进入命令模式:normal I" 选中行首插入":normal A" 选中行为插入"ctrl + p 命令模式重复上一次命令

    7、数字与命令

    在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行

    号定位. 如:5yy[y5y] 表示拷贝光标以下 5 行5dd[d5d] 表示删除光标以下 5 行:12,24y 表示拷贝第12行到第24行之间的内容:12,y 表示拷贝第12行到光标所在行之间的内容:,24y 表示拷贝光标所在行到第24行之间的内容. 删除类似5fx 表示查找光标后第 5 个 x 字符5w(e) 移动光标到下五个单词的头部(尾部).

    8、自动完成与路径设定

    在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符. ctrl+p(ctrl + n) 在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的所有文件中进行匹配ctrl + x + l 在编辑模式中, 整行补齐, 但是仅在本窗口中出现的文档中进行匹配ctrl + x + f 在编辑模式中, 这个命令表示补齐文件名. 如输入: /usr/local/tom 后再输入此命令则它会自动匹配出:/usr/local/tomcat/abbr 即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个字符串. 比如编写java文件的常常输入 System.out.println, 这很是麻烦, 所以应该用缩写来减少敲字. 可以这么做 :abbr flask from flask import Flask以后在输入flask后再输入其他非字母符号, 它就会自动扩展为from flask import Flask可以定义一些模板
    最新回复(0)