vim 入坑


Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性

对于一个重度使用者,就因为喜欢这种双手不离键盘就可以操控一切的feel,Vim 可以让我对文本的操作更加精准、高效。

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

  2. 打开文件

    打开单个文件

    vim file

    同时打开多个文件

    vim file1 file2..

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

    :open [file]

【举个例子】

当前打开1.txt,做了一些编辑没保存

:open! 放弃这些修改,并重新打开未修改的文件

当前打开1.txt,做了一些编辑并保存

:open 2.txt 直接退出对1.txt的编辑,直接打开2.txt编辑,省了退出:wq再重新vim 2.txt的步骤

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

:e ftp://192.168.10.76/abc.txt
:e \qadrive\test\1.txt

以只读形式打开文件,但是仍然可以使用 :wq! 写入

vim -R file

强制性关闭修改功能,无法使用 :wq! 写入

vim -M file

  1. 插入命令
    i 在当前位置生前插入
    I 在当前行首插入
    a 在当前位置后插入
    A 在当前行尾插入
    o 在当前行之后插入一行
    O 在当前行之前插入一行

  2. 查找命令
    最简单的查找
    /text  查找text,按n健查找下一个,按N健查找前一个。
    ?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。
    vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$

:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找
复制代码
快速查找,不需要手打字符即可查找

  • 向后(下)寻找游标所在处的单词

    向前(上)寻找游标所在处的单词

    以上两种查找,n,N 的继续查找命令依然可以适用

5.替换命令
~ 反转游标字母大小写
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 交换光标所在行和其下紧邻的一行。

  1. 撤销与重做
    u 撤销(Undo)
    U 撤销对整行的操作
    Ctrl + r 重做(Redo),即撤销的撤销。

  2. 删除命令
    需要说明的是,vim 其实并没有单纯的删除命令,下面你或许理解为剪切更加准确。以字符为单位删除
    x 删除当前字符
    3x 删除当前字符3次
    X 删除当前字符的前一个字符。
    3X 删除当前光标向前三个字符
    dl 删除当前字符, dl=x
    dh 删除前一个字符,X=dh
    D 删除当前字符至行尾。D=d$
    d$ 删除当前字符至行尾
    d^ 删除当前字符之前至行首

  3. 复制粘贴
    普通模式中使用y复制
    yy 复制游标所在的整行(3yy表示复制3行)
    y^ 复制至行首,或y0。不含光标所在处字符。
    y$ 复制至行尾。含光标所在处字符。
    yw 复制一个单词。
    y2w 复制两个单词。
    yG 复制至文本末。
    y1G 复制至文本开头。

  4. 区域选择
    要进行区域选择,要先进入可视模式
    v 以字符为单位,上下左右选择
    V 以行为单位,上下选择
    选择后可进行操作
    d 剪切/删除
    y 复制
    Ctrl+v 如果当前是V(大写)模式,就变成v(小写)
    如果当前是v(小写)模式,就变成普通模式。
    如果当前是普通模式,就进入v(小写)模式
    利用这个,可以进行多行缩进。
    ggVG 选择全文


文章作者: GengTao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GengTao !
  目录