vim操作(文件对比、复制粘贴、剪切、查找字符)

目录

一、vim操作(文件对比)

1. 使用vim的比较模式打开两个文件:

2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:        :vert diffsplit file2        如果没有用vert命令,diffsplit则会分上下两个窗口。

3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。

vim高级操作011--比较两个文件并替换:

1、vim 比较两个文件

2、vim:比较合入快捷键dp

二、复制粘贴、剪切

1、选定文本块。

2、复制

3.剪切

4.粘贴

三、查找字符(在打开的窗口中)

1、片段匹配

        1,从上往下查找,比如“string” :   /string

        2,从下往上查找,比如“string” : ?string 

2、精确匹配

3、匹配多个关键字

        1,查找既含A又含B的行:

        2,查找含A或含B的行:

        3,查找既含A又含B,AB顺序不要求的行:


一、vim操作(文件对比)

1. 使用vim的比较模式打开两个文件:

         vim -d file1 file2 或 vimdiff file1 file2

2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
        :vert diffsplit file2
        如果没有用vert命令,diffsplit则会分上下两个窗口。
3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。

        分别在两个窗口里面输入命令:
        :diffthis

4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
        :diffupdate

5. 定位到不同点:
        [c     跳到前一个不同点
        ]c     跳到后一个不同点

6. 在窗口间跳转:
        ctrl-w w    跳到下一个窗口
        ctrl-w h    跳到左侧窗口
        ctrl-w l    跳到右侧窗口
        ctrl-w j    跳到下方的窗口
        ctrl-w k    跳到上方的窗口

7. 合并文档:
        dp          将差异点的当前文档内容应用到另一文档(diff put)
        do          将差异点的另一文档的内容拷贝到当前文档(diff get)

8. 上下文的展开和查看
        比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
        :set diffopt=context:3

        可以用简单的折叠命令来临时展开被折叠的相同的文本行: 
                zo       (folding open, z这个字母看上去比较像折叠的纸)

        然后可以用下列命令来重新折叠: 
                zc          (folding close)

vim高级操作011--比较两个文件并替换:

1、vim 比较两个文件

在linux系统终端terminal中输入命令:gvim -d file1.log file2.log

比较file1.log和file2.log两个文件内容的区别,不相同的部分会用颜色突出。

vim操作(文件对比、复制粘贴、剪切、查找字符)_第1张图片

2、vim:比较合入快捷键dp

光标选择右侧红色部分,依次按字母dp,会将右侧不同的部分复制到左侧(即改变左侧),保证两个文件此端内容相同。

合入前:

vim操作(文件对比、复制粘贴、剪切、查找字符)_第2张图片

合入后:按dp后

vim操作(文件对比、复制粘贴、剪切、查找字符)_第3张图片

二、复制粘贴、剪切
1、选定文本块。

        使用 v进入可视模式,移动光标键选定内容。

2、复制

        复制的命令是y,即yank(提起) ,常用的命令如下:

  • y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用;
  • yy 复制整行( nyy 或者 yny ,复制n行,n为数字);
  • y^ 复制当前到行头的内容;
  • y$ 复制当前到行尾的内容;
  • yw 复制一个word ( nyw 或者 ynw,复制n个word,n为数字);
  • yG 复制至档尾( nyG 或者 ynG,复制到第n行,例如 1yG 或者 y1G,复制到档尾)
3.剪切

        剪切的命令是d,即delete,d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法:

  • d 剪切选定块到缓冲区;
  • dd 剪切整行
  • d^ 剪切至行首
  • d$ 剪切至行尾
  • dw 剪切一个word
  • dG 剪切至档尾
4.粘贴

        粘贴的命令式p,即put(放下)

  • p 小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
  • P 大写P代表贴至游标前(上)
  • 整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)

注:

在正则表达式中,^表示匹配字符串的开始位置,$表示匹配字符串的结束位置。
命令前面加数字表示重复的次数,加字母表示使用的缓冲区名称。使用英文句号"."可以重复上一个命令。
在复制粘贴时,另一组常用的命令是u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做),这些功能主要是vim中的,vi中略有差别

参考自以下文章:

vim操作(文件对比、复制粘贴、剪切、查找字符)_第4张图片

三、查找字符(在打开的窗口中)

命令模式下(:)输入   /abc   即可,可参考这个文档

1、片段匹配
        1,从上往下查找,比如“string” :   /string
        2,从下往上查找,比如“string” : ?string 
2、精确匹配

        如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用:
/the\>    "\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。
这样,要匹配一个完整的单词 "the",只需:/\

3、匹配多个关键字
        1,查找既含A又含B的行:

                /.*A.*B   (向下查找)

                ?.*A.*B (向上查找)

        2,查找含A或含B的行:

                /A\|B  (向下查找)

                ?A\|B(向上查找)

        3,查找既含A又含B,AB顺序不要求的行:

                /\v.*A.*B.*\|.*B.*A.* (向下查找)

                ?\v.*A.*B.*\|.*B.*A.* (向上查找)

        /关键字1\|关键字2\|关键字3...
        即开头使用斜杠/表示后面是要匹配的内容,
        如果想同时使用多个匹配则使用\|将多个关键字隔开

你可能感兴趣的:(vim,linux,编辑器)