zoukankan      html  css  js  c++  java
  • vim使用技巧整理

    vim操作非常多,这里只列出常用的,并且是具有代表性的。

    1、常用的Vim配置,在~/.vimrc中

        syntax on       支持语法高亮
        set nu          显示行号
        set nonu      不显示行号
        set ai          设置自动缩进
        set shiftwidth=4   设置自动缩进 4 个空格, 当然要设自动缩进先.
        set sts=4          即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.
        set tabstop=4      实际的 tab 即为 4 个空格, 而不是缺省的 8 个.
        set expandtab      在输入 tab 后, vim 用恰当的空格来填充这个 tab.
        set hls 打开搜索高亮

        set nohls 取消搜索高亮 

        set list : 显示特殊字符
        set nolist 

    2、跳转、插入、拷贝、删除、查找、替换

    (1)跳转
        按单词跳转:w向后跳,b向前跳,e跳转到单词尾
        在行内跳转:0跳转到行首,$跳转到行尾
        按行跳转:gg跳转到第一行,nG跳转到第n行,G跳转到最后一行
        多行跳转:ctrl f 向后跳一页,ctrl b 向前跳一页
                          ctrl d向后跳半页,ctrl u向前跳半页
    (2)插入
        a 在当前字符后插入, i 在当前字符前插入
        A 在当前行尾插入, I 在当前行首插入
        o 在当前行后创建新行插入, O 在当前行前一行创建新行插入
    (3)拷贝
        yw 拷贝当前单词
        y$ 拷贝当前字符到行尾的内容
        yy 拷贝整行
        使用p将拷贝内容粘贴到当前行的下一行,P为下一行
    (4)删除
        x 删除当前字符
        dw 删除当前单词
        d$或D 删除当前字符到行尾的内容 
        d0 删除当前字符到行首的内容
        dd 剪切整行,可以使用p命令拷贝
    (5)查找
        /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串
        / 表示向下查找, ? 表示向上查找;查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找
        /str,如果有空格则需要:/str str2/ 

    (6)替换

        单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S.
        :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
        :s/vivian/sky/g 替换当前行所有 vivian 为 sky
         :s/vivian/sky/c 替换当前行第一个 vivian 为 sky,并且提示用户确认
        :n,ms/vivian/sky/ 替换第n行开始到第m行中每一行的第一个 vivian 为 sky
        :n,+ms/vivian/sky/ 替换第n行开始到其后面m行每一行的第一个 vivian 为 sky
        :n,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有 vivian 为 sky
            n 为数字,若 n 为 .,表示从当前行开始到最后一行
        :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
        :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
            可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
        :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
        :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

    3、多文件编辑

    (1)打开多个文件
    在已打开的文件中分割窗口:
        :sp filename vim将分割出一个横向窗口, 并在该窗口中打开新文件.
        :vsp filename vim将在右边分割出一个窗口, 并在该窗口中打开新文件.
        如果:sp 或 :vsp没有指定文件,则在新窗口中打开原文件。
    命令行打开多个文件
        打开的两个文件上下窗口分布 : vim -o file1 file2
        打开的两个文件左右窗口分布 : vim -O file1 file2
    文件的切换和保存退出    
        ctrl+w w来在vim打开的多个窗口中切换.
        ctrl+w q来关闭多个窗口中当前的窗口.
        使用:qa关闭所有打开的文件,:wq保存所有打开的文件
    (2)多文件比较
    在diff命令可用时,使用vimdiff file1 file2进行文件比较,或 使用 vim -d file1 file2
    只显示差异的部分,左右窗口时可以同步滚动;
    相关操作命令:
        命令行模式先,使用 ]c 跳转到下一差一点,[c 反向跳转;
        将某个差异点中当前文件内容复制到另一文件里使用dp命令;
        将另一个文件的差异部分复制到当前行使用命令do命令;

    4、可视化操作

    (1)使用ctrl v进入可视化模式
        使用hjkl进行可视化块选择,可以连续选中多行多列进行统一的操作。
        可以使用的操作:~大小写转换,d 剪切, y 复制等
    (2)小技巧——对多行进行同一操作方法:
        ctrl v进行可视化模式,使用j或者k选中多行;
        I或者A进行插入模式,进行相应修改,$可以跳转到行尾;
        按两次Esc键以上操作会应用到选中的所有行。

    5、其它快捷操作

    (1)vim中去除空行或行末的^M:dos2unix ufile
    (2)快速复制命令,在插入模式下,ctrl y复制上一行同一位置的内容,ctrl e复制下一行内容
    (3)ctrl p 自动补全,ctrl n为向后搜索补全内容
    (4)使用 u 撤销上次的操作,ctrl+r恢复上次的撤销。 
    (5)打开文件时 +n 可以自动跳转到第n行
    (6) ~命令可以直接切换大小写,修改当前字符,可以直接修改可视化块
     
  • 相关阅读:
    Java基础之泛型——使用通配符类型参数(TryWildCard)
    Java基础之泛型——使用二叉树进行排序(TryBinaryTree)
    Java基础之泛型——使用泛型链表类型(TryGenericLinkedList)
    Java基础之序列化对象——反序列化对象(DeserializeObjects)
    Java基础之序列化对象——将对象写入到文件中(SerializeObjects)
    拷贝excel里的内容转为JSON的js代码
    asp.net 正则获取url参数
    vs2013给类添加默认注释
    日货EmEditor的使用小技巧
    express不是内部或外部命令
  • 原文地址:https://www.cnblogs.com/hancq/p/5310954.html
Copyright © 2011-2022 走看看