zoukankan      html  css  js  c++  java
  • Vim文本编辑命令

    • Vim

    Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。[1]  VIM是自由软件
    Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs同样都是非常优秀的文本编辑器。
    • 安装Vim

    • 启动Vim

      vim 直接启动vim

    • 文件命令

    打开单个文件

    vim file

    同时打开多个文件

    vim file1 file2 file3 ...

    在vim窗口中打开一个新文件

    :open file

    在新窗口中打开文件

    :split file

    切换到下一个文件

    :bn

    切换到上一个文件

    :bp

    查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。

    :args

    打开远程文件,比如ftp或者share folder

    :e ftp://192.168.10.76/abc.txt

    :e \qadrive est1.txt

    • Vim模式

    正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空
    插入模式(按i键进入) 左下角显示--INSERT--
    可视模式(正常模式下 按v进入) 左下角显示--VISUAL--

    • 插入命令

    i 在当前位置生前插入

    I 在当前行首插入

    a 在当前位置后插入

    A 在当前行尾插入

    o 在当前行之后插入一行

    O 在当前行之前插入一行

    cw 替换从光标所在位置后到一个单词结尾的字符

    • 简单的移动光标

    0 → 数字零,到行头

    ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

    $ → 到本行行尾

    g_ → 到本行最后一个不是blank字符的位置。

    /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)

    •  简单的删除
    x        删除当前光标下的字符
    dw       删除光标之后的单词剩余部分。
    d$       删除光标之后的该行剩余部分。
    dd       删除当前行。
    
    c        功能和d相同,区别在于完成删除操作后进入INSERT MODE
    cc       也是删除当前行,然后进入INSERT MODE
    • 拷贝/粘贴

    P → 粘贴(p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)

    yy → 拷贝当前行当行于 ddP

    • Undo/Redo

    u → undo

    <C-r> → redo

    • 打开/保存/退出/改变文件(Buffer)

    :e <path/to/file> → 打开一个文件

    :w → 存盘

    :saveas <path/to/file> → 另存为 <path/to/file>

    :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)

    :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。

    :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。

    到此为止,以上为Vim的一些基本操作所需要的命令。

    •  查找命令

    /text  查找text,按n健查找下一个,按N健查找前一个。

    ?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。

    vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$

    :set ignorecase  忽略大小写的查找

    :set noignorecase  不忽略大小写的查找

    查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。

    :set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

    :set nohlsearch  关闭高亮搜索显示

    :nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。

    :set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

    :set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

    • 替换命令

    ra 将当前字符替换为a,当期字符即光标所在字符。

    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 交换光标所在行和其下紧邻的一行。

    • VI中的多行删除与复制

    法一:
    单行删除,:1(待删除行)d
    多行删除 ,:1,10d
    法二:
    光标所在行,dd
    光标所在行以下的N行,Ndd
    方法1:
    光标放到第6行,
    输入:2yy
    光标放到第9行,
    输入:p
    此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
    方法2:
    命令行模式下输入
    6,9 co 12
    复制第6行到第9行之间的内容到第12行后面。
    方法3:
    有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
    光标移到起始行,输入ma
    光标移到结束行,输入mb
    光标移到粘贴行,输入mc
    然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
    要删除多行的话,可以用 :5, 9 de

  • 相关阅读:
    540C: Ice Cave
    540B :School Marks
    欧拉工程第52题:Permuted multiples
    欧拉工程第51题:Prime digit replacements
    C. Tourist's Notes
    B. Quasi Binary
    Keepalived安装后出现的问题总结
    Keepalived+HAproxy实现高可用负载均衡
    CentOS.56安装Redis监控工具RedisLive
    Redis+Keepalived主从热备秒级切换
  • 原文地址:https://www.cnblogs.com/dear_diary/p/6339641.html
Copyright © 2011-2022 走看看