zoukankan      html  css  js  c++  java
  • vi/vim常用命令总结

    vim是vi的升级模式,完全兼容vi

    解决vim打开中文乱码问题

    编辑/etc/vim/vimrc配置文件,添加下面的内容:
    '''
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    '''
    

    命令模式

    - 搜索替换
        /word   向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
        ?word   向光标之上寻找一个字符串名称为 word 的字符串。
        n       这个 n 是英文按键。代表重复前一个搜寻的动作。
        N       这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。
        :n1,n2s/word1/word2/g   
                n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !
                举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
                『:100,200s/vbird/VBIRD/g』。(常用)
        :1,$s/word1/word2/g 或 :%s/word1/word2/g 	
                从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
        :1,$s/word1/word2/gc 或 :%s/word1/word2/gc 	
                从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 
                是否需要取代!(常用)
    
    - 删除、复制与贴
        x, X 	在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 
                亦即是退格键) (常用)
        nx      n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
        dd      删除游标所在的那一整行(常用)
        ndd     n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
        d1G     删除光标所在到第一行的所有数据
        dG      删除光标所在到最后一行的所有数据
        d$      删除游标所在处,到该行的最后一个字符
        d0      那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
        yy      复制游标所在的那一行(常用)
        nyy     n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
        y1G     复制游标所在行到第一行的所有数据
        yG      复制游标所在行到最后一行的所有数据
        y0      复制光标所在的那个字符到该行行首的所有数据
        y$      复制光标所在的那个字符到该行行尾的所有数据
        p, P    p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。
                则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
        J       将光标所在行与下一行的数据结合成同一行
        c       重复删除多个数据,例如向下删除 10 行,[ 10cj ]
        u       复原前一个动作。(常用)
        [Ctrl]+r 重做上一个动作。(常用)
        .(点)   思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
    

    一般模式切换到编辑模式的可用的按钮说明

    i, I       进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
    a, A       进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
    o, O       进入输入模式(Insert mode):o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用)
    r, R        进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    

    一般模式切换到指令行模式的可用的按钮说明

    :w      将编辑的数据写入硬盘档案中(常用)
    :w!     若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
    :q      离开 vi (常用)
    :q!     若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
    :wq 	储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    ZZ 	    这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
    :w [filename] 	    
            将编辑的数据储存成另一个档案(类似另存新档)
    :r [filename] 	    
            在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
    :n1,n2 w [filename] 
            将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command 	        
            暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
            『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
    :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu 	        
            与 set nu 相反,为取消行号!
    

    光标移动

    h 或 向左箭头键(←)      光标向左移动一个字符
    j 或 向下箭头键(↓) 	    光标向下移动一个字符
    k 或 向上箭头键(↑) 	    光标向上移动一个字符
    l 或 向右箭头键(→) 	    光标向右移动一个字符
    [Ctrl] + [f] 	        屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b] 	        屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d] 	        屏幕『向下』移动半页
    [Ctrl] + [u] 	        屏幕『向上』移动半页
    n<space> 	            那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
                            例如 20<space> 则光标会向后面移动 20 个字符距离。
    0 或功能键[Home] 	    这是数字『 0 』:移动到这一行的最前面字符处 (常用)
    $ 或功能键[End] 	    移动到这一行的最后面字符处(常用)
    H 	        光标移动到这个屏幕的最上方那一行的第一个字符
    M 	        光标移动到这个屏幕的中央那一行的第一个字符
    L 	        光标移动到这个屏幕的最下方那一行的第一个字符
    G 	        移动到这个档案的最后一行(常用)
    nG 	        n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
    gg 	        移动到这个档案的第一行,相当于 1G 啊! (常用)
    +           光标移动到非空格符的下一行
    - 	        光标移动到非空格符的上一行
  • 相关阅读:
    C#利用反射动态调用类及方法
    系统程序监控软件
    SQL server 2008 安装和远程访问的问题
    sql server 创建临时表
    IIS 时间问题
    windows 2008 安装 sql server 2008
    sql server xml nodes 的使用
    Window 7sp1 安装vs2010 sp1 打开xaml文件崩溃
    CSS资源网址
    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0
  • 原文地址:https://www.cnblogs.com/bryant24/p/11427464.html
Copyright © 2011-2022 走看看