• Vim使用技巧


    vim分为命令模式和编辑模式。按Esc键退出编辑模式。下面所有的‘#’号表示数字。

    一,在命令模式下移动光标

    #h 左   #j 下   #k上   #l 右   

    0/^/home 移至行首    $/end 移至行尾

    w 移至下一个word的开头    e 移至下一个或当前word的结尾      b 移至前一个或当前word的开头

    W/B/E 与小写的w/b/e一样,只是将空格作为word的边界,它们都可以与#配合使用

    #fx 在当前行查找向有方向查找第#个字符x         Fx 在当前行向左查找字符x   

    t与f的用法相同,只是光标停留在被搜索字符的前一个字符上,这四个命令可以用”;”或”,”重复

    zz/zt/zb   将当前行置于屏幕中央/顶端/底端

    ZZ 保存当前文件并退出vim

    以下是跳转的命令:

    #G 移至第#行 G 移至最后一行   gg 移至第一行   可以用两个开单引号(即反单引号”`”)跳转到跳转前的位置

    % 以匹配一个括号为目的移动,当前光标不在括号上时,会向前找到一个括号。同样适用于}和]

    #% 表示跳转到文件的百分之#的地方

    ctrl+o 跳转到更早些时间停置光标的位置    ctrl+I 跳转到后来停置光标的更新的位置

    Ctrl+f   向前翻屏  Ctrl+b  向后翻屏       Ctrl+d  向前翻半屏 Ctrl+u  向后翻半屏

    Ctrl+g 告诉你光标当前所在行的行号   

    二,插入文本或行

    i 在光标位置前插入字符   I 在当前行的开始处添加文本   a 在光标位置后插入字符   A 在当前行的末尾添加文本

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

    J 合并光标所在行及其下一行为一行  alt+j 换行

    o 在当前行后插入新的一行     O 在当前行前插入新的一行

    三,更改文本的三种方法

    1,操作符命令+位移命令

    d$/D 删除自当前光标至行尾的位置     

    d#w 删除自当前光标至后面第#个word的开始     d#b 删除自当前光标至前一个word的末尾

    dG 删除当前行至文件尾的内容  dgg 删除当前行至文件头的内容     #dd 删除#行

    #x/#dl 删除光标左边的#个字符    #X/#dh 删除光标右边的#个字符 xp 交换两个字符的位置

    y$/Y 复制从光标开始到行尾的字符

    y#w 复制从光标开始到第#个word尾的字符(ye不复制word后的空格)    #yw

    y^ 复制从光标开始到行首的字符

    yy 复制光标所在一行  #yy

    c与d相似,只是操作后进入插入模式

    s  代表cl,修改一个字符      S  代表cc,修改一整行

    c$/C 改变当前光标到行尾的内容

    以上的命令有一个固定的模式:操作符命令+位移命令(与移动光标里的命令配合使用)。如d4l则删除光标当前位置到第四个字符,其中位移命令包括排外的和内包的,若是内包的(如$)则位移后光标所在处的字符也会被删除。

    2,Visual模式

    v 可视化     V 可视化行  ctrl+v 可视化矩阵  

    o 让光标置于被选中文本的另一头    O 当用可视化矩阵时,O使光标在同一行的左右两个角之间移动

    d删除  y复制  

    3,操作符命令+文本对象

    diw 删除当前光标所在word,不删除空白符  daw则删除word后的空白符

    dis 删除当前光标所在的句子,不包括其后的空白符

    其中iw is 等是文本操作命令,这种形式的命令不管当前光标所在的位置而把整个文本对象作为

    操作对象。

    #p 粘贴在光标后  #P 粘贴在光标前

    d,x与p配合使用相当于剪切,这要求vim支持剪贴板操作  

    u 取消操作  U 撤销对当前行的所有操作     ctrl+r 恢复撤销

    在windows下复制文本,在Linux的vim中,用alt+shift+v粘贴

    四,替换

    #r<Enter> 替换#个字符为换行符  

    R 让vim进入replace模式,每个键入的字符都会替换掉当前光标下的字符,直到你键入<Esc>结束该模式

    可以用<insert>键在insert模式和replace模式之间来回切换,当用<BS>键退回时,原有的字符又回来了。

    . 重复上一次做出的改动的命令(除了u命令ctrl+r和:开头的命令,也不包括移动光标)

    例如:将文本中的four该为five,可执行命令:/five<Enter> cwfive<Esc> n . n .

    删除文本中的<*>,可执行命令:f< df> f< . f< . 

    五,命令行模式下的指令

    :e filename  编辑文件,可以按<Tab>键补全文件名,如果不是想要编辑文件,则继续按<Tab>

    或者用ctrl+d 查看众多的补全候选选项

    :q!  放弃修改,强制退出

    :w filename 将当前文件保存,并修改文件名为filename

    :nohlsearch  去掉当前的高亮显示

    :saveas move.c 将当前文件保存为一个新文件move.c文件

    搜索和替换命令:

    /string  搜索字符串string,字符.*[]^%/”$有特殊意义,需在其前加。按下空格即产生”/”。

    ?与/的工作相同,只是方向相反。

    也可以将光标置于要搜索的字符串上,按*或#键对字符串进行搜索,可以与数字配合使用

    /<word>  查找作为独立单词的word

    /^word 匹配一行的开头word   /word$ 匹配一行的结尾word

    /w.d 匹配任何前一个字符时w,后一个字符是d的情况。 ”.”表示匹配除换行符以外的任何一个字符

    常用的选项配置

    set nu/set nonu  显示行号/取消行号显示

    set autoindent/cindent  自动缩进

    set tabstop/set ts  设置tab键的宽度

    set ignorecase/noignorecase  搜索时忽略大小写/不忽略大小写

    set hlsearch/nohlsearch  设置高亮显示/取消高亮显示

    set backupext=.bark 备份文件,若源文件名为data.txt,则备份文件名为data.txt.bark

    set autowrite 设置自动保存文件  set noautowrite

    命令行上常用的位移键

    ctrl+B或Home   crtl+E或End

    ctrl+w   删除光标之前的整个单词    ctrl+u  删除光标之前所有已键入的内容

    shift+<left> 或ctrl+<left> 左移一个单词(并不适用所有的电脑)

    ctrl+c/<Esc> 放弃所有已键入的命令

    <insert>键可以切换插入和改写字符这两种模式

  • 相关阅读:
    Kth element of Two Sorted Arrays
    Populating Next Right Pointers in Each Node I && II
    Average waiting time of SJF and Round Robin scheduling
    LRU Cache
    Calculate H-index
    Get Level of a node in a Binary Tree
    Two Sum
    Intersection of Two Linked Lists
    Symmetric Tree
    Lowest Common Ancestor of Binary (Search) Tree
  • 原文地址:https://www.cnblogs.com/zhoutian220/p/4845115.html
Copyright © 2020-2023  润新知