V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
1536011373
V2EX  ›  Linux

常用 Vi 命令

  •  
  •   1536011373 · 2017-09-18 22:22:00 +08:00 · 4756 次点击
    这是一个创建于 2621 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Vi 编辑器有编辑模式和命令模式两种,顾名思义编辑模式可以完成对文本的编辑功能,命令模式下可以执行对文件的操作命令。通过“ vi filename ”打开文件会默认进入命令模式。从命令模式切换到编辑模式使用” A ”,” O ”,” I ”键(不区分大小写)。从编辑模式切换到命令模式按键盘左上角“ Esc ”键。
    下面整理了常用的几个 Vi 命令(注意大小写):
    Ctrl+u 向文件首翻半屏
    Ctrl+b 向文件首翻一屏
    Ctrl+d 向文件尾翻半屏
    Ctrl+f 向文件尾翻一屏
    Esc 从编辑模式切换到命令模式
    ZZ 命令模式下保存当前文件所做的修改后退出 Vi
    dd 删除光标所在行整行
    P (注意大写)粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方
    p (注意小写)粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方
    u 撤销上一个编辑操作
    Ctrl+r 恢复即回退前一个命令
    :wq 执行保存退出
    :w 执行保存
    :w! 执行强制保存
    :q 执行退出 Vi
    :q! 执行强制退出 Vi
    :set number 最左端显示行号
    :set nonumber 最左端不显示行号

    原文地址: https://mp.weixin.qq.com/s?__biz=MzUzMzE1ODIxMw==&mid=2247483763&idx=1&sn=39eec3ec8f44f257d0d3084f40d10e12&chksm=faa90159cdde884f7b630840534f8ec9d300f7bd69207a9b8928e88432142dfdf7cfc38812d3#rd
    26 条回复    2017-10-02 21:44:09 +08:00
    nyse
        1
    nyse  
       2017-09-18 22:27:43 +08:00
    我。。。常年只用:

    I ESC : W Q 方向键 回车
    rogwan
        2
    rogwan  
       2017-09-18 22:46:27 +08:00
    :wq!

    基本都是靠这条结束 233333
    ynyounuo
        3
    ynyounuo  
       2017-09-18 22:47:52 +08:00
    额 - - 好水
    16500682
        4
    16500682  
       2017-09-18 23:06:07 +08:00 via Android
    v2 什么时候有这些内容了
    1536011373
        5
    1536011373  
    OP
       2017-09-18 23:07:06 +08:00
    哈哈不喜勿喷,求放过
    AEANWspPmj3FUhDc
        6
    AEANWspPmj3FUhDc  
       2017-09-18 23:54:28 +08:00
    水的不够高级。
    我比较喜欢这条命令。
    :!shutdown /s /t 0
    xlui
        7
    xlui  
       2017-09-19 00:14:53 +08:00 via Android
    这....也太水了吧
    sola97
        8
    sola97  
       2017-09-19 00:16:47 +08:00
    我比较喜欢这条命令。
    sudo rm -rf /
    wellsc
        9
    wellsc  
       2017-09-19 00:24:09 +08:00
    * `cw`: 替换从光标所在位置后到一个单词结尾的字符
    * `g_`: 到本行最后一个不是 blank 字符的位置。
    * `e` : 到下一个单词的结尾。
    * `.` : (小数点) 可以重复上一次的命令
    * `%` : 匹配括号移动,包括 `(`, `{`, `[`.
    * `gU`: (变大写)
    * `gu`: (变小写)
    * `3fa`: 在当前行查找第三个出现的 `a` 。
    * `dt"`: 删除所有的内容,直到遇到双引号 `"` 。
    * 自动提示,在 Insert 模式下,你可以输入一个词的开头,然后按 `<C-n>` 或 `<C-p>` 就行了
    * 可视化选择模式 `<C-v>` 的自动给缩进: `=` ,左右缩进: `<` 或 `>` , 把所有的行连接起来变成一行: `J`
    * 分屏: `:split` 和 `vsplit`
    EmmaSwan
        10
    EmmaSwan  
       2017-09-19 03:34:22 +08:00
    楼主只是来展示头像的,可你们谁也没在意
    aheadlead
        11
    aheadlead  
       2017-09-19 07:25:16 +08:00
    @wellsc 这些命令的确好用 每天都不可或缺
    aheadlead
        12
    aheadlead  
       2017-09-19 07:29:27 +08:00   ❤️ 1
    @wellsc 针对那个 3fa 想提一下 bash 里面的类似操作(可能 emacs 就是这么操作的吧)

    先按 ctrl-],再按 a
    等同于找下一个 a

    先按 esc, 再按 ctrl-],再按 a
    等同于找前一个 a

    在上面的“连击必杀技”前面还可以加上这个:
    先按 esc,再按一个数字 N (可以多位数)
    表示随后的操作重复 N 次
    yongSir
        13
    yongSir  
       2017-09-19 09:00:19 +08:00
    我靠 是 V 站啊 我以为走错了

    目测一大堆 emacs 党要来了
    linxl
        14
    linxl  
       2017-09-19 09:24:29 +08:00
    qwer 一套带走
    bintianbaihua
        15
    bintianbaihua  
       2017-09-19 09:30:04 +08:00
    感觉好水
    algery
        16
    algery  
       2017-09-19 09:34:05 +08:00
    想写文章的心是--好的
    angusun
        17
    angusun  
       2017-09-19 09:38:31 +08:00
    还有 visual 模式.
    Immortal
        18
    Immortal  
       2017-09-19 09:41:11 +08:00
    推荐 vim 实用技巧 一书
    1536011373
        19
    1536011373  
    OP
       2017-09-19 09:44:19 +08:00
    @EmmaSwan 被你发现了,最近尝试着写文章,欢迎大家扫描我的头像关注我,让我能坚持写下去哈哈
    kkxxxxxxx
        21
    kkxxxxxxx  
       2017-09-19 11:10:55 +08:00
    看一遍忘一遍
    Jakesoft
        22
    Jakesoft  
       2017-09-19 12:14:18 +08:00 via iPhone
    竟然有 12 收藏,你们的“被动学习”能力是不是太强了?

    好歹来点 virtual mode,:vsp, :noh, sudo tee, 查找,替换吧
    另外 :set nu,:set non 是设置 /取消行号的简写
    wenbinwu
        23
    wenbinwu  
       2017-09-19 13:46:41 +08:00
    ggdG
    seers
        24
    seers  
       2017-09-19 15:37:20 +08:00
    我比较喜欢 O,o,dd,gg,:%s,和 “ . ”
    Xrong
        25
    Xrong  
       2017-09-19 15:51:11 +08:00   ❤️ 1
    复制光标所在的单词:yaw,使用前面复制的单词替换当前光标所在的单词:viwp
    breakwall
        26
    breakwall  
       2017-10-02 21:44:09 +08:00 via iPhone
    无非 w q r dd p i
    还有光标定位 jkhl

    别的我也没用过

    不过越用越喜欢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5257 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.