VIM入门学习

移动光标
光标向左移动一个字符    h 或 (←)
光标向下移动一个字符    j 或 (↓)
光标向上移动一个字符    k 或 (↑) 
光标向右移动一个字符    l 或 (→)
按下数字后再按空格键,光标会向右移动这一行的 n 个字符    n<space>
移动到这一行的最前面字符处(常用)    0 或功能键[Home]
移动到这一行的最后面字符处(常用)    $ 或功能键[End]
移动到本行第一个不是blank字符的位置    ^    //(所谓blank字符就是空格,tab,换行,回车等)
移动到本行最后一个不是blank字符的位置    g_
光标移动到这个屏幕的最上方那一行的第一个字符   H 
光标移动到这个屏幕的中央那一行的第一个字符    M
光标移动到这个屏幕的最下方那一行的第一个字符    L
光标移动到下一个单词的开头    w
光标移动到下一个单词的结尾    e    //如果需要每次移动一个语句(com.android.Setttings),那么你需要使用大写的E和W
光标移动到上一个单词的开头    b    //如果需要每次移动一个语句(com.android.Setttings),就使用大写的B
匹配括号移动,包括 (, {, [.     %    //注:你需要把光标先移到括号上
匹配光标当前所在的单词    * 和 #    //*是下一个,#是上一个
匹配光标到下一个为a的字符处    fa    //当前行
匹配光标到分号前的第一个字符    t;    //当前行
在当前行查找第三个出现的a    3fa    //F,T 和 f,t 一样,只不过是相反方向


翻页
屏幕『向下』移动一页    [Ctrl] + [f],相当于 [Page Down]按键 (常用) 
屏幕『向上』移动一页    [Ctrl] + [b],相当于 [Page Up] 按键 (常用)
屏幕『向下』移动半页    [Ctrl] + [d]
屏幕『向上』移动半页    [Ctrl] + [u]
移动到这个档案的最后一行(常用)    G
移动到这个档案的第 n 行   nG
移动到这个档案的第一行    gg
光标向下移动 n 行(常用)     n<Enter>  


搜索
向光标之下寻找一个名称为 word 的字符串(常用)    /word
向光标之上寻找一个字符串名称为 word 的字符串    ?word
重复前一个搜寻的动作    n/N,N为反向搜寻


替换
在第 n1与n2 行之间寻找word1这个字符串,并替换为 word2    :n1,n2s/word1/word2/g
全文查找word1字符串,并替换为word2    :1,$s/word1/word2/g 或 :%s/word1/word2/g
全文寻找word1字符串,并替换为 word2!并询问是否需要取代!(常用)    :1,$s/word1/word2/gc


复制
复制游标所在的那一行(常用)    yy
复制光标所在的向下n行(常用)    nyy
复制光标所在列到第一行的所有数据    y1G
复制光标所在列到最后一行的所有数据    yG
复制光标所在的那个字符到该行行首的所有数据    y0    
复制光标所在的那个字符到该行行尾的所有数据    y$
复制光标所在字符向后到本单词的最后一个字符    ye,yE
复制光标所在字符向前到本单词的第一个字符    yb,yB
复制第10行到18行直接的内容    :10,18y
复制第20行到26行内容并插入到29行后面    :20,26co 29
来拷贝2个 “foo” 之间的字符串    y2/foo


粘贴
将已复制的数据在光标下一行    p
将已复制的数据在光标上一行    P


删除
向后删除一个字符    x,[del]
向前删除一个字符    X,[backspace]
连续向后删除n个字符    nx
删除游标所在的那一整行(常用)   dd 
删除光标所在的向下n行    ndd
删除光标所在到第一行的所有数据    d1G
删除光标所在到最后一行的所有数据    dG
删除光标所在处,到该行的最后一个字符    d$
删除光标所在处,到该行的最前面一个字符    d0
删除光标所在字符向后到本单词的最后一个字符  de,dE
删除光标所在字符相前到本单词的第一个字符    db,dB
删除第20行到29行之间的内容    :20,29d
删除光标到;前所有内容    dt;


剪切(删除后粘贴)
剪贴选定字符    v d p
剪贴一个字符    v X p
剪贴一行    dd p
剪切第110到120行内容并粘贴到第10行后面    :110,120mo 10


其他
将光标所在列与下一列的数据结合成同一列    J
撤销(常用)    u
重做上一个动作(常用)    [Ctrl]+r
重复前一个动作(常用)    .
重复某个命令N次    N<command>
左右缩进    < 或 >
自动缩进    =


编辑模式
进入插入模式『从目前光标所在处插入』    i
进入插入模式『在目前所在行的第一个非空格符处开始插入』    I
进入插入模式『从目前光标所在的下一个字符处开始插入』    a
进入插入模式『从光标所在行的最后一个字符处开始插入』    A
进入插入模式『在目前光标所在的下一行处插入新的一行』    o
进入插入模式『在目前光标所在处的上一行插入新的一行』    O
进入取代模式『只会取代光标所在的那一个字符一次』    r
进入取代模式『一直取代光标所在的文字,直到按下 ESC 为止』    R
退出编辑模式,回到一般模式中    [Esc]


打开、保存、退出
打开档案    :e file
将编辑的数据写入硬盘档案中(常用)  :w  
若文件属性为『只读』时,强制写入该档案    :w!
离开 vi(常用)    :q
强制退出不保存    :q!
储存后离开    :wq
强制储存后离开(常用)    :wq!
若档案没有更动,则不储存离开,若档案已被更动过,则储存后离开    ZZ
将编辑的数据储存成另一个档案    :w [filename]
在编辑的数据中,读入另一个档案的数据    :r [filename]
将n1到n2的内容储存成filename这个档案    :n1,n2 w[filename]
暂时离开 vi 到指令列模式下执行 command 的显示结果    :! command


区块选择
字符选择,会将光标经过的地方反白选择    v
行选择,会将光标经过的行反白选择    V
区块选择,可以用长方形的方式选择资料    [Ctrl]+v
复制选择部分    y
删除选择部分    d
将选择字符变为大写    gU
将选择字符变为小写    gu
----------------------------------------------------------
在所有被选择的行后加上点东西:
<C-v>
选中相关的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
$ 到行最后
A, 输入字符串,按 ESC
-----------------------------------------------------------


多档案编辑
同时开启3个档案,使用以上命令进行档案切换与复制、粘贴    vim test1 test2 test3
编辑下一个档案    :n
编辑上一个档案    :N
列出目前这个vim的开启的所有档案    :files


分割窗口
垂直分屏启动vim    vim -On file1 file2 ...
水平分屏启动vim    vim -on file1 file2 ...
两个窗口显示同一个档案『创建水平分屏』    :sp 或 Ctrl+W s   
两个窗口显示同一个档案『创建垂直分屏』    :vsp 或 Ctrl+W v   
上下分割,并打开一个新的文件    :sp filename
左右分割,并打开一个新的文件    :vsp filename
切换窗口    [Ctrl]+w+↑/↓ 或 [Ctrl]+w+j/k
切换窗口『把光标移到右边的屏    Ctrl+W l
切换窗口『把光标移到左边的屏中』    Ctrl+W h
切换窗口『把光标移到上边的屏中』    Ctrl+W k
切换窗口『把光标移到下边的屏中』    Ctrl+W j
切换窗口『把光标移到下一个的屏中』    Ctrl+W w
移动分屏『向右移动』    Ctrl+W L
移动分屏『向左移动』    Ctrl+W H
移动分屏『向上移动』    Ctrl+W K
移动分屏『向下移动』    Ctrl+W J
设置高度『让所有的屏都有一样的高度』    Ctrl+W =
设置高度『增加高度』    Ctrl+W +
设置高度『减少高度』    Ctrl+W -
关闭分屏,关闭当前窗口    Ctrl+W c
离开当前窗口    :q


自动提示
[Ctrl]+P :自动感应


宏录制
把你的操作记录在寄存器 a    qa
replay被录制的宏    @a
replay最新录制的宏    @@


vim环境参数设置
设置/取消行号    :set nu/nonu
设置/取消搜索高亮    :set hlsearch/nohlsearch
设置显示回车换行符    set list
设置/取消自动排版    :set autoindent/noautoindent
设置/取消自动存储备份档    :set backup/nobackup
设置/取消显示设定值    :set ruler/noruler
设置/取消Insert等的显示    :set showmode/noshowmode
设置退格键可否删除文字,2:可删除任意值,0/1仅可删除刚刚输入的字符,无法删除原本存在的文字    :set backspace=(012)
显示目前所有的环境参数设定值    :set all
显示与系统默认值不同的设定参数    :set
根据程序相关语法显示不同颜色    :syntax on/off
设置显示颜色色调,默认时light    :set bg=dark/light


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值