zoukankan      html  css  js  c++  java
  • *NIX工具使用(1) Vim notes

    Vim notes
    2006-12-01 23:10
    ///很简单的一些基本功能

    滚屏
    CTRL-U    使文本向下滚动半屏。
    CTRL-D  使文本向下滚动半屏。

    CTRL-F    使文本向前滚动一整屏。(实际上是整屏去两行)
    CTRL-B    使文本向后滚动一整屏。

    CTRL-E  使文本向上滚动一行。
    CTRL-F    使文本向下滚动一行。(如果在使用windows兼容的映射键,它可能被映射为重做而
        不是向下滚屏)

    zz    会把当前行置为屏幕正中央
    zt    会把当前行置为屏幕顶端。
    zb    会把当前行置为屏幕底端。

    z字取其象形意义模拟一张纸的折叠及变形位置重置,广泛用作折叠类命令的前辍

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    p    将最后一次删除(包括dd和x删除的)的内容置入光标之后  (cut->paste)

    r    和一个字符替换光标所在位置的字符。
    R    连续替换多个字符,直到按ESC回到普通模式

    cw    改变一个单字/单词的部分或者全部

          使用c指令的其他更改类命令:
            操作格式是∶    [number]   c   object      
            或者        c    [number]   object
              object: w 代表单字/单词,$代表行末等等。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ctrl-g             显示当前光标所在位置和文件状态信息
    Shift-G            将光标跳转至文件最后一行
    行号 + Shift-G  将光标移动至该行号代表的行。

    CTRL-G        显示文件名、当前行号、总的行数、当前行所在文件中的百分比、当前列.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    查找:
        /xxx(?xxx)    向后查找xxx(向前);
        n        在同一方向上重复上一次,其前可以带一个数字
        N        反方向重复上一次

        %        查找配对的括号 )、]、}

    注:    1、字符.*[]^%/?~$有特殊意义,如果要找的东西包括这些内容,要在该字符前加\

        4、输入/后(或者输入/和要查找字符串的首字符后),按上下箭头键可以在查找历史
           中查找过的搜索。

           注: 以":"开始的命令也有一个历史记录. 它让你找到用过的冒号命令重复执行
            它. 这两个命令历史记录是相互独立的.

              5、如果要查的词word是一个不容易输入且易出错的词,一个便捷的方法是把光标定
           位于这个word上, 然后按下"*"键。Vim将会取当前光标所在的word并将它作用目
           标字符串进行搜索。"#"命令是"*"的反向版. 还可以在这两个命令前加一个命令
           计数。

              6、查找以word作为词的末尾时使用“/word\>”。"\"是一个特殊的记法, 它只匹配
           一个word的结束处.近似地,"\"匹配到一个word的开始处。所以如果查找作为一
           个独立的单词的word,可以用"/\<word\>",这样就不会匹配"there"和"soothe"。

              7、关于搜索结果的高亮显示等,参见下面的 :set xxx 命令。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    替换:
        :s/old/new    将当前行内 第一个 old 替换为new

        :s/old/new/g    将当前行内 所有   old 替换为new
        :s/\<aa\>/bb/g  将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词

        :#,#s/old/new/g    将两个号码代表的行号之间的所有 old 替换为 new
          :12,23s/^/#/    将从12行到23行的行首加入 # 字符

        :%s/old/new/g    将 文件内 所有 old 替换为 new
        :%s/old/new/gc    将 文件内 所有 old 替换为 new,每个替换时询问

        :%s= *$==       将所有行尾多余的空格删除
        :g/^\s*$/d      将所有不包含字符(空格也不包含)的空行删除.

    $         将光标移动到本行的末尾。

    :!command    执行一个外部命令 command
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    文件读写:
        :w FILENAME    当前编辑的文件保存到名为 FILENAME 的文件中
        :#,#w FILENAME    当前编辑的文件的两个行号之间的内容保存到名为 FILENAME 的文件中

        :r FILENAME    提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面

    :set xxx    设置 xxx 选项,如

        :set ic   (ignore case)忽略大小写
        :set ignorecase    忽略大小写
        :set noignorecase

        :set hls    (highlight search)高亮显示搜索结果
        :set hlsearch   同上
        :set nohlsearch 关闭高亮搜索

        : nohlsearch    只去掉当前的高亮显示,它只是暂时关闭了该语法项高亮显示,
                一旦你再次执行搜索指令,被匹配到的目标就又会以高亮形式显
                示了

        :set is     (incsearch)在键入目标字符串的过程中Vim就同时开始了搜索工作
        :set incsearch    同上

        :set nowrapscan    使搜索过程在文件结束时就停止。反向时到达文件开始时停止。
                wrapscan选项的默认值是开。

          和查找“/”命令配合,可以使所有要查的内容以高亮显示

        :set number    在每行的前面显示一个行号。
        :set nonumber    关闭该选项

        注:no放置在boolean选项前面表示关闭该选项,如"number"是一个二值选项

        :set ruler    在Vim窗口的右下角显示当前光标位置

        网络上有很多文档, 以Vim查看时如果set number, 则每行会超出屏幕少许,从而被折
    叠放到下一行上, 看起来很不方便, 这时就可以使用:set nonumber ruler, 如果还是坚持
    想打开number, 可以考虑重新格式化文本, 请参考|gq|

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    在线帮助
        - 按下 <HELP> 键 (如果键盘上有的话)
        - 按下 <F1> 键 (如果键盘上有的话)
        - 输入    :help <回车>
          提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助,如:help w

                   第八讲∶创建一个启动脚本

                  ** 启用vim的功能 **

    Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
    功能,您得创建一个vimrc文件。

      1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶

         :edit ~/.vimrc        这是Unix系统所使用的命令
         :edit $VIM/_vimrc        这是Windows系统所使用的命令

      2. 接着导入vimrc范例文件∶

         :read $VIMRUNTIME/vimrc_example.vim

      3. 保存文件,命令为∶

         :w

      在下次您启动vim的时候,编辑器就会有了语法高亮的功能。您可以继续把您喜
      欢的其它功能设置添加到这个vimrc文件中。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    移动命令:规律:一个命令的大写字母形式会做同样的事情,但是方向相反

    $        命令将光标移动到当前行行尾.
    $#        接受一个计数,表示移动到后面第n行行尾

    ^        命令将光标移动到当前行的第一个非空白字符上
    0        总是把光标移动到当前行的第一个字符上

    一个最有用的移动命令是单字符搜索命令:
    ;        重复.
    ,        也是重复同样的命令, 但是方向与原命令的方向相反

    总结移动命令:
            无论如何, 这4个命令都不会使光标跑到其它行上去. 即使当前的句子还没有结束

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    fx        在当前行上查找下一个字符x(光标停留在被搜索字符上). "f"意为"find"
    Fx        在当前行上查找上一个字符x(光标停留在被搜索字符上)
    nf(F)x        移动到下(上)第n个x字符的位置

    tx        同fx命令, 光标停留在被搜索字符之前的一个字符上. "t"意为"To"
    Tx        同Fx命令, 光标停留在被搜索字符之前的一个字符上

    注:    x也可以是一个汉字
        重复命令 ( ; 和 , )也可以用于此处

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    移动到指定行

    G    把光标定位到最后一行上
    #G    把光标定位到由#指定的行上.
        (对编译时转到出错的地方去很有用。还有更好的方法遍历错误信息列表,可参考:make命令的相关信息)

    gg    跳转到第一行的快捷的方法。1G效果也是一样,但是敲起来就没那么顺手了

    50%    把光标定位在文件的中间,...
       
       
    如果只是想移动到目前显示在屏幕上的那些行,则下图展示了达到这一目标的几个命令:
            +---------------------------+
        H -->     | text sample text         |
            | sample text             |
            | text sample text         |
            | sample text             |
        M -->     | text sample text         |
            | sample text             |
            | text sample text         |
            | sample text             |
        L -->     | text sample text         |
            +---------------------------+
        "H"意为Home, "M"为Middle, "L"为Last.
  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/cutepig/p/810407.html
Copyright © 2011-2022 走看看