zoukankan      html  css  js  c++  java
  • Vi/Vim常用命令(附快捷切换方法)

      vi/vim有两种模式,正常(命令行)模式 编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符。

    启动/关闭Vi/Vim


    启动:
    vi 打开 Vi/Vim编辑器
    vi 文件名 打开 Vi/Vim 并加载文件(如果文件不存在,就会新建文件)

    修改文件名:

    mv 原文件名(加后缀) 要改成文件名

    退出:

    :w回车   存盘

    :w!回车  强制存盘

    :wq回车 存盘退出

    :x回车    存盘退出

    :q回车  不存盘退出

    :q!回车  不存盘强制退出

    ZQ回车 不存盘强制退出

    (后面跟上 ! 就是强制)

    快捷切换(很好用):

    使用Ctrl-zfg这两个键来回切换(Ctrl-z将vi/vim进程放到后台执行,此时回到shell环境;fg则将位于后台的vi/vim进程放到前台执行,继续撸代码大声笑

     

    还有一种方法,在 Vi/Vim 的正常模式下输入:sh即可进入 Linux/Unix shell 环境。在要返回到 Vi/Vim 编辑环境时,输入 exit 命令即可。

    Esc      从vi/vim编辑模式切换到正常(命令行)模式

    多窗口编辑

      vim 文件1 文件2     同时打开或创建两个文件

      :n     切换到下个文件

      :N    切换到上个文件

      :sp 文件1     在vim内输入,将在另外一个窗口打开文件1,可实现两个文件上下屏编辑(文件名留空是分屏打开本文件)

      Ctrl+w     按住Ctrl连点两下w可实现上下编辑窗口光标切换

    退出保存正常操作

    移动光标


    光标:

           k   类似方向键上

           j    类似方向键下

           h   类似方向键左

           l    类是方向键右

    页:

           Ctrl+u       向上移动半页

           Ctrl+d       向下移动半页

    行:

           gg  光标跳到文本的第一行

           G    光标跳到文本最后一行

           0    光标跳到所在行的行首

           $    光标跳动到所在行的行尾

           :5回车   光标跳到第5行。

           :n回车   光标跳到第n行。

    单词:

           w    光标跳到下个单词的开头

           b    光标回到上个单词的开头

           e   光标回到本单词的尾部

    插入


           i    从光标所在字符前插入 

           a   从光标所在的字符后面插入

           o   从光标所在行的下面插入空白行

           O   从光标所在行的上面插入空白行

           I    从光标所在行的行首插入

           A   从光标所在行的行末插入

    编辑


    删除

    x     每按一次,删除光标所在位置的一个字符

    nx  如"3x"表示删除光标所在位置开始的3个字符

    dw  删除当前光标所在的单词

    dd   删除光标所在行

    ndd  如"3dd"表示删除光标所在行开始的3行字符

    复制

    yy  将光标所在行复制到缓冲区

    nyy 将光标所在n行复制到缓冲区

    粘贴

    p    将缓冲区里的内容写到光标所在位置

         

    >>右缩进;<<做缩进;(配合操作数使用,在编辑源码的时候非常有用。相当于批量缩进)

    u   撤销命令,可多次撤销

    .    重复执行上一次执行的vi/vim命令。

    Ctl+insert   复制鼠标选中的文本,相当于Ctl+c

    Shift+insert 输出鼠标选中的文本,相当于Ctl+v

    (以上两个命令在windows和UNIX中是通用的)

    文本搜索替换


    r     替换光标所在处的字符 replace

    R   替换光标所在处的字符,直到按下"Esc"为止

    cw 开始替换当前光标所在的单词,直到按下"Esc"为止

    J   把当前行的下一行接到当前行的尾部

    Ctrl+g 列出文件一共有多少行

    nG 表示移动光标到文件的第n行行首

    /abcd  在当前打开的文件中查找“abcd”文本内容

    n      查找下一个

    N      查找上一下

     :g/aaaaaaaaa/s//bbbbbb/g回车    把文件中全部的aaaaaaaaa替换成bbbbbb

    ~   对光标当前所在的位置的字符进行大小写转换。

    Vi/Vim设置


    要使以下设置下次继续生效需要修稿配置文件

    我用的Linux:

      1)用vim打开.vimrc文件:

        个人用户配置:vim ~/.vimrc

        全局配置(由root账户,全部子账户都生效):vim /etc/vimrc   或    vim /etc/vim/vimrc

      2)设置你需要的功能(可以直接复制文末给出的自用配置参数)

      3)保存并关闭(:wq)

    查看设置的当前值
    :set all 查看 vi 或 Vim 中设置的所有选项的当前值
    :set <option>? 查看特定选项 <option> 的当前值

    设置行号显示与否
    :set number 显示行号
    :set no number 取消行号显示
    命令的简写形式:
    :set nu
    :set no nu

    设置自动缩进
    :set autoindent 设置自动缩进
    :set no autoindent 取消自动缩进设置
    命令的简写形式:
    :set ai
    :set no ai

    设置缩进宽度
    :set shiftwidth=4 设置缩进宽度为 4
    命令的简写形式:
    :set sw=4

    (Linux可能修改Tab键宽度更合适  :set tabstop=4)

    设置大小写忽略与否
    :set ignorecase 设置忽略大小
    :set no ignorecase 取消忽略大小设置
    命令的简写形式:
    :set ic
    :set no ic

    设置不可见字符显示与否
    :set list 显示不可见字符
    :set nolist 取消显示不可见字符设置
    在显示不可见字符的情况下,TAB 键显示为 ^I,而 $ 显示在每行的结尾。

    修改自动换行字符上限

    :set textwidth=200  或者:
    :set tw=200

    (默认是72)

  • 相关阅读:
    POJ 2516 Minimum Cost [最小费用最大流]
    ZOJ 3407 Doraemon's Cake Machine [数学]
    ZOJ 2404 Going Home 【最小费用最大流】
    POJ 3422 Kaka's Matrix Travels 【最小费用最大流】
    树状数组的整理
    Day35 python基础--并发编程基础4
    Day34 python基础--并发编程基础3
    Day33 python基础--并发编程基础2
    Day32 python基础--并发编程基础1
    Day31 python基础--网络编程基础-socketserver
  • 原文地址:https://www.cnblogs.com/csyh/p/12015350.html
Copyright © 2011-2022 走看看