• Linux vi 中移动光标 命令


    移动光标

    上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行
    下:j nj:向下移动n行
    左:h nh:向左移动n列
    右:l nl:向右移动n列

    w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上
    b:与w相反
    e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上
    ge:与e相反

    $:移动光标到行尾 n$:移动到第n行的行尾
    0(Num):移动光标到行首
    ^:移动光标到行首第一个非空字符上去

    f<a>:移动光标到当前行的字符a上,nf<a>移动光标到当前行的第n个a字符上
    F:相反

    %:移动到与制匹配的括号上去(),{},[],<>等。

    nG:移动到第n行上 G:到最后一行

    CTRL+G 得到当前光标在文件中的位置

    向前翻页:CTRL+F
    向下移动半屏:CTRL+G
    向后翻页:CTRL+B

    存盘:
    :q! :不存盘退出
    :e! :放弃修改文件内容,重新载入该文件编辑
    :wq :存盘退出

    dw:删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw
    dnw:删除n个单词
    dne:也可,只是删除到单词尾
    dnl:向右删除n个字母
    dnh:向左删除n个字母
    dnj:向下删除n行
    dnk:向上删除n行
    d$:删除当前光标到改行的行尾的字母
    dd:删除一行
    cnw[word]:将n个word改变为word
    cc:改变整行
    C$:改变到行尾

    J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了.
    u: 撤销前一次的操作
    shif+u(U):撤销对该行的所有操作。

    :set showmode :设置显示工作模式

    o:在当前行的下面另起一行
    O(shift+o):在当前行的上面另起一行

    nk或nj:光标向上或向下移n行,n为数字
    an!【ESC】:在行后面加n个感叹号(!)
    nx:执行n次x(删除)操作

    ZZ:保存当前文档并退出VIM

    :help :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。
    :help subject :看某一主题的帮助,ZZ 退出帮助

    :set number / set nonumber :显示/不显示行号
    :set ruler /set noruler:显示/不显示标尺

    /pattern 正方向搜索一个字符模式
    ?pattern 反方向搜索一个字符模式
    然后按n 继续向下找

    把光标放到某个单词上面,然后按×号键,表示查找这个单词
    查找整个单词:/<word>

    :set hlsearch 高亮显示查找到的单词
    :set nohlsearch 关闭改功能

    m[a-z]:在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处

    r:替换当前字符
    nr字符:替换当前n个字符

    查找替换:
    way1:
    /【word】 :查找某个word
    cw【newword】:替换为新word
    n: 继续查找
    .: 执行替换

    way2:
    :s/string1/string2/g:在一行中将string1替换为string2,g表示执行 用c表示需要确认
    :num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2
    :1,$ s/string1/string2/g:在全文中将string1替换为string2


    v:进入visual 模式
    【ESC】退出
    V:shift+v 进入行的visual 模式
    CTRL+V:进如块操作模式用o和O改变选择的边的大小。

    粘贴:p,这是粘贴用x或d删除的文本
    复制:
    ynw:复制n个单词
    yy:复制一行
    ynl:复制n个字符
    y$:复制当前光标至行尾处
    nyy:拷贝n行
    完了用p粘贴

    :split:分割一个窗口
    :split file.c :为另一个文件file.c分隔窗口
    :nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数
    CTRL+W在窗口中切换
    :close:关闭当前窗口

    在所有行插入相同的内容如include<,操作方法如下:
    将光标移到开始插入的位置,按CTRL+V进入VISUAL模式,选择好模块后
    按I(shift+i),后插入要插入的文本,按[ESC]完成。

    :read file.c 将文件file.c的内容插入到当前光标所在的下面
    :0read file.c 将文件file.c的内容插入到当前文件的开始处(第0行)
    :nread file.c 将文件file.c的内容插入到当前文件的第n行后面
    :read !cmd :将外部命令cmd的输出插如到当前光标所在的下面

    :n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去

    CTRL+L刷新屏幕
    shift + < 左移一行
    shift + > 右移一行

    u: undo
    CTRL+R: re-do
    J: 合并一行
    CTRL+p 自动完成功能
    CTRL+g 查看当前文件全路径

    q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。
    用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].


    movement by screens

    ctrl + F - 向前滚动一屏,光标移动到下一屏的第一行

    ctrl + B - 向后滚动一屏,光标移动到上一屏的最后一行

    ctrl + D - 向前滚动半屏,光标移动到屏幕中间一行

    ctrl + U - 向后滚动半屏,光标移动到屏幕中间一行

    ctrl + E - 向前滚动一行,光标位置保持不变

    ctrl + Y - 向后滚动一行,光标位置保持不变

    如果想滚动屏幕但却不希望移动光标的位置,可以使用 z 命令。

    zENTER - 滚动屏幕使光标所在行移动到屏幕第一行

    z.(点号) - 滚动屏幕使光标所在行移动到屏幕中间

    z-(减号) - 滚动屏幕使光标所在行移动到屏幕最后一行

    在 z 命令前添加 n 前缀表示把第 n 行移动到屏幕的相应位置,如 200zENTER 表示把第 200 行移动到屏幕第一行。

    有时系统中会出现一些系统消息影响你的编辑工作,这时使用命令 ctrl + L 可以使 vi 刷新屏幕。

    H - 光标移动到当前屏的第一行

    M - 光标移动到当前屏的中间一行

    L - 光标移动到当前屏的最后一行

    nH - 光标移动到当前屏从第一行开始向下的第 n 行

    nL - 光标移动到当前屏从最后一行开始向上的第 n 行

    ENTER、+ - 光标移动到下一行的第一个字符

    -(减号) - 光标移动到上一行的第一个字符

    上面三个命令把光标移动到一行中第一个不是空白或 tab 字符的位置。

    ^ - 光标移动到行内第一个非空白的字符处

    0 - 光标移动到行内的第一个字符处,包括空白

    n| - 光标移动到当前行的第 n 个字符处

    movement by text blocks

    e - 光标移动到单词末尾

    E - 光标移动到单词末尾,忽略标点

    ( - 光标移动到当前句的开头

    ) - 光标移动到下一句的开头

    {- 光标移动到当前段落的开头

    } - 光标移动到下一段落的开头

    [[ -光标 移动到当前 section 的开头

    ]] -光标 移动到下一 section 的开头

    寻找句子的结尾,vi 查找标点:? , . !。有两种情况 vi 认为是句子的结尾,上述标点后面紧跟两个以上的空格,或是一行的最后一个非空白字符为上述标点中的一个。

    movement by searchs

    /pattern - 从光标所在位置开始,向文件的结尾搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处

    ?pattern - 从光标所在位置开始,向文件的开头搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处

    n - 在同一个方向搜索下一个匹配的 pattern

    N - 在相反的方向搜索下一个匹配的 pattern

    /ENTER - 效果同命令 n

    ?ENTER - 效果同命令 N

    set 选项 wrapscan 设置是否循环搜索。如果开启 wrapscan 选项,当搜索到最后一个 pattern 后则会从文件的开头或结尾继续搜索,如果关闭 wrapscan 选项,搜索到最后一个 pattern 后会显示一个错误消息。

    行内搜索

    下面这些命令仅在当前行执行搜索,不会把光标移动到其他行。( 以下命令中的 x 可以为任何字符 )

    fx - 从光标所在处向后查找字符 x,并把光标移动到字符 x 上

    Fx - 从光标所在处向前查找字符 x,并把光标移动到字符 x 上

    tx - 从光标所在处向后查找字符 x,并把光标移动到 x 前一个字符上

    Tx - 从光标开始处向前查找字符 x,并把光标移动到 x 后一个字符上

    ; - 在同一个方向重复执行前一个行内搜索命令

    , - 在相反方向重复执行前一个行内搜索命令

    :set nu 显示行号,:set nonu 不显示行号。命令 ctrl + G 会使 vi 在屏幕的最下方显示如下信息:当前行号,文件的行数,当前显示的行数占文件总行数的百分比。

    ``(反引号) - 光标移回上一次光标移动之前光标所在的位置。如果执行了一些编辑后使用 G 命令移动光标,那么 `` 会把光标移回执行编辑的位置;如果刚执行过搜索,`` 则会把光标移回开始搜索时光标所在位置。

    ''(两个单引号) - 光标移回上一次光标移动之前光标所在行的第一个字符处

    光标移动: 
    zENTER - 滚动屏幕使光标所在行移动到屏幕第一行 
    z.(点号) - 滚动屏幕使光标所在行移动到屏幕中间 
    z-(减号) - 滚动屏幕使光标所在行移动到屏幕最后一行 

    行内搜索: 
    fx - 从光标所在处向后查找字符 x,并把光标移动到字符 x 上 
    Fx - 从光标所在处向前查找字符 x,并把光标移动到字符 x 上 
    tx - 从光标所在处向后查找字符 x,并把光标移动到 x 前一个字符上 
    Tx - 从光标开始处向前查找字符 x,并把光标移动到 x 后一个字符上 
    ; - 在同一个方向重复执行前一个行内搜索命令 
    , - 在相反方向重复执行前一个行内搜索命令 

  • 相关阅读:
    Flex【原创】移动设备相册图片浏览功能
    Flex SharedObject
    Flex Mobile applicationDPI 自适应
    Flex4.6【原创】移动设备拖曳、缩放、旋转手势并用(避免冲突)
    Flex Copy & Clone
    FlashBuilder 无法调试问题
    Flex【原创】惯性定位效果
    C#播放声音的两个方法 + 流读写文件
    ArrayList
    HDOJ1724椭圆
  • 原文地址:https://www.cnblogs.com/timssd/p/3996758.html
Copyright © 2020-2023  润新知