• vim笔记


     

     

    一、打开文件

    ①打开单个文件

    vim file

    ②同时打开多个文件(切换文件ctrl+ww)

    1. vim -o filename1 filename2 ... 水平分割窗口
    2. vim -O filename1 filename2 ... 垂直分割窗口
    • 对于垂直并排的文件:使用ctrl+w+上、下方向,表示上、下切换文件;
    • 对于水平并排的文件:使用Ctrl+w+左、右方向,表示左、右切换文件;

    退出文件的话可以使用q、q!、wq或者ZZ(shift+z+z)。

    但是如果同时打开三四个文件,这样子却不得不退出三四次才行。太麻烦....

    办法是有的!!!

    只需要在退出命令的后边加上小写的a,则表示退出动作是针对所有的(ALL):qa、qa!、 wqa


    如果想将一个文件的内容全部复制到另一个文件中,则可以输入命令":r被复制的文件名",即可将导入文件的全部内容复制到当前光标所在行下面。

    二、 插入命令

    i 在当前位置生前插入
    I 在当前行首插入
    a 在当前位置后插入
    A 在当前行尾插入
    o 在当前行之后插入一行
    O 在当前行之前插入一行在行下面。

    三、翻屏

    ctrl+f: 下翻一屏。
    ctrl+b: 上翻一屏。
    ctrl+d: 下翻半屏。
    ctrl+u: 上翻半屏。
    ctrl+e: 向下滚动一行。
    ctrl+y: 向上滚动一行。
    n%: 到文件n%的位置。

    ctrl+y: 向上滚动一行。

    n%: 到文件n%的位置。

    四、基本移动

    h或退格: 左移一个字符;
    l或空格: 右移一个字符;
    j: 下移一行;
    k: 上移一行;
    gj: 移动到一段内的下一行;
    gk: 移动到一段内的上一行;

    H: 把光标移到屏幕最顶端一行。
    M: 把光标移到屏幕中间一行。
    L: 把光标移到屏幕最底端一行。
    gg: 到文件头部。
    G: 到文件尾部。

    五、标记

    使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的后退和前进。

    m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
    m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。
    `{a-z}: 移动到标记位置。
    ‘{a-z}: 移动到标记行的行首。
    `{0-9}:回到上[2-10]次关闭vim时最后离开的位置。
    :marks 显示所有标记。
    :delmarks a b – 删除标记a和b。
    :delmarks a c-f – 删除标记a、c、d、e、f。
    :delmarks! – 删除当前缓冲区的所有标记

    六、查找

    /:命令从光标处开始向后寻找字符串 string。
    ?: 命令从光标处开始向前寻找字符串 string。

    七、删除

    删除文本的命令可以分为删除单个字符和删除多个字符两类。其中,删除单个字符的命令包括下面两种情况。
    x 命令:删除光标处的字符。若在 x 之前加上一个数字 n,则删除从光标所在位置开始向右的 n 个字符。
    X 命令:删除光标前面的字符。若在 X 之前加上一个数字 n,则删除从光标前面那个字符开始向左的 n 个字符。

    删除多个字符的命令包括下面几种情况。
    dd 命令:该命令删除光标所在的整行。在 dd 前可加上一个数字 n,表示删除当前行及其后 n-1 行的内容。
    D 命令或 d$ 命令:两个命令功能一样,都是删除从光标所在处开始到行尾的内容。
    d0 命令:该命令删除从光标前一个字符开始到行首的内容。
    dw 命令:该命令删除一个单词。若光标处在某个词的中间,则从光标所在位置开始删至词尾。同 dd 命令一样,可在 dw 之前加一个数字n,表示删除 n 个指定的单词。
    d( 命令:该命令删除到上一句开始的所有字符。
    d) 命令:该命令删除到下一句开始的所有字符。
    d} 命令:该命令删除到上一段开始的所有字符。
    d{ 命令:该命令删除到下一段开始的所有字符。

    以字符为单位删除
    x 删除当前字符
    3x 删除当前字符3次
    X 删除当前字符的前一个字符。
    3X 删除当前光标向前三个字符
    dl 删除当前字符, dl=x
    dh 删除前一个字符,X=dh
    d$ 删除当前字符至行尾
    d^ 删除当前字符之前至行首
    daw 删除当前字符所在单词
    dj 删除下一行
    dk 删除上一行
    dgg 删除当前行至文档首部
    d1G 删除当前行至文档首部
    dG 删除当前行至文档尾部
    kdgg 删除当前行之前所有行(不包括当前行)
    jdG 删除当前行之后所有行(不包括当前行)
    10d 删除当前行开始的10行。
    :1,10d 删除1-10行
    :11,$d 删除11行及以后所有的行
    :1,$d 删除所有行
    J   删除两行之间的空行,实际上是合并两行

    八、复制

    yy 命令:复制光标所在的整行。在 yy 前可加一个数字 n,表示复制当前行及其后 n-1 行的内容。
    Y 或 y$ 命令:两命令功能一样,都是复制从光标所在处开始到行尾的内容。
    yw 命令:复制一个单词。若光标处在某个词的中间,则从光标所在位置开始复制至词尾。同 yy 命令一样,可在 yw 之前加一个数字 n,表示复制 n 个指定的单词。
    y) 命令:复制到下一句幵始的所有字符。
    y} 命令:复制到下一段开始的所有字符。
    y<CR> 命令(<CR> 表示回车):复制包括当前行在内的两行内容。

    y^ 复制至行首,或y0。不含光标所在处字符。
    y$ 复制至行尾。含光标所在处字符。
    y2w 复制两个单词。
    yG 复制至文本末。
    y1G 复制至文本开头。 

    九、撤销

    u 命令:该命令撤销上一次所做的操作。多次使用 u 命令会一步一步依次撤销之前做过的操作(在一次切换到文本输入模式中输入的所有文本算一次操作)。
    U 命令:该命令会一次性撤销自上次移动到当前行以来做过的所有操作,再使用一次 U 命令则撤销之前的 U 命令所做的操作,恢复被撤销的内容。

    Ctrl + r 重做(Redo),即撤销的撤销。

    十、替换命令

    ~ 反转游标字母大小写
    r<字母> 将当前字符替换为所写字母
    R<字母><字母>... 连续替换字母
    cc 替换整行(就是删除当前行,并在下一行插入)
    cw 替换一个单词(就是删除一个单词,就进入插入模式),前提是游标处于单词第一个字母(可用b定位)
    C (大写C)替换至行尾(和D有所区别,D是删除(剪切)至行尾,C是删除至行位并进入插入模式)
    :s/old/new/ 用old替换new,替换当前行的第一个匹配
    :s/old/new/g 用old替换new,替换当前行的所有匹配
    :%s/old/new/ 用old替换new,替换所有行的第一个匹配
    :%s/old/new/g 用old替换new,替换整个文件的所有匹配
    :10,20 s/^/ /g 在第10行至第20行每行前面加个空格,用于缩进。
    ddp 交换光标所在行和其下紧邻的一行。
    xp  交换相邻两个字母的顺序


    十一、剪切粘贴
    普通模式中使用p粘贴

    p(小写):代表粘贴至光标后(下边,右边)
    P(大写):代表粘贴至光标前(上边,左边)


    dd 其实就是剪切命令,剪切当前行
    ddp 剪切当前行并粘贴,可实现当前行和下一行调换位置

    ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
    :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
    :1, 10 m 20 将第1-10行移动到第20行之后。

     

    十二、注释命令

     

    进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来,按大写字母I,再插入注释符,例如//,再按esc键就会全部注释了
    取消多行注释
    进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列,按字母j,或者k选中注释符号,按d键就可全部取消注释

     

    :3,5 s/^/#/g 注释第3-5行
    :3,5 s/^#//g 解除3-5行的注释

    十三、区域选择
    要进行区域选择,要先进入可视模式
    v 以字符为单位,上下左右选择
    V 以行为单位,上下选择

    选择后可进行操作
    d 剪切/删除
    y 复制

    ggVG 选择全文

    十四、窗口控制

    # 打开两个文件分属两个窗口

    vim -o 1.txt 2.txt
    # 假设现在已经打开了1.txt
    :sp 2.txt 开启一个横向的窗口,编辑2.txt
    :vsp 2.txt 开启一个竖向的窗口,编辑2.txt
    :split 将当前窗口再复制一个窗口出来,内容同步,游标可以不同
    :split 2.txt 在新窗口打开2.txt的横向窗口
    # 需要注意:内容同步,但是游标位置是独立的
    Ctrl-w s 将当前窗口分成水平窗口
    Ctrl-w v 将当前窗口分成竖直窗口
    Ctrl-w q 等同:q 结束分割出来的视窗。
    Ctrl-w q! 等同:q! 结束分割出来的视窗。
    Ctrl-w o 打开一个视窗并且隐藏之前的所有视窗、
    # 特别说明:Ctrl w <字母> 不需要同时按
    Ctrl-w h 切换到左边窗口
    Ctrl-w l 切换到右边窗口
    Ctrl-w j 切换到下边窗口
    Ctrl-w k 切换到上边窗口

    :close 关闭当前窗口
    :close! 强制关闭当前窗口
    :q 退出,不保存
    :q! 强制退出,不保存
    :x 保存退出
    :wq 保存退出
    :wq! 强制保存退出
    ZZ 保存并退出。
    :only 关闭所有窗口,只保留当前窗口(前提:其他窗口内容有改变的话都要先保存)
    :only! 关闭所有窗口,只保留当前窗口
    :qall 放弃所有操作并退出
    :wall 保存所有,
    :wqall 保存所有并退出。

    十五、文档加密

    vim -x file_name
    然后输入密码,再确认密码
    如果不修改内容也要保存。:wq,不然密码设定不会生效。

  • 相关阅读:
    centos6.3 配置防火墙,开启80端口、3306端口
    Unable to run man pages on Centos 6
    1. 信息系统基础知识
    2. 软件工程
    CommonJs
    软考资料
    Node.js资料
    qyqt5(一)
    tf源码中的object_detection_tutorial.ipynb文件
    分类结果的评价指标
  • 原文地址:https://www.cnblogs.com/wt645631686/p/8974802.html
Copyright © 2020-2023  润新知