• Vim常用命令


    VimVi 的增强版本,它没有菜单。只有命令。 www.vim.org

    官方教材:vimbook

    插入

    a

    在当前光标后插入文本

    A

    在本行行尾插入文本

    i

    在光标前插入文本

    I

    在本行行首插入文本

    o

    在光标下插入新行

    O

    在光标上插入新行

    h

    左移一个字符

    j

    下移一个字符

    k

    下移一个字符

    I

    右移一个字符

    $

    移动至当前行的行尾

    0

    移动至当前行的行首(数字零)

    H

    移动屏幕上端

    M

    移动至屏幕中央

    L

    移动屏幕下端

    Gg

    到整个文件的第一行

    G

    到整个文件的最后一行

    nG

    到第n行,例如5G 到整个文件的第5行

    :n

    到第n行

    删除

    x

    删除光标所在处字符

    nx

    删除光标所在处n个字符

    dd

    删除光标所在行

    ndd

    删除n行,例如:5dd   删除5

    dG

    删除光标所在处到末尾的内容

    D

    删除从光标所在处到行尾

    :n1,n2d

    删除指定范围的行,表示删除从n1行开始至n2行。例如:8,20d  表示删除从第8行至第20行的内容

    复制和粘贴

    yy,Y

    复制当前行

    nyy,nY

    复制当前行以下的n

    dd

    剪切当前行(先删除再粘贴)

    ndd

    剪切当前行以下n

    p

    将内容粘贴在当前光标所在行的下一行(小写)

    P

    将内容粘贴在当前光标所在行的上一行(大写)

    D

    删除从光标所在处到当前行的行尾

    :n1,n2d

    删除指定范围的行,表示删除从n1行开始至n2行。例如:8,20d  表示删除从第8行至第20行的内容

    替换和取消

    r

    替换光标所在处的字符

    R

    从光标所在处开始替换字符,按ESC结束。

    例如:this is a test document

    假如当前光标在a处,你在命令模式下输入了R。则你开始输入的内容都会把a test document给替换掉

    u

    取消上一步操作

    搜索和替换

    /string

    /表示从文档从前往后查找string

    当按n的时候就会跳转到字符在一个出现的地方,当按N的时候,会向上跳转到上次出现的地方

    开启搜索时忽略大小写 :set ic

    关闭搜索时忽略大小写 :set noic

    n

    从前往后查询字符出现的位置

    N

    从后往前查找字符出现的位置

    :%s/old/new/g

    全文替换指定字符串,old表示要替换的字符。new表示要替换成的字符

    例如,将文档中所有123字符替换为789

    :%s/123/789/g

    :n1,n2s/old/new/g

    在一定范围内替换指定字符串,跟全文类似。只不过在一定范围。n1n2表示在某一定行内。

    例如:将第10行至12行中的789替换成007字符

    :10,12s/789/007/g

    也可以把:10,12s/789/007/g后面的g改为c字符(:10,12s/789/007/c),会出现确认信息提示你是否要替换(类似Windows中的:你确定要删除吗?)

    replace with 007 (y/n/a/q/l/^E/^Y)?

    y:替换

    n:不替换

    a:替换所有

    q:取消替换

    保存和退出

    :w

    只保存不退出

    :w a.txt

    保存至a.txt文件(另存为)

    :q

    只退出

    :q!

    退出不保存

    :wq

    退出并保存

    :wq!

    强行退出并保存(只针对于文件的所有者或者root才能这样做)

    ZZ

    退出并保存(等同于:wq

    其他技巧

    导入文件

    :r  文件名

    1:将hello文件的内容导入到当前光标所在处

    :r hello

    导入命令执行结果

    :r   !命令

    2:将系统当前时间导入到当前光标处

    :r !date

    vi中执行命令

    :!  命令

    例如:正在vi编辑某个文件的时候,想查看/root/test目录下有哪些内容,可以执行如下命令

    :! ls /root/test

    此时屏幕将会出现test目录中的内容,会提示你按任意键回到vi编辑中

    Press ENTER or type command to continue

    定义快捷键

    :map 快捷键 触发命令

    1:不管光标在当前行的任意位置,当按下ctrl+b的时候。将行首的#注释给删除掉。

    命令如下

    :map ^b 0x

    2:不管光标在当前行的任意位置,当按下ctr+p的时候。给行首添加#注释

    :map ^P I#<ESC>

     

    ^表示是ctrl键)^b是通过ctrl+v+b或者ctrl+v   ctrl+b给按出来的。如果是通过ctrl按出来的^的话,显示的是这样

    ^p是绿色的

    取消快捷键

    :unmap 快捷键

    例如:取消ctrl+b的快捷键

    :unmap ^b

    连续行注释

    :n1,n2s/^/#/g

    :n1,n2s/^/#//g

    :n1,n2s/^////g

    1:在510行行首添加#

    命令如下

    :5,10s/^/#/g

    ^表示回到行首

    2:取消510行行首的#

    :5,10s/^#//g

    3:在510行行首添加//

    :5,10s/^////g

    其中表示转义字符,//不是字母W而是/

    替换

    :ab abc abc@163.com

    表示当你输入abc的时候,会自动转换为abc@163.com

    1:如果你在vi中经常输入一串字符,而又不想定义快捷键。可以使用ab的方式。假如,你经常输入abc@163.com。则可以像下面这样

    :ab abc@163.com

    这条命令会在你在vi中输入abc时,回车或者空格时,abc字符将会变成abc@163.com

     

    配置VI

    vi的配置文件在每个用户的home目录下的.vimrc文件,如果想每个用户都生效,则修改/etc/vimrc文件

    没有这个文件的话,可以新建一个,注意权限问题

    例如vi /root/.vimrc文件,输入如下简单配置

    syntax on

    set nu

    set autoindent

    在使用vim的时候有语法高亮,但是使用vi的时候没有语法高亮的解决办法?

    设置vim的别名为vi即可:alias vi=vim



  • 相关阅读:
    java.io.file
    连线小游戏
    发票类型区分的正则表达式(仅区分普票专票)
    mybatis: No enum constant org.apache.ibatis.type.JdbcType."VARCHAR"
    bootstrap inputfile 使用-上传,回显
    微积分极限中一例
    oracle 查看表结构语句
    redis无法连接
    项目配置shiro原缓存注解失效
    bug 找不到或无法加载主类main.java.*
  • 原文地址:https://www.cnblogs.com/meet/p/4797069.html
Copyright © 2020-2023  润新知