• Vim命令


    都快忘得差不多了,记记一些命令,遏制老年痴呆的趋势啊。

    命令模式下的一些操作

    t+字符 跳到该行当前位置后面最近一个‘字符’处,t之前可加数字,代表连续多少个字符。大写T则反方向
    f+字符	跳到该行当前位置后面最近一个‘字符’的前一个位置,功能同上。
    :数字	跳到第“数字”行
    gg	跳到文件第一行,前面加数字可以跳到指定行(G也行)
    G	跳到文件最后一行
    *	停留在一个单词上,搜索下一个此单词
    #	停留在一个单词上,搜索上一个此单词,与*相反
    g_	跳到行尾非空格处
    ^	功能与g_相反
    0	数字0,跳到行首
    $	跳到行末
    H	将光标跳到当前屏幕的起始行起始处,前面加数字可跳到相对第几行
    M	将光标跳到当前屏幕的中间行起始处,同上
    L	将光标跳到的当前屏幕的末行起始处,同上
    w	右移光标到下一个字的开头,前面可以加数字
    e	右移光标到下一个字的末尾
    ZZ	直接保存修改并退到终端
    A	切换到插入模式,并将光标移到行末
    yw	复制一个单词
    dw	删除当前的单词,中间可以夹带数字
    d$	从光标处删除到行末,包括光标处
    u	按一次恢复1次
    U	恢复该行的原始状态
    ctrl+r	撤销所做的恢复u或者U
    r	先按r,再按字符可以将光标位置改为所按字符
    R	进入替换模式,功能同r,只是不用每次都按r,输错还能按backspace
    cw	功能同dw,但是直接进入插入模式,且不会删除掉单词后面的空格,比较好用
    ce	功能同cw。c和d的功能一样,只是c会立刻进入插入模式
    /串	输入/,再输入字符串,可以向下查找,按n则跳到下一个。此时还可以:set ic忽略大小写,禁用忽略大小写:set noic
    ?	输入?,再输入字符串,可以向上查找,按n则跳到下一个。与/相反。
    ctrl+o	光标跳到你之前跳来的地方,可连续按
    ctrl+i	和o相反,当按下ctrl+o时可能需要用到这个
    ctrl+g	显示当前光标在文件中的位置
    %	括号匹配。当光标在某个括号上时,光标跳到匹配的括号处。
    :!命令	在vim编辑器内可以临时运行一些命令,命令显示完就回vim
    :w name	另存为。以路径及名字name保存当前文件,默认为当前目录。
    v	按v进入可视模式,移动光标选中一片区域,按d就删除这片区域,按w name也可以进行另存
    ctrl+v	进入可视块模式,可以选取一块区域,不用每行都选,是v的加强版
    :r file	在当前光标位置插入文件file的内容,:r其实表示要插入东西,可以:r !ls将结果给插入
    :e	重新读取当前文件
    q+c    c可以是任意的字符/字母?启用记录模式,记录期间所有的操作(尽量简单吧),并名称保存为c。退出按q。
    @+c    在记录模式记录的名称c,只要按下@c就可以重播了,用于批量处理。可以直接按@一直播放。
    

    插入模式下还有一些淫技可以琢磨

    ctrl+y	插入光标上同列的字符
    ctrl+p	自动补全
    

    切换到插入模式的几种方式

    i 在光标左侧插入正文
    a 在光标右侧插入正文
    o 在光标所在行的下一行增添新行
    O 在光标所在行的上一行增添新行
    I 在光标所在行的开头插入
    A 在光标所在行的末尾插入
    

    控制屏幕滚动的一些操作

    ctrl+f	相当于page down
    ctrl+b	相当于page up
    ctrl+a	把光标下的整个数字+1
    Ctrl + e 向下滚动一行
    Ctrl + y 向上滚动一行
    Ctrl + d 向下滚动半屏
    Ctrl + u 向上滚动半屏
    Ctrl + f 向下滚动一屏
    Ctrl + b 向上滚动一屏
    

    很简单的文本替换

    :s/old/new	只替换本行中的第一处
    :s/old/new/g	只将本行匹配处进行替换
    :%s/old/new/g	全文件进行替换
    :%s/old/new/gc	全文件进行替换,但是替换前进行提示是否替换
    :2,8s/old/new/g	仅将2~8行进行替换。尾部的g表示global,i表示ignore大小写,c表示每次都询问
    

    奇怪的格式:

    :%!xxd	将文本变成16进制形式显示,就不告诉你怎么转回来~
    

    单个屏不够看了,分屏操作:

    vim -on file1 file2
    o为小写字母,表示上下分屏,n是分屏的个数
    
    vim -On file1 file2
    O为大写字母,表示左右分屏,n是分屏的个数
    
    :only	
    关闭当前文件的其他分屏
    
    ctrl + w + h
    移动到光标左边的窗口(h可替换为jkl等)
    
    ctrl + w + q
    关闭当前分屏窗口(q可替换为c),功能同:q
    
    ctrl + w +v 
    对当前屏幕进行分屏
    

    简单的正则表达式

    (入门看这个就行了	http://www.jianshu.com/p/a66fc32bb879)
    (这是简单的测试站点 http://www.regex.alf.nu/3)
    .	匹配换行符以外的任意字符
    ^	匹配字符串的开始位置
    $	匹配字符串的结束位置
    *	匹配前面的子表达式零次或多次,等价于{0,}
    +	匹配前面的子表达式一次或多次,等价于{1,}
    ?	匹配前面的子表达式零次或一次,等价于{0,1}
    	转义符,将特殊字符进行转义
    []	[abc]字符集合,匹配所包含的任意一个字符
    [^abc]负值字符集合,匹配未包含的任意字符
    [a-z] 字符范围,匹配指定范围内的任意字符
    ()	两个字符一起使用,用于创建一个用于匹配的子串,也叫分组
    {}	{n}匹配确定的n次
    {n,}至少匹配n次,等价于"*"
    {n,m}最少匹配n次且最多匹配m次(其中n<=m)
    
    $	匹配行尾
    ^	匹配行首
    <	匹配单词词首
    >	匹配单词词尾
    	单词边界,同<
    B	非单词边界,同 >
    d	数字字符,同 [0-9]
    D	非数字字符,同[^0-9]
    s	空白字符,同 [ 	
    
    fv]
    S	非空白字符,同 [^	
    
    fv]
    w	字母数字字符,同 [a-zA-Z0-9_]
    W	非字母数字字符,同 [^a-zA-Z0-9_]
    		Tab,同0x09
    
    	回车符,同0x0D
    
    	换行符,同0x0A
    f	换页符
    v	垂直制表符,同ox0b
    x	十六进制,例如“x41”匹配“A”
    u	Unicode字符。例如,u00A9匹配版权符号
    

    奇淫技巧

    1、批量插入。用途举例:markdown的表格常需要在同一列插入|符号。

    esc       切到命令模式
    ctrl+v    选中多行(无需从行首到行尾)
    shift+a   切换到插入模式,用shift+i也行
    ...       敲很多的字符进去
    esc       见证奇迹
    

    2、大小写转换

    esc       切到命令模式
    v           选中需要转换的内容
    ~           大小写反转
    

    编码问题

    参考以下站点一般可解决。
    http://edyfox.codecarver.org/html/vim_fileencodings_detection.html
    http://www.vimer.cn/2009/10/87.html

  • 相关阅读:
    python 按行读取判断是否为空
    python获取目录下所有文件
    Kolakoski
    最小背包问题
    python 求第k个最大数
    python 求最大子序列
    爬取数据的程序
    文件对比程序
    trsd_extract_EDSD_new
    tred_extract_EDED_new
  • 原文地址:https://www.cnblogs.com/xcw0754/p/5201221.html
Copyright © 2020-2023  润新知