zoukankan      html  css  js  c++  java
  • vim笔记

    摘自,,,https://www.cnblogs.com/wt645631686/p/8974802.html     东风无力百花残

     

    一、打开文件

    ①打开单个文件

    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,不然密码设定不会生效。

  • 相关阅读:
    每日日报2020.12.1
    每日日报2020.11.30
    981. Time Based Key-Value Store
    1146. Snapshot Array
    565. Array Nesting
    79. Word Search
    43. Multiply Strings
    Largest value of the expression
    1014. Best Sightseeing Pair
    562. Longest Line of Consecutive One in Matrix
  • 原文地址:https://www.cnblogs.com/yszr/p/12360072.html
Copyright © 2011-2022 走看看